Андрей Попов - Windows Script Host для Windows 2000/XP
IsError=false;
try {
 //Разрываем связь с сетевым принтером
В WshNetwork.RemovePrinterConnection(Port);
} catch (e) {
 if (e != 0) { //Обрабатываем возможные ошибки
 //Выводим сообщение об ошибке
В IsError=true;
 Mess="Ошибка при отключении порта "+Port+"nКод ошибки: "+
  e.number+"nОписание: "+e.description;
 WshShell.Popup(Mess,0,"Отключение локального порта от сетевого ресурса",vbCritical);
В }
}
if (!IsError)В {
В //Р’СЃРµ РІ РїРѕСЂСЏРґРєРµ
 Mess="Порт "+Port+" отключен успешно";
 WshShell.Popup(Mess,0,"Отключение локального порта от сетевого ресурса",vbInformation);
}
/***** Подключение локального порта к сетевому принтеру *********/
IsError=false;
try {
 //Подключаем сетевой принтер к локальному порту
В WshNetwork.AddPrinterConnection(Port,NetPrinter);
} catch (e) { //Обрабатываем возможные ошибки
В if (e != 0) {
 //Выводим сообщение об ошибке
В IsError=true;
 Mess="Ошибка при переназначении порта "+Port+ " на "+NetPrinter+
  "nКод ошибки: "+e.number+"nОписание: "+e.description;
 WshShell.Popup(Mess,0,"Подключение локального порта к сетевому ресурсу",vbCritical);
В }
}
if (!IsError)В {
В //Р’СЃРµ РІ РїРѕСЂСЏРґРєРµ
 Mess="Порт "+Port+" успешно подключен к "+NetPrinter;
 WshShell.Popup(Mess,0,"Подключение локального порта к сетевому ресурсу",vbInformation);
}
/************* Конец *********************************************/
Реализация того же сценария на языке VBScript представлена в листинге 2.51. Главное отличие здесь состоит в способе обработки возможных ошибок времени выполнения. В VBScript для этой цели предназначен оператор On Error Resume Next — при возникновении ошибки после выполнения этого оператора сценарий не прервется, а просто перейдет к выполнению следующей строки кода. Проанализировать же возникшую ошибку можно с помощью специального объекта Err, в полях Number и Description которого будут соответственно содержаться код и описание ошибки.
Листинг 2.51. Отключение и подключение сетевых ресурсов (VBScript)'********************************************************************
' РРјСЏ: MapResources.vbs
' Язык: VBScript
' Описание: Отключение и подключение сетевых дисков и принтеров
'********************************************************************
Option Explicit
' Объявляем переменные
Dim WshNetwork,Drive,NetPath,Port,NetPrinter
Drive="K:"  ' Буква диска
NetPath="\RS_NT_Serverd"   ' Сетевой путь для подключения диска
Port="LPT1"  ' Название локального порта
' Сетевой путь для подключения принтера
NetPrinter="\104_StepankovaHP"
' Создаем объект 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 СОМ (распределенный СОМ) передается непосредственно в память процесса, запускаемого на этой машине.