/************* Отключение сетевого диска ***********************/
IsError=false;
try {
//Отключаем сетевой диск
WshNetwork.RemoveNetworkDrive(Drive);
} catch (e) { //Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
IsError=true;
Mess='Ошибка при отключении диска '+Drive+'
Код ошибки: '+
e.number+'
Описание: '+e.description;
WshShell.Popup(Mess,0,'Отключение сетевого диска',vbCritical);
}
}
if (!IsError) {
//Все в порядке
Mess='Диск '+Drive+' отключен успешно';
WshShell.Popup(Mess,0,'Отключение сетевого диска',vbInformation);
}
/************* Подключение сетевого диска ***********************/
IsError=false;
try {
//Подключаем сетевой диск
WshNetwork.MapNetworkDrive(Drive,NetPath);
} catch (e) { //Обрабатываем возможные ошибки
if (e != 0) {
//Выводим сообщение об ошибке
IsError=true;
Mess='Ошибка при подключении диска ' + Drive + ' к ' + NetPath+
'
Код ошибки: '+e.number+'
Описание: '+e.description;
WshShell.Popup(Mess,0,'Подключение сетевого диска',vbCritical);
}
}
if (!IsError) {
//Все в порядке
Mess='Диск '+Drive+' успешно подключен к '+NetPath;
WshShell.Popup(Mess,0,'Подключение сетевого диска',vbInformation);
}
/************* Освобождение локального порта ***********************/
IsError=false;
try {
//Разрываем связь с сетевым принтером
WshNetwork.RemovePrinterConnection(Port);
} catch (e) {
if (e != 0) { //Обрабатываем возможные ошибки
//Выводим сообщение об ошибке
IsError=true;
Mess='Ошибка при отключении порта '+Port+'
Код ошибки: '+
e.number+'
Описание: '+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+
'
Код ошибки: '+e.number+'
Описание: '+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
которого будут соответственно содержаться код и описание ошибки.
'********************************************************************
' Имя: MapResources.vbs
' Язык: VBScript
' Описание: Отключение и подключение сетевых дисков и принтеров
'********************************************************************
Option Explicit
' Объявляем переменные
Dim WshNetwork,Drive,NetPath,Port,NetPrinter
Drive='K:' ' Буква диска
NetPath='\RS_NT_Serverd' ' Сетевой путь для подключения диска