пятница, 25 октября 2024 г.

Запуск UltraVNC сервера на удаленном компьютере в локальной сети через PsExec

Есть такой программный комплекс LANDesk Remote Control, который используется для удаленного подключения к компьютерам в локальной сети. Данная программа состоит: 

- из программы LANDesk Remote Control Agent - это агент, который устанавливается на все компьютеры к которым нужно подключаться.  
- из программа LANDesk Remote Control Viewer – это удаленный просмоторщик, с помощью неё мы подключаемся к нужному компьютеру, где установлен агент.
- из  LANDesk Remote Control Console — это консоль управления, что-то вроде каталога базы данных, куда агенты посылают информацию о компьютерах.

Данный программный комплекс можно использовать по назначению, но есть несколько проблем, которые я бы хотел перечислить:

1) Агент бывает иногда некорректно устанавливается на компьютер
2) Каталог базы данных бывает иногда глючит и не может корректно общаться с агентом
3) Агент иногда теряет связь с каталогом базы данных

Данные проблемы с горем пополам удается решить, но на решение данных проблем уходит большое количество времени от 30 минут до 4 часов в зависимости от характеристик компьютера.

По этой причине мне пришлось искать другие решения для удаленного управления компьютерами в локальной сети. Пора научиться пользоваться программой под названием UltraVNC.

Поискав в Google информацию по настройке сервера UltraVNC я наткнулся на сайт, где рассказывается как можно автоматизировать установку и настройку сервера UltraVNC. Вот это ссылка. На основе этой статьи я написал свои batch файлы для автоматизации развертывания сервера UltraVNC и по необходимости его удаление.           

Первым делом качаем портативную версию UltraVNC с официального сайта она поставляется в заархивированном виде (ZIP файл) https://uvnc.com/component/jdownloads/summary/470-ultravnc-1-4-6-zip.html . На момент написания статьи последняя версия представленная на официальном сайте 1.4.3.6 версия. На всякий случаю оставлю ссылку на главную страницу скачивания UltraVNC https://uvnc.com/downloads/ultravnc.html . Распакуйте архив и вы увидите в нем UltraVNC для платформы x86 и x64. Тут принцип простой если вы подключаетесь к компьютеру с 32-х битной системой Windows, то используйте сервер UltraVNC (winvnc.exe) из папки x86, если вы подключаетесь к компьютеру с 64-х битной системой Windows, то используйте сервер UltraVNC (winvnc.exe) из папки x64. Теперь запустите у себя на компьютере файл winvnc.exe из папки x86 или х64 в зависимости от разрядности вышей Windows. В результате этого у вас откроется окно показанное на рисунке 1.

Рисунок 1. Настройка сервера UltraVNC

В этом окне необходимо выполнить два действия:

1) Установить разные пароли для режима управления и режима просмотра удаленного компьютера (Смотрите рисунок 1 цифра 1)
2) Установить опцию отключения значка в трее на панели задач рядом с часами (Смотрите рисунок 1 цифра 2)
Нажмите кнопку Apply и Ok для сохранения всех настроек сервера UltraVNC в файл UltraVNC.ini.

Так же скачайте утилиту PsExec с официального сайта Microsoft по этой ссылке. Или по прямой ссылке. Достаем из архива файл PsExec.exe сохраняем его в папку cmd2 на диске F или в другую любую папку на ваш выбор. За одно в папку cmd2 копируем файл winvnc.exe и файл UltraVNC.ini.  

Переходим к написанию batch файлов.  В папке cmd2 создайте файл uvnc.bat и файл uvnc_del.bat.

Важно! У вас должны быть права администратора на удаленном компьютере. Файлы uvnc.bat и uvnc_del.bat необходимо запускать в командной строке Windows. Синтаксис запуска скриптов следующий: 

 uvnc.bat pc01
 uvnc_del.bat pc01

pc01 - это имя удаленного компьютера, куда вы запускаете сервер UltraVNC.    

Содержимое файла uvnc.bat c комментариями:

@echo off
cls

net use O: /delete /y

if exist \\%1\C$\Temp\ (
   net use O: \\%1\C$\Temp
) else (
  net use O: \\%1\C$
  mkdir O:\Temp
  net use O: /delete /y
  net use O: \\%1\C$\Temp
)
mkdir O:\uvnc
copy "%~d0%~p0\winvnc.exe" "O:\uvnc" /y
copy "%~d0%~p0\UltraVNC.ini" "O:\uvnc" /y

psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -install

pause 

Комментарий по коду выше:
net use O: /delete /y (Удаляем сетевой диск O: если он существует)

if exist \\%1\C$\Temp\ (Этой строкой проверим существует ли на удаленном компьютере папка Temp в корне диска C, где %1 — автоматически подставится имя удаленного компьютера)
Если папка Temp существует, то строкой  net use O: \\%1\C$\Temp создаем сетевой диск O, который указывает на папку C:\Temp на удаленном компьютере.  
Если папка Temp не существует, то строкой  net use O: \\%1\C$ создаем сетевой диск O, который указывает в корень диска C на удаленном компьютере, строкой mkdir O:\Temp на сетевом диске O: создаем папку Temp, строкой net use O: /delete /y удаляем сетевой диск O:, строкой  net use O: \\%1\C$\Temp создаем сетевой диск O, который указывает на папку C:\Temp на удаленном компьютере.
Строкой  mkdir O:\uvnc создадим папку uvnc на сетевом диске O.

Строками
copy "%~d0%~p0\winvnc.exe" "O:\uvnc" /y
copy "%~d0%~p0\UltraVNC.ini" "O:\uvnc" /y      
скопируем из папки F:\cmd2 файл winvnc.exe и файл UltraVNC.ini в папку uvnc на сетевом диске O. (%~d0%~p0 — это строка означает путь откуда выполняется скрипт uvnc.bat, в частности это F:\cmd2)

Строками
psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -install

мы на удаленном компьютере останавливаем службу uvnc_service сервера UltraVNC (psexec \\%1 net stop uvnc_service), потом выгружаем на удаленном компьютере процессы из памяти с именем winvnc если такие имеют место быть (psexec \\%1 "taskkill.exe" /f /im winvnc*), потом устанавливаем на удаленном компьютере сервер UltraVNC в виде службы с именем uvnc_service (psexec \\%1 C:\Temp\uvnc\winvnc.exe -install).

Содержимое файла uvnc_del.bat c комментариями: 

@echo off
cls

psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -uninstall

del /q O:\uvnc\*
rd O:\uvnc

net use O: /delete /y
pause  

Строкой psexec \\%1 net stop uvnc_service мы на удаленном компьютере останавливаем службу uvnc_service сервера UltraVNC.
Строкой psexec \\%1 "taskkill.exe" /f /im winvnc* выгружаем на удаленном компьютере процессы из памяти с именем winvnc если такие есть.
Строкой psexec \\%1 C:\Temp\uvnc\winvnc.exe -uninstall удаляем на удаленном компьютере службу с именем uvnc_service

Строкой del /q O:\uvnc\* удаляем на удаленном компьютере все файлы в папке uvnc на сетевом диске O.
Строкой rd O:\uvnc удаляем на удаленном компьютере папку uvnc на сетевом диске O.
Строкой net use O: /delete /y удаляем сетевой диск O: если он существует.

Всё. Как только сервер UltraVNC заработает на удаленном компьютере, то вам останется запустить vncviewer.exe программу удаленный просмоторщик, ввести имя удаленного компьютера к которому мы хотим подключится, вводим пароль который мы установили при настройке сервера UltraVNC и нажимаем кнопку Connect (Смотрите рисунок 2).

Рисунок 2. Окно программы просмоторщика UltraVNC

В данном примере мы запустили сервер UltraVNC в режиме службы, я пытался запустить также сервер в режиме приложения, но данный режим по какой-то причине не работает, скорее всего не хватает прав, смотрите рисунок 3 как это выглядит при попытке подключения к удаленному компьютеру.
 
Рисунок 3. Просмоторщик UltraVNC запущенный в режиме приложения

понедельник, 7 октября 2024 г.

Проблемы подключения принтеров HP LaserJet P2014 и HP LaserJet P2015 в Windows 10 Pro 64 bit или 32 bit по USB

Сразу скажу, что принтера HP LaserJet P2014, HP LaserJet P2015 с Windows 10 Pro 64 bit или 32 bit дружат плохо (в частности пробовал заставить работать данный принтер на Windows 10 Pro 64 bit 20H2). У меня возникала проблема подключения принтера по USB кабелю. Даже при наличии в Windows предустановленных драйверов на принтер, он не желает устанавливаться ни автоматическом, ни в ручном режимах.

Симптомы проблемы следующие:

- в диспетчере устройств в разделе "Контроллеры USB устройств" вы видите устройство "Поддержка USB принтера", которое висит с восклицательным знаком. Если зайти в свойства этого устройства, то во вкладке общие в секции состояния устройства вы видите код ошибки 10 (Запуск это устройства прервано или остановлено).

Что пробовал делать:

- Переключение принтера в другие свободные USB порты на системном блоке проблему не решает

- Перезагрузка компьютера проблему не решает

- Выключение и включение принтера проблему не решает

Путем долгих часов поиска решения проблемы выяснилось, что для это принтера необходимо установить в Windows 10 Pro 64 bit программу (драйвер порта от HP) который называется Dot4x64.msi (Windows 10 Pro 64 bit) или Dot4x86.msi (Windows 10 Pro 32 bit).

На сайте HP на странице скачивания драйверов к принтеру HP LaserJet 1320 для Windows 10 можно скачать файл (Dot4x86.msi) (Windows 10 Pro 32 bit) и (Dot4x64.msi) (Windows 10 Pro 64 bit). Внимание! Обязательно проверяйте скаченные файлы антивирусом.

Данные принтеры (HP LaserJet P2014, HP LaserJet P2015) в Windows 10 Pro 64 bit после отключения системного блока или перезагрузке самопроизвольно создают порты DOT4USB и создают новый логический принтер с новым именем (добавляется в конце имени Копия 1,2,3..N). Так же наблюдается периодическое отвал этих моделей принтеров от USB разъёма компьютера, что требуется переключение их в другой свободный USB порт, после этого данные модели принтеров будут работать до следующего отвала от USB. Данная проблема наблюдается в Windows 10 Pro 64 bit, замечу что в Windows 7 Pro 64 bit такой проблемы нет, в Winndows 7 данные модели принтеров работают отлично.