Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

9. Работа с сетью: получение информации о пользователе, сетевые диски, сетевые принтеры

Работа с сетью из VBScript, объект WshNetwork, свойства ComputerName, UserDomain, UserName, методы MapNetworkDrive(), AddPrinterConnection(), SetDefaultPrinter()

Основные возможности работы с сетью можно реализовать при помощи встроенной утилиты NET и утилит, поставляемых в составе Resource Kit и Support Tools. Большинство возможностей WSH реализовано при помощи объекта WScript.Network. Создание этого объекта можно произвести так:

Set WshNetwork = WScript.CreateObject("WScript.Network")

У созданного объекта - всего три свойства и восемь методов, но они могут оказаться очень полезными.

Свойства ComputerName, UserDomain и UserName возвращают, соответственно, имя компьютера, имя домена и имя текущего пользователя. Очень удобно:

  • для протоколирования выполнения скрипта - записывается информация о том, на каком компьютере произошло то или иное событие;
  • для выполнения каких-либо действий только на том компьютере или только с тем пользователем, который указан в нашем списке (при помощи утилит Resource Kit можно основываться и на членстве пользователей в группах).

Кроме того, можно просто отображать полученную информацию - например, на Web-странице, которая используется в качестве обоев для пользователя.

Обратить внимание:

  • UserDomain показывает только имя домена в формате имени NetBIOS. Имена в формате Active Directory не выводятся. Если компьютер работает не в домене, а в рабочей группе, выводится пустая строка;
  • свойство UserName часто некорректно работает при применении в сценариях регистрации под Windows 95/98/ME: при выполнении сценария значение свойства UserName оказывается пустым (операционная система еще не поняла, под каким именем вошел пользователь). Лечится так:

Set WshNetwork = WScript.CreateObject("WScript.Network")

sUser = ""

Do While sUser = ""

            sUser = WshNetwork.UserName

            WScript.Sleep(500)

Loop

Метод EnumNetworkDrives используется для получения коллекции сетевых дисков на компьютере, MapNetworkDrive - подключение сетевых дисков, RemoveNetworkDrive - удаление сетевого диска. Возможностей гораздо больше, чем у команды NET - в частности, средствами 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

WshNetwork.MapNetworkDrive "Z:", "\\London\Setup", true

ErrCheck Err.Number

true означает - сохранить информацию о подключении в профиле пользователя (сделать подключение постоянным). Кроме того, в качестве необязательных параметров можно передать имя пользователя и пароль для подключения.

Конечно, в функцию ErrCheck, помимо Echo, можно включить и другую обработку ошибок. В некоторых ситуациях для исключения ошибок можно сделать так:

On Error Resume Next

WSHNetwork.RemoveNetworkDrive "Z:"

WshNetwork.MapNetworkDrive "Z:", "\\London\Setup", true

Теперь о том, что нельзя сделать при помощи утилиты NET: как подключить сетевой принтер. Работа с принтерами - при помощи методов AddPrinterConnection, AddWindowsPrinterConnection, EnumPrinterConnections, RemovePrinterConnections, SetDefaultPrinter.

Конечно, и в этом случае лучше реализовать обработку ошибок. Выглядеть она может так:

On Error Resume Next

WshNetwork.AddPrinterConnection "LPT1", \\London\HP5LJ

On Error GoTo 0 'Отключить обработку ошибок On Error Resume Next

Обратить внимание:

  • метод AddPrinterConnection позволяет подключать принтеры только к какому-либо порту, AddWindowsPrinter - необязательно к порту;
  • при работе скрипта под Windows 95/98 драйвер принтера должен быть уже установлен - иначе возникнет ошибка

После установки принтера можно назначить его принтером по умолчанию:

WshNetwork.SetDefaultPrinter "\\London\HP5LJ"

Дополнительные утилиты из набора Resource Kit:

  • cconnect - возможность протоколировать (в БД SQL Server), к каким сетевым ресурсам обращается пользователь и ограничивать возможности одновременных подключений;
  •       drmapsrv - подключает клиентские локальные диски в качестве сетевых при работе под Terminal Services
  •       gettype - информация о версии операционной системы и роли компьютера (DC и т.п.)
  •       findgrp - перечисляет те группы, в которые входит пользователь;
  •       ifmember - позволяет получить информацию о том, входит ли пользователь в определенную группу;
  •       showgrps - также показывает членство в группах для пользователя, но в другом формате, кроме того, умеет показывать членство в группах в других доменах (с которыми настроены трасты)
  •       showmbrs - выводит всех членов данной группы
  •       srvcheck - показывает все расшаренные каталоги для указанного компьютера и все разрешения на эти каталоги
  •       usrstat - показывает информацию о всех пользователях (logon name и full name) и последнее время входа для всех пользователей домена;
  •       whoami - полная информация о пользователе (включая членство во всех группах, имя, SID, полный набор локальных прав и т.п.). При помощи ключей можно менять объем выводимой информации.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru