В сети под MS Active Directory часто возникает необходимость предоставить доступ определенным пользователям к определенным ресурсам, подключить сетевые диски, принтеры и т.п. в этом случае удобно воспользоваться скриптами.
Для подробного изучения VBS и возможностей применения скриптов можно почитать здесь (Примеры админских скриптов от MS, утилиты для их быстрого описания и прочее).
Основные возможности работы с сетью с помошью VBS реализовано при помощи объекта WScript.Network. Создание этого объекта можно произвести так:
Получение информации о пользователе, компьютере и имени домена
Свойства ComputerName, UserDomain и UserName возвращают, соответственно, имя компьютера, имя домена и имя текущего пользователя.
Можно использовать для
PS. Так же можно использовать эти значения для подстановки в скрипты.
Рассмотрим для примера подключение личной сетевого диска для пользователя
Кроме того, можно просто отображать полученную информацию - например, на Web-странице, которая используется в качестве обоев для пользователя.
Обратить внимание:
Методы для работы с дисками и сетевыми папками
PS. Cредствами WSH можно проверить наличие уже имеющихся сетевых ресурсов, реализовать обработку ошибок и т.п.
Реализация обработки ошибок при подключении к сетевому ресурсу - обязательна. Обычно при помощи специальной функции, она достаточно наглядна, так что комментировать не буду:
Подключение сетевых дисков выглядит так:
true означает - сохранить информацию о подключении в профиле пользователя (сделать подключение постоянным). Кроме того, в качестве необязательных параметров можно передать имя пользователя и пароль для подключения.
Конечно, в функцию ErrCheck, помимо Echo, можно включить и другую обработку ошибок. В некоторых ситуациях для исключения ошибок можно сделать так:
Методы для работы с принтерами
Теперь поговорим о подключении принтеров, для примера рассмотрим подключение принтера printer, расположенного на сервере server.
Работа с принтерами происходит при помощи методов
Для регулярного применения настроек можно пойти следующими путями.
Для сетей с доменами:
Скопировать скрипты в папку \\domain_controller\sysvol\domain_name\scripts, где domain_controller — название контроллера домена, а domain_name - домен.

В оснастке «Active Directory - пользователи и компьютеры» прописать название скрипта во вкладке «Профиль» в поле «Сценарий входа»
Для сетей без доменов:
Создать папку на сервере с правами доступа к ней всем пользователям сети, выложитьв ней скрипты и у каждого клиента прописать в автозагрузке линк на требуемый скрипт.
Для подробного изучения VBS и возможностей применения скриптов можно почитать здесь (Примеры админских скриптов от MS, утилиты для их быстрого описания и прочее).
Немного теории.
Основные возможности работы с сетью с помошью VBS реализовано при помощи объекта WScript.Network. Создание этого объекта можно произвести так:
Set WshNetwork = WScript.CreateObject("WScript.Network")У созданного объекта - всего три свойства и восемь методов, но они могут оказаться очень полезными.
Получение информации о пользователе, компьютере и имени домена
Свойства ComputerName, UserDomain и UserName возвращают, соответственно, имя компьютера, имя домена и имя текущего пользователя.
Можно использовать для
для протоколирования выполнения скрипта - записывается информация о том, на каком компьютере произошло то или иное событие;
для выполнения каких-либо действий только на том компьютере или только с тем пользователем, который указан в нашем списке (при помощи утилит Resource Kit можно основываться и на членстве пользователей в группах).
PS. Так же можно использовать эти значения для подстановки в скрипты.
Рассмотрим для примера подключение личной сетевого диска для пользователя
On Error Resume Next // включаем обработку ошибок
set wshNetwork = WScript.CreateObject( "Wscript.Network") // создание объекта WScript.Network.
user = wshNetwork.username // присваиваем переменной user значение имени текущего пользователя.
p_path = "\\server\" & user // присвоение переменной p_path значения пути к сетевой папке «\\server\username», где server - это имя сервера, а username — имя пользователя
wshNetwork.MapNetworkDrive "disk:" , p_path // подключение в качестве сетевого диска сетевой папки с адресом p_path и буквой диска disk.
Кроме того, можно просто отображать полученную информацию - например, на Web-странице, которая используется в качестве обоев для пользователя.
Обратить внимание:
UserDomain показывает только имя домена в формате имени NetBIOS. Имена в формате Active Directory не выводятся. Если компьютер работает не в домене, а в рабочей группе, выводится пустая строка;
свойство UserName может некорректно работать в сценариях регистрации под Windows 9x/ME в сетях без доменов: после выполнения сценария значение свойства UserName оказывается пустым (операционная система еще не поняла, под каким именем вошел пользователь).
Лечится так:
Set WshNetwork = Wscript.CreateObject("WScript.Network") // создание объекта WScript.Network.
user = "" // присвоение переменной user пустого значения
Do While user = "" // выполнять следующий код, пока имя пользователя не получит иное значение
user = WshNetwork.UserName // присваиваем переменной user значение имени текущего пользователя.
Wscript.Sleep(500) // прерывание выполнения на 500 мсек.
Loop // повторить
Методы для работы с дисками и сетевыми папками
EnumNetworkDrives - получение списка сетевых дисков на данном компьютере.
MapNetworkDrive - подключение сетевых дисков.
RemoveNetworkDrive - удаление сетевого диска.
PS. Cредствами WSH можно проверить наличие уже имеющихся сетевых ресурсов, реализовать обработку ошибок и т.п.
Реализация обработки ошибок при подключении к сетевому ресурсу - обязательна. Обычно при помощи специальной функции, она достаточно наглядна, так что комментировать не буду:
Sub ErrCheck (nr)
Select Case nr
Case 0
' Все в порядке
Case -2147024829
WScript.Echo "Сетевой ресурс не существует"
Case -2147024811
WScript.Echo "Диск уже подключен"
Case Else
WScript.Echo "Другая ошибка" & CStr(nr)
End Select
End Sub
Подключение сетевых дисков выглядит так:
On Error Resume NextЕсли нужно сделать подключение сетевого диска постоянным (с восстановление подключения при входе в систему), то можно в конце строчки добавить параметр true.
p_path = "\\server\folder" // присвоение переменной p_path значения пути к сетевой папке «\\server\folder»
wshNetwork.MapNetworkDrive "disk:" , p_path // подключение в качестве сетевого диска сетевой папки с адресом p_path и буквой диска disk.
ErrCheck Err.Number
wshNetwork.MapNetworkDrive "disk:" , p_path , true
true означает - сохранить информацию о подключении в профиле пользователя (сделать подключение постоянным). Кроме того, в качестве необязательных параметров можно передать имя пользователя и пароль для подключения.
Конечно, в функцию ErrCheck, помимо Echo, можно включить и другую обработку ошибок. В некоторых ситуациях для исключения ошибок можно сделать так:
On Error Resume Next
WSHNetwork.RemoveNetworkDrive "Z:"
WshNetwork.MapNetworkDrive "Z:", "\\server\folder", true
Методы для работы с принтерами
Теперь поговорим о подключении принтеров, для примера рассмотрим подключение принтера printer, расположенного на сервере server.
Работа с принтерами происходит при помощи методов
AddPrinterConnection – подключение принтера к выбранному порту.
WshNetwork.AddPrinterConnection "port:", "\\server\printer" // подключение принтера printer расположенного на сервере server к порту port:
Например: WshNetwork.AddPrinterConnection "lpt2:", "\\server\printer"
AddWindowsPrinterConnection – подключение принтера без указания обязательного порта
wshNetwork.AddWindowsPrinterConnection "\\server\printer"EnumPrinterConnections – получение списка подключенных принтеров.
RemovePrinterConnections – удаление подключенного принтера.
wshNetwork.RemovePrinterConnections "\\server\printer".
SetDefaultPrinter – установка принтера для печати по-умолчанию.
wshNetwork.SetDefaultPrinter "\\server\printer".Конечно, и в этом случае лучше реализовать обработку ошибок. Выглядеть она может так:
On Error Resume Next
WshNetwork.AddPrinterConnection "lpt2", "\\server\printer"
On Error GoTo 0 'Отключить обработку ошибок
On Error Resume Next
PS. при работе скрипта под Windows 95/98 драйвер принтера должен быть уже установлен - иначе возникнет ошибка
Для регулярного применения настроек можно пойти следующими путями.
Для сетей с доменами:
Скопировать скрипты в папку \\domain_controller\sysvol\domain_name\scripts, где domain_controller — название контроллера домена, а domain_name - домен.

В оснастке «Active Directory - пользователи и компьютеры» прописать название скрипта во вкладке «Профиль» в поле «Сценарий входа»
Для сетей без доменов:
Создать папку на сервере с правами доступа к ней всем пользователям сети, выложитьв ней скрипты и у каждого клиента прописать в автозагрузке линк на требуемый скрипт.
Читать далее...