четверг, 24 ноября 2011 г.

Установка принтера из консоли

Установить сетевой принтер из консоли (из скрипта) - совсем не тривиальное дело.

Для начала надо создать TCP/IP порт принтера. Для этого нужно запустить VB-скрипт следующего содержания:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewPort = objWMIService.Get _ ("Win32_TCPIPPrinterPort").SpawnInstance_ objNewPort.Name = "IP_192.168.2.19"
objNewPort.Protocol = 1
objNewPort.HostAddress = "192.168.2.19"
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_

После чего выложить драйвер принтера куда-нибудь в сеть и скомандовать:

rundll32 rintui.dll,PrintUIEntry /if /b "HPLJ4200_O" /f \\server\drivers\printers\hp4200\hpc4200c.inf /r "IP_192.168.2.19" /m "HP LaserJet 4200 PCL 6"

Тривиальная и интуитивно-понятная операция :)

четверг, 16 июня 2011 г.

Доступ к ресурсам терминального клиента

Не надо забывать, что получить доступ к ресурсам локального компьютера во время терминальной сессии можно, зайдя на сетевое имя \\tsclient

воскресенье, 24 апреля 2011 г.

Дистанционная установка VNC в домене

Каждый системный администратор рано или поздно сталкивается с необходимостью подключиться на удаленный компьютер. Причиной может быть установка или настройка программы, а так же оказание консультации пользователю. Средства, которые по-умолчанию предоставляет операционная система Windows, в частности её не-серверные версии, мягко говоря скудны. Есть Microsoft Terminal Server, работающий по протоколу RDP и Telnet Server, работающий, как это ни странно, по протоколу telnet. Обе, кстати, по-умолчанию, выключены. Впрочем, включить их дистанционно не представляет труда. Однако нам они и не понадобятся.
Telnet предоставляет только режим командной строки, а большинство программ в Windows имеют графические инсталляторы и конфигураторы, значит ни установить, ни настроить программу не удастся. Оказать консультацию выйдет лишь в том случае, если пользователь сам что-то делает в командной строке. Но и то, системному администратору никак не получится "присоединиться" к сессии пользователя.
Msts хоть и предоставляет графический режим, но тоже далеко не идеальное решение. Лицензионные (и технические) ограничения не дадут подключиться к одной рабочей станции нескольким пользователям одновременно (да-да, мы говорим о рабочих станциях, а не серверах). Значит администратор, подключившись в системе, отключит работающего пользователя. В настройках по-умолчанию доступ к терминальному подключению есть лишь у администраторов домена. Значит подключиться под именем текущего пользователя (в вашей сети пользователи же не имеют прав администратора, не так ли?) не удастся. Для этого понадобится вручную добавить учетную запись пользователя в список разрешенных. Для подключения придется спросить пароль пользователя, что не всегда приемлемо. Да, администратор сможет установить и настроить программу, но пользователь всё это время будет наблюдать сообщение "Компьютер используется и заблокирован". Потом ему придется войти в систему снова (а тут пользователя ждет очередной подвох - в имени пользователя осталась учетная запись администратора, а как известно, пользователи не помнят своих логинов).

Это, конечно, всё банальные вещи, очевидные любому системному администратору, чья сеть выходит за географические пределы одной комнаты. Администраторы применяют для удаленного управления всевозможные средства. Radmin, Dameware, Netop и множество других. У них есть определенный недостаток - они платные. Это не совсем недостаток. Более того, некоторые люди считают высокую цену программы достоинством. Однако я рекомендую бесплатную (и открытую) программу, работающую по протоколу VNC - TightVNC. Причем от TightVNC будет только серверная часть, которая устанавливается на клиентские компьютеры. Подключаться туда можно с помощью любого VNC-клиента.

Итак, приступим. Для начала нужно установить серверную часть TightVNC на любой компьютер в пределах досягаемости. После установки произвести настройку. В частности установить пароли на подключение и изменение настроек, а так же включить опцию "Скрывать иконку в системном лотке". Зайти в реестр и экспортировать ветку HKLM\SOFTWARE\TightVNC\Server. Теперь нужно создать каталог в общедоступном месте и скопировать туда tvnserver.exe и screenhooks.dll, а так же полученный reg-файл. Я назвал его tvnc.reg.

Для удаленной установки используется утилита psexec.exe из пакета PsTools, которая просто обязана находиться в наборе инструментов каждого системного администратора.

Всё готово, теперь создаем bat-файл следующего содержания:
@echo off
Set /P TARGET= Enter computer name: 
xcopy /S /Y \\server\share\tightvnc \\%TARGET%\c$\progra~1\tightvnc\
psexec \\%TARGET% regedit /s c:\progra~1\tightvnc\tvnc.reg
psexec -d \\%TARGET% c:\progra~1\tightvnc\tvnserver -install
sc \\%TARGET% start tvnserver

Скрипт запрашивает имя компьютера у пользователя и заносит результат в переменную TARGET. Копирует каталог с подготовленным TightVNC-сервером на целевой компьютер. С помощью psexec импортирует настройки из reg-файла в реестр, устанавливает службу tvnserver и запускает её.

понедельник, 28 марта 2011 г.

Подключение чужого файла с реестром

В regedit встать на нужную ветку (например HKLM), нажать Файл-> Подключить куст.. Выбрать чужой_диск:\windows\system32\config\файл_с_кусоком_реестра (Например software - отвечает за ветку HKLM\Software)

среда, 16 марта 2011 г.

Узнать аптайм системы

Команда
systeminfo | more
покажет время работы.
net statistics server
либо
net statistics workstation
покажут время включения системы.