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

Имеющиеся в локальной сети общедоступные ресурсы (диски и принтеры) можно посредством сценария подключить к рабочей станции для совместного использования. Подключаемому сетевому диску при этом нужно поставить в соответствие незанятую букву локального диска (например, если в системе уже имеются диски С:, 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);

(переменной Drive заранее было присвоено значение 'K:'). При выполнении этой команды может произойти ошибка времени выполнения (например, диск K: не существует или возникла ошибка при отключении связанного с ним сетевого ресурса), поэтому вызов метода RemoveNetworkDrive помещается внутрь блока try конструкции try…catch языка JScript, которая позволяет обрабатывать такие ошибки:

try {

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

 WshNetwork.RemoveNetworkDrive(Drive);

} catch (e) { //Обрабатываем возможные ошибки

if (е.number != 0) {

 //Выводим сообщение об ошибке

 IsError=true;

 Mess='Ошибка при отключении диска '+Drive + ' Код ошибки: '+

  е.number+' Описание: ' + е.description;

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

 }

}

Теперь в случае возникновения ошибки при работе метода RemoveNetworkDrive управление передастся внутрь блока catch, а в полях переменной-объекта е будет содержаться информация о произошедшей ошибке (е.number — числовой код ошибки, е.description — краткое описание ошибки); эта информация отображается в диалоговом окне (рис. 2.23).

Рис. 2.23. Информация об ошибке, произошедшей при отключении диска K:

Если же отключение диска K: прошло успешно, на экран выводится диалоговое окно с информацией об этом (рис. 2.24):

if (!IsError) { //Все в порядке

 Mess='Диск '+Drive+' отключен успешно';

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

}

Рис. 2.24. Информация об успешном отключении диска K:

Аналогичный блок try…catch используется и при подключении сетевого диска:

try {

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

 WshNetwork.MapNetworkDrive(Drive, NetPath);

} catch (e) {

 //Обрабатываем возможные ошибки

 if (e != 0) {

  //Выводим сообщение об ошибке

  IsError=true;

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

   ' Код ошибки: '+е.number + ' Описание: '+е.description;

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

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

Рис. 2.25. Информация об ошибке, произошедшей при подключении диска K:

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

Листинг 2.50. Отключение и подключение сетевых ресурсов (JScript)

/********************************************************************/

/* Имя: MapResources.js                                             */

/* Язык: JScript                                                    */

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

/********************************************************************/

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

var WshNetwork,WshShell,Drive,NetPath,Port,NetPrinter,Mess,IsError;

//Инициализируем константы для диалоговых окон

var vbCritical=16,vbInformation=64;

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

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

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

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

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

NetPrinter='\\104_Stepankova\HP';

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

WshNetwork = WScript.CreateObject('WScript.Network');

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

WshShell = WScript.CreateObject('WScript.Shell');

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату