Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Таблица 10.2.Подразделы, создаваемые в разделе HKCR\CLSID \{424AC2BC-5732-4DEA-BE17-0211AF99CD79} при регистрации объекта DateArc.WSC
Название | Значение по умолчанию | Описание |
---|---|---|
InprocServer32 |
"F:\WINDOWS\System32\scrobj.dll" | Полный путь к оболочке компонентов-сценариев scrobj.dll |
ProgID |
"DateArc.WSC.1.00" | Программный идентификатор объекта, включающий номер версии |
ScriptletURL |
"file://C:\WSC\DateArc.wsc" | Полный путь к WSC-файлу |
VersionIndependentProgID |
"DateArc.WSC" | Программный идентификатор объекта без номера версии |
Отключается компонент-сценарий так же просто, как и регистрируется. Снова нужно выделить в Проводнике Windows WSC-файл, щелкнуть правой кнопкой мыши и в появившемся контекстном меню выбрать пункт Отключить(Unregister). При этом из системного реестра записи об этом объекте будут удалены, после чего выполнится функция Unregister()
(рис. 10.11).

Рис. 10.11.Информация об отключении компонента-сценария DateArc.WSC
Реализация объекта DateArc.wsc на VBScript
Различие между компонентами-сценариями, написанными на языках JScript и VBScript, проявляется только в секции WSC-файлов. Во-первых, естественным образом меняется синтаксис описанных внутри контейнера функций. Во-вторых, в WSC-файле, написанном с помощью VBScript, отсутствует описание внутреннего объекта, который генерируется программой Windows Script Component Wizard и имеет поля и методы, совпадающие с объявленными внутри элемента (см. листинг 10.3).
Объяснение этому очень простое — в VBScript нельзя создавать свои внутренние объекты.
Полностью содержимое файла DateArcVB.wsc, который реализует СОМ-объект DateArc.WSC
с помощью VBScript, приведено в листинге 10.5.
version="1.00" classid="{424ac2bc-5732-4dea-be17-0211af99cd79}">
Dim WshShell
Function Register()
'Создаем объект WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Компонент зарегистрирован в системе",0,_
"Компонент для архивирования файлов",vbInformation
End Function
Function Unregister()
'Создаем объект WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Компонент удален из системы",0,_
"Компонент для архивирования файлов",vbInformation
End Function
]]>
Dim SFrom 'Исходный каталог для архивирования
Dim SArch 'Каталог, в котором будет создаваться архив
Dim SPref 'Префикс файла
Dim SMask 'Маска, по которой отбираются файлы для
'архивирования
Dim SErrMess 'Текст сообщения об ошибке
'Чтение и запись свойства SFrom
Function get_SFrom()
get_SFrom = SFrom
End Function
Function put_SFrom(newValue)
SFrom = newValue
End Function
'Чтение и запись свойства SArch
Function get_SArch()
get_SArch = SArch
End Function
Function put_SArch(newValue)
SArch = newValue
End Function
'Чтение и запись свойства SPref
Function get_SPref()
get_SPref = SPref
End Function
Function put_SPref(newValue)
SPref = newValue
End Function
'Чтение и запись свойства SMask
Function get_SMask()
get_SMask = SMask
End Function
Function put_SMask(newValue)
SMask = newValue
End Function
'Чтение свойства SErrMess
Function get_SErrMess()
get_SErrMess = SErrMess
End Function
'Вспомогательная функция для символьного представления даты
Function NowIs()
Dim d,s,s1
s=""
s1=""
'Определяем текущую дату
d=Date()
'Выделяем номер месяца
s=s & Month(d)
'Если месяц представляется одним символом, добавляем слева "0"
If Len(s)=1 Then
s="0" & s
End If
'Выделяем в дате день
s1=s1 & Day(d)
'Если день представляется одним символом, добавляем слева "0"
If Len(s1)=1 Then
s1="0" & s1
End If
s=s & s1
'Возвращаем сформированную строку
NowIs=s
End Function
'Проверка доступности каталогов
Function CheckPath()
Dim FSO
'Создаем объект FileSystemObject
Set FSO=CreateObject("Scripting.FileSystemObject")
'Проверяем доступность исходного каталога
If Not FSO.FolderExists(SFrom) Then
'Исходный каталог не существует
'Формируем строку с информацией об ошибке
SErrMess="Не найден исходный каталог " & SFrom
CheckPath=false
End If
'Проверяем доступность каталога для архивирования
If Not FSO.FolderExists(SArch) Then
'Каталог для архивирования не существует
'Формируем строку с информацией об ошибке
SErrMess="Не найден каталог для хранения архивов " & SArch
CheckPath=false
End If
'Если оба каталога существуют, возвращаем true
CheckPath=true
End Function
'Архивирование файлов из исходного каталога
Function FilesToArchiv()
Dim WshShell,SComLine,RetCode,SFName,FSO
'Если хотя бы один из каталогов не существует, возвращаем false
If Not CheckPath() Then
FilesToArchiv=false
End If
'Создаем объект FileSystemObject
Set FSO=CreateObject("Scripting.FileSystemObject")
'Создаем объект WshShell
Set WshShell=CreateObject("WScript.Shell")
'Формируем имя файла-архива
SFName=SPref & NowIs() & ".arj"
'Формируем командную строку для запуска архиватора arj.exe
SComLine="%COMSPEC% /c arj.exe a "
SComLine=SComLine & FSO.BuildPath(SArch,SFName)+" "
SComLine=SComLine & FSO.BuildPath(SFrom,SMask)
'Запускаем архиватор arj.exe
RetCode = WshShell.Run(SComLine, 1, true)
'Анализируем код возврата для arj.exe
If 0=RetCode Then
'Выполнение arj.exe завершилось без ошибок
FilesToArchiv=true
Else
'Формируем строку с информацией об ошибке
SErrMess="Ошибка ARJ.EXE! Код " & RetCode
FilesToArchiv=false
End If
End Function
]]>
Глава 11
Применение сценариев WSH для администрирования Windows ХР
Одним из основных назначений сценариев WSH является, в конечном счете, автоматизация работы администраторов компьютерных систем, построенных на базе Windows. В данной главе мы рассмотрим примеры сценариев, которые могут быть полезны администраторам в их повседневной работе, например, при создании сценариев регистрации для пользователей.
Особое внимание мы уделим вопросам применения в сценариях WSH таких мощных современных технологий Microsoft, как ADSI — Active Directory Service Interface и WMI — Windows Management Instrumentation, которые позволяют автоматизировать процесс администрирования как отдельной рабочей станции, так и крупной корпоративной информационной системы в целом. Отметим, что в данной книге не ставится задача более или менее полного раскрытия этих технологий, а лишь кратко описываются их основные возможности и приводятся примеры сценариев для их реализации.
Читать дальшеИнтервал:
Закладка: