Есть ли способ проверить, какие клиенты VNC запущены и слушают подключения?

Вопрос или проблема

Я использую VNC для управления примерно 70 разными ПК на базе Windows 10.

Существует ли способ проверить, работает ли служба VNC на каждом клиенте и слушает ли она подключения, не подключаясь вручную к каждому из них?

Я надеюсь получить достаточную информацию для создания системы, которая будет проверять клиентов каждое утро и уведомлять меня о клиентах, у которых не работает активная служба VNC и которая не слушает подключения.

Спасибо.

Любой инструмент, который может определить, открыт порт или нет, подойдет. VNC использует 5900 в качестве порта по умолчанию.

Одно из возможных решений с использованием Powershell:

Test-NetConnection <host> -Port 5900

что дает следующий вывод для машины с запущенным сервером TightVNC:

Имя компьютера     : zebedee
Удаленный адрес    : 192.168.0.6
Удаленный порт     : 5900
Псевдоним интерфейса   : WiFi
Исходный адрес    : 192.168.0.121
TcpTestSucceeded : True

Вы можете сократить это до True или False, добавив -InformationLevel Quiet.

Вы должны быть в состоянии создать пакетный файл, который подключается к диапазону IP-адресов, проверяет вывод Test-NetConnection и сообщает о машинах, на которых VNC не работает.

Ответ или решение

Проверка состояния VNC-клиентов: автоматизация мониторинга

Управление VNC-клиентами на 70 рабочих станциях с Windows 10 может быть задачей, требующей значительных усилий, особенно если необходимо вручную подключаться к каждому клиенту для проверки работы службы. К счастью, существуют инструменты и подходы, позволяющие автоматизировать этот процесс, что значительно упрощает мониторинг состояния VNC-сервисов на удалённых машинах.

1. Использование PowerShell для проверки статуса VNC

Одним из доступных решений является применение PowerShell, встроенного инструмента для автоматизации задач в Windows. VNC использует порт 5900 по умолчанию, поэтому можно написать скрипт, который проверяет, слушает ли VNC-сервис на этом порту на каждом из удалённых компьютеров.

Чем интересен PowerShell?

  • Интерактивность: Вы можете выполнять команды на локальном компьютере и взаимодействовать с удалёнными машинами.
  • Скриптование: Возможность автоматизации задач с помощью написания простых скриптов.

Пример команды

Для проверки статуса VNC на целевом компьютере можно использовать следующую команду:

Test-NetConnection <host> -Port 5900

Здесь <host> — это IP-адрес или имя компьютера, который вы хотите проверить. В результате выполнения команды вы получите следующий вывод:

ComputerName     : zebedee
RemoteAddress    : 192.168.0.6
RemotePort       : 5900
InterfaceAlias   : WiFi
SourceAddress    : 192.168.0.121
TcpTestSucceeded : True
  • TcpTestSucceeded: Если значение «True», значит, VNC-сервис работает на этом компьютере и слушает на порту 5900.

Чтобы исключить лишнюю информацию и получить только "True" или "False", можно использовать параметр:

Test-NetConnection <host> -Port 5900 -InformationLevel Quiet 

Этот вывод удобен для последующей обработки.

2. Автоматизация проверки для множества IP-адресов

Для проверки группы компьютеров можно написать простой PowerShell-скрипт:

$hosts = @("192.168.0.6", "192.168.0.7", "192.168.0.8") # Список IP-адресов
$results = @()

foreach ($host in $hosts) {
    $connection = Test-NetConnection $host -Port 5900 -InformationLevel Quiet
    $results += New-Object PSObject -Property @{
        Host      = $host
        VNCStatus = $connection
    }
}

# Вывод результатов
$results | Where-Object { $_.VNCStatus -eq $false }

Этот скрипт проверяет список заданных IP-адресов и собирает состояние VNC-сервиса на каждом из них. В конце выведутся только те компьютеры, на которых VNC не работает.

3. Планирование проверки

Для автоматического запуска проверки каждое утро можно использовать планировщик задач Windows (Task Scheduler):

  1. Создайте новый задачу и выберите «Запуск программы».
  2. Укажите путь к PowerShell и добавьте путь к вашему скрипту в качестве аргумента.
  3. Настройте расписание, чтобы запускать задачу каждый день в нужное время.

Заключение

Таким образом, использование PowerShell для проверки статуса VNC-сервисов на множестве рабочих машин — это эффективное решение, позволяющее сэкономить время и усилия. Автоматизация процесса мониторинга помогает оперативно выявлять проблемы и поддерживать рабочее состояние системы, что, в свою очередь, повышает общую продуктивность и стабильность IT-инфраструктуры.

Оцените материал
Добавить комментарий

Капча загружается...