Выбрать главу
Листинг 2.51. Отключение и подключение сетевых ресурсов (VBScript)

'********************************************************************

' Имя: MapResources.vbs

' Язык: VBScript

' Описание: Отключение и подключение сетевых дисков и принтеров

'********************************************************************

Option Explicit

' Объявляем переменные

Dim WshNetwork,Drive,NetPath,Port,NetPrinter

Drive="K:"   ' Буква диска

NetPath="\\RS_NT_Server\d"    ' Сетевой путь для подключения диска

Port="LPT1"   ' Название локального порта

' Сетевой путь для подключения принтера

NetPrinter="\\104_Stepankova\HP"

' Создаем объект WshNetwork

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

' Создаем объект WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")

On Error Resume Next  ' Включаем обработку ошибок времени выполнения

'*************  Отключение сетевого диска  ***********************

' Отключаем сетевой диск

WshNetwork.RemoveNetworkDrive Drive

If Err.Number<>0 Then

 Mess="Ошибка при отключении диска " & Drive & vbCrLf & _

  "Код ошибки: " &  e.number & vbCrLf &+ _

  "Описание: " & e.description

 WshShell.Popup Mess,0,"Отключение сетевого диска",vbCritical

Else

 ' Все в порядке

 Mess="Диск " & Drive & " отключен успешно"

 WshShell.Popup Mess,0,"Отключение сетевого диска",vbInformation

End If

'*************  Подключение сетевого диска  ***********************

' Подключаем сетевой диск

WshNetwork.MapNetworkDrive Drive,NetPath

If Err.Number<>0 Then

 Mess="Ошибка при подключении диска " & Drive & " к " & NetPath &_

  "Код ошибки: " & e.number & "Описание: " & e.description

 WshShell.Popup Mess,0,"Подключение сетевого диска",vbCritical

Else

 ' Все в порядке

 Mess="Диск " & Drive & " успешно подключен к " & NetPath

 WshShell.Popup Mess,0,"Подключение сетевого диска",vbInformation

End If

'*************  Освобождение локального порта  ***********************

' Разрываем связь с сетевым принтером

WshNetwork.RemovePrinterConnection Port

If Err.Number<>0 Then

 Mess="Ошибка при отключении порта " & Port & "Код ошибки: " &_

  e.number & "Описание: " & e.description

 WshShell.Popup Mess,0,"Отключение порта от сетевого ресурса",vbCritical

Else

 ' Все в порядке

 Mess="Порт " & Port & " отключен успешно"

 WshShell.Popup Mess,0,"Отключение порта от сетевого ресурса",_

  vbInformation

End If

'*****  Подключение локального порта  к сетевому принтеру  *********

' Подключаем сетевой принтер к локальному порту

WshNetwork.AddPrinterConnection Port,NetPrinter

If Err.Number<>0 Then

 Mess="Ошибка при переназначении порта " & Port & " на " & NetPrinter &_

  "Код ошибки: " & e.number & "Описание: " & e.description

 WshShell.Popup Mess,0,"Подключение порта к сетевому ресурсу",vbCritical

Else

 ' Все в порядке

 Mess="Порт " & Port & " успешно подключен к " & NetPrinter

 WshShell.Popup Mess,0,"Подключение порта к сетевому ресурсу",

  vbInformation

End If

'*************  Конец *********************************************

Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев

Начиная с версии 5.6 сценарии WSH можно запускать не только на локальной машине, но и на других компьютерах, имеющихся в сети (это может быть очень удобно для централизованного администрирования удаленных рабочих станций).

Такие WSH-сценарии называются удаленными сценариями (remote scripts). При этом файл со сценарием может находиться либо на локальной машине, либо на общедоступном сетевом ресурсе. На жесткий диск удаленной машины файл сценария копироваться не будет — вместо этого текст сценария по коммуникационному протоколу DCOM — Distributed СОМ (распределенный СОМ) передается непосредственно в память процесса, запускаемого на этой машине.

Естественно, такой механизм запуска сценариев является весьма мощным средством удаленного администрирования, однако он также может быть использован для быстрого и практически незаметного распространения по сети вирусов. Поэтому при использовании удаленных сценариев WSH предусмотрены довольно строгие меры безопасности.