Андрей Попов - Windows Script Host для Windows 2000/XP
В листингах 2.48 и 2.49 приведены сценарии на языках JScript и VBScript соответственно, в которых на экран выводятся диалоговые окна, содержащие информацию о сетевых дисках и сетевых принтерах, подключенных к рабочей станции (рис. 2.22).
Рис. 2.22. Выводимая сценарием ListNetworkResources.js информация о подключенных сетевых ресурсах
Листинг 2.48. Вывод списка подключенных сетевых ресурсов (JScript)
/********************************************************************/
/* РРјСЏ: ListNetworkResources.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                   */
/* Описание: Вывод подключенных сетевых ресурсов (диски и принтеры) */
/********************************************************************/
var WshNetwork,s,NetwDrives,i,NetwPrinters; //Объявляем переменные
//Создаем объект WshNetwork
WshNetwork = WScript.CreateObject("WScript.Network");
/*****  Вывод списка всех подключенных сетевых дисков ******/
s="Подключенные сетевые диски:nn";
//Создаем коллекцию с данными о подключенных дисках
NetwDrives = WshNetwork.EnumNetworkDrives();
i=0;
while (i<=NetwDrives.Count()-2) { //Перебираем элементы коллекции
 //В первом элементе коллекции содержится буква диска,
 //во втором - сетевое имя ресурса и т.д.
В s+=NetwDrives(i)+"В "+NetwDrives(i+1)+"n";
В i=i+2;
}
WScript.Echo(s); //Выводим сформированные строки на экран
/******  Вывод списка всех подключенных сетевых принтеров ******/
s="Подключенные сетевые принтеры:nn";
//Создаем коллекцию с данными о подключенных принтерах
NetwPrinters = WshNetwork.EnumPrinterConnections();
i=0;
while (i<=NetwPrinters.Count()-2) { //Перебираем элементы коллекции
 //В первом элементе коллекции содержится названия локальных портов,
 //во втором - сетевое имя принтера и т.д.
В s+=NetwPrinters(i)+"В "+NetwPrinters(i+1)+"n";
В i=i+2;
}
WScript.Echo(s); //Выводим сформированные строки на экран
/************* Конец *********************************************/
Листинг 2.49. Вывод списка подключенных сетевых ресурсов (VBScript)'********************************************************************
' РРјСЏ: ListNetworkResources.vbsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В
' Язык: JScriptВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В
' Описание: Вывод подключенных сетевых ресурсов (РґРёСЃРєРё Рё принтеры)В
'********************************************************************
Option Explicit
Dim WshNetwork,s,NetwDrives,i,NetwPrinters ' Объявляем переменные
' Создаем объект WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
'********  Вывод списка всех подключенных сетевых дисков  *********
s="Подключенные сетевые диски:" & vbCrLf & vbCrLf
' Создаем коллекцию с данными о подключенных дисках
Set NetwDrives = WshNetwork.EnumNetworkDrives()
i=0
While i<=NetwDrives.Count()-2 ' Перебираем элементы коллекции
 ' В первом элементе коллекции содержится буква диска,
 ' во втором - сетевое имя ресурса и т.д.
В s=s & NetwDrives.Item(i) & "В " & NetwDrives.Item(i+1) & vbCrLf
В i=i+2
Wend
WScript.Echo s  ' Выводим сформированные строки на экран
'********   Вывод списка всех подключенных сетевых принтеров   *******
s="Подключенные сетевые принтеры:" & vbCrLf & vbCrLf
' Создаем коллекцию с данными о подключенных принтерах
Set NetwPrinters = WshNetwork.EnumPrinterConnections()
i=0
While i<=NetwPrinters.Count()-2  ' Перебираем элементы коллекции
 ' В первом элементе коллекции содержится названия локальных портов,
 ' во втором - сетевое имя принтера и т.д.
В s=s & NetwPrinters.Item(i) & "В " & NetwPrinters.Item(i+1) & vbCrLf
В i=i+2
Wend
WScript.Echo s 'Выводим сформированные строки на экран
'************* Конец *********************************************
Подключение и отключение сетевых дисков и принтеров
Рмеющиеся РІ локальной сети общедоступные ресурсы (РґРёСЃРєРё Рё принтеры) можно посредством сценария подключить Рє рабочей станции для совместного использования. Подключаемому сетевому РґРёСЃРєСѓ РїСЂРё этом нужно поставить РІ соответствие незанятую Р±СѓРєРІСѓ локального РґРёСЃРєР° (например, если РІ системе уже имеются РґРёСЃРєРё РЎ:, D: Рё Р•: (локальные или сетевые), то сетевой РґРёСЃРє можно подключить РїРѕРґ Р±СѓРєРІРѕР№ F: или K:, РЅРѕ РЅРµ Р•:). Р’ случае подключения сетевого принтера можно либо напрямую соединиться СЃ этим принтером (для печати РёР· приложений Windows), либо поставить РІ соответствие удаленному принтеру локальный РїРѕСЂС‚ (для печати РёР· старых приложений MS-DOS).
ЗамечаниеСетевые диски и принтеры также можно подключить с помощью Проводника Windows или выполнив соответствующую команду NET USE.
В качестве примера рассмотрим JScript-сценарий MapResources.js (листинг 2.50), в котором производится подключение диска K: к сетевому ресурсу \RS_NT_Serverd и установка связи локального порта LPT1 с сетевым принтером \104_StepankovaHP.
Сначала нужно создать экземпляры объектов WshNetwork и WshShell:
WshNetwork = WScript.CreateObject("WScript.Network");
WshShell = WScript.CreateObject("WScript.Shell");
Для того чтобы подключить сетевой диск к устройству K:, нужно быть уверенным, что с этой буквой уже не связан сетевой диск (иначе произойдет ошибка). Поэтому предварительно отключается сетевой диск с помощью метода RemoveNetworkDrive:
WshNetwork.RemoveNetworkDrive(Drive);