Windows Script Host для Windows 2000/XP - Андрей Попов
Шрифт:
Интервал:
Закладка:
 "Работа с реестром",vbInformation+vbOkOnly);
}
/************* Конец *********************************************/
Реализация того же сценария на языке VBScript приведена в листинге 2.45.
Листинr 2.45. Работа с системным реестром (VBScript)'********************************************************************
' РРјСЏ: Registry.vbs
' Язык: VBScript
' Описание: Работа с системным реестром
'********************************************************************
Option Explicit
'Объявляем переменные
Dim WshShell,Root,Key,Res,SValue,ValueName,SRegValue
Root="HKEY_CURRENT_USER"  'Корневой ключ
Key="ExampleKey"        'Новый ключ
ValueName="ExampleValue"В В 'РРјСЏ РЅРѕРІРѕРіРѕ параметра
SValue="Value from WSH"   'Значение нового параметра
'Создаем объект WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
'Запрос на создание нового ключа
Res=WshShell.Popup("Создать ключ" & vbCrLf & Root & Key & "?",0,_
 "Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then  'Нажата кнопка Да
 'Записываем новый ключ
В WshShell.RegWrite Root & Key, ""
 WshShell.Popup "Ключ" & vbCrLf & Root & Key & " создан!",0,_
 "Работа с реестром",vbInformation+vbOkOnly
End If
'Запрос на запись нового параметра
Res=WshShell.Popup("Записать параметр" & vbCrLf & Root & Key & _
 ValueName & "?",0,"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then  'Нажата кнопка Да
 'Записываем новый строковый параметр
В WshShell.RegWrite Root & Key & ValueName,SValue,"REG_SZ"
 WshShell.Popup "Параметр" & vbCrLf & Root & Key & _
 ValueName & " записан!",0,"Работа с реестром",vbInformation+vbOkOnly
 'Считываем значение созданного параметра
В SRegValue=WshShell.RegRead(Root & Key & ValueName)
 'Выводим на экран полученное значение
В WshShell.Popup Root & Key & ValueName & "=" & SRegValue,0,_
 "Работа с реестром",vbInformation+vbOkOnly
End If
'Запрос на удаление параметра
Res=WshShell.Popup("Удалить параметр" & vbCrLf & Root & Key & _
 ValueName & "?",0,"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then  'Нажата кнопка Да
 'Удаляем параметр
В WshShell.RegDelete Root & Key & ValueName
 WshShell.Popup "Параметр" & vbCrLf & Root & Key & _
 ValueName & " удален!",0,"Работа с реестром",vbInformation+vbOkOnly
End If
'Запрос на удаление раздела
Res=WshShell.Popup("Удалить раздел" & vbCrLf & Root & Key & _
 "?",0,"Работа с реестром",vbQuestion+vbYesNo)
If Res=vbYes Then  'Нажата кнопка Да
 'Удаляем раздел
В WshShell.RegDelete Root & Key
 WshShell.Popup "Раздел" & vbCrLf & Root & Key & " удален!",0,_
 "Работа с реестром",vbInformation+vbOkOnly
End If
'************* Конец *********************************************
Работа с ресурсами локальной сети
Стандартным объектом, позволяющим выполнять типовые операции с локальной сетью, является WshNetwork. С помощью этого объекта можно:
□ узнать сетевое имя компьютера, имя текущего пользователя и название домена, в котором он зарегистрировался;
□ получить список всех сетевых дисков и всех сетевых принтеров, подключенных к рабочей станции;
□ подключить или отключить сетевой диск и принтер;
□ установить сетевой принтер в качестве принтера, используемого по умолчанию.
ЗамечаниеДля решения более сложных задач, связанных СЃ администрированием локальной сети, можно применять имеющиеся РІ Windows ХРтехнологии ADSI — Active Directory Service Interface Рё WMI — Windows Management Instrumentation.В
Определение имен рабочей станции, пользователя и домена
Для того чтобы из сценария узнать имя текущего пользователя, домена и компьютера в сети, можно использовать соответствующие свойства объекта WshNetwork: UserName, Domain и ComputerName. Примеры сценариев на языках JScript и VBScript, которые выводят на экран такую информацию, приведены в листингах 2.46 и 2.47.
Листинг 2.46. Вывод сетевых параметров станции (JScript)/********************************************************************/
/* РРјСЏ: NetworkParam.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                   */
/* Описание: Вывод сетевых параметров станции                      */
/********************************************************************/
var WshNetwork,s; //Объявляем переменные
//Создаем объект WshNetwork
WshNetwork = WScript.CreateObject("WScript.Network");
s="Сетевые параметры станции:nn";
//Выводим на экран свойства ComputerName, UserName и UserDomain
s+="РРјСЏ машины: "+WshNetwork.ComputerName+"n";
s+="РРјСЏ пользователя: "+WshNetwork.UserName+"n";
s+="Домен: "+WshNetwork.UserDomain;
WScript.Echo(s);
/************* Конец *********************************************/
Листинг 2.47. Вывод сетевых параметров станции и списков подключенных сетевых ресурсов (VBScript)'********************************************************************
' РРјСЏ: NetworkParam.vbs
' Язык: VBScript
' Описание: Вывод сетевых параметров станции
'********************************************************************
Option Explicit
Dim WshNetwork,s,NetwDrives,i,NetwPrinters ' Объявляем переменные
' Создаем объект WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
s="Сетевые параметры станции:" & vbCrLf & vbCrLf
' Выводим на экран свойства ComputerName, UserName и UserDomain
s=s & "РРјСЏ машины: " & WshNetwork.ComputerName & vbCrLf
s= s & "РРјСЏ пользователя: " & WshNetwork.UserName & vbCrLf
s= s & "Домен: " & WshNetwork.UserDomain
WScript.Echo s
'************* Конец *********************************************
Получение списка подключенных сетевых дисков и принтеров
РЈ объекта WshNetwork имеются методы EnumNetworkDrives Рё EnumPrinterConnections, СЃ помощью которых можно создать коллекции, содержащие, соответственно, сведения Рѕ всех подключенных Рє локальной станции сетевых дисках Рё сетевых принтерах. Рти коллекции устроены следующим образом: первым элементом является Р±СѓРєРІР° РґРёСЃРєР° или название порта, вторым — сетевое РёРјСЏ ресурса, СЃ которым связан этот РґРёСЃРє или принтер. РўР° же последовательность сохраняется для всех элементов коллекции.