Книга: Windows Script Host для Windows 2000/XP

Получение списка подключенных сетевых дисков и принтеров

закрыть рекламу

Получение списка подключенных сетевых дисков и принтеров

У объекта WshNetwork имеются методы EnumNetworkDrives и EnumPrinterConnections, с помощью которых можно создать коллекции, содержащие, соответственно, сведения о всех подключенных к локальной станции сетевых дисках и сетевых принтерах. Эти коллекции устроены следующим образом: первым элементом является буква диска или название порта, вторым — сетевое имя ресурса, с которым связан этот диск или принтер. Та же последовательность сохраняется для всех элементов коллекции.

В листингах 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  'Выводим сформированные строки на экран
'*************  Конец *********************************************

Оглавление книги


Генерация: 0.153. Запросов К БД/Cache: 1 / 0
поделиться
Вверх Вниз