Андрей Попов - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:

Рис. 4.8. Выбор типа сертификатов, которым будет управлять добавляемая оснастка Сертификаты

Рис. 4.9. Расположение личных сертификатов

Рис. 4.10. Свойства сертификата "Попов надежный"
Как мы видим, для обоих новых сертификатов не установлено доверие. Для того чтобы установить доверие к одному из сертификатов ("Попов надежный"), достаточно просто перетащить при помощи мыши этот сертификат враздел Доверенные корневые центры сертификации | Сертификаты(Trusted Root Certification Authorities) (рис. 4.11).
Если при перетаскивании сертификата в новое место держать нажатой клавишу , то сертификат будет не перемещен, а скопирован.

Рис. 4.11.Сертификаты, к которым установлено доверие
Свойства сертификата "Попов надежный" после установки доверия к нему показаны на рис. 4.12.
Выполним теперь экспорт в файл сертификата "Попов ненадежный" (это понадобится нам в дальнейшем при построении политики ограниченного использования программ). Для этого следует выделить нужный сертификат и выбрать в меню Действие | Все задачи(Action | All Tasks) пункт Экспорт(Export), после чего запустится мастер экспорта сертификатов, в котором нужно согласиться со всеми настройками, предлагаемыми по умолчанию, а в качестве имени экспортируемого файла указать "C:\Script \Попов.cer".

Рис. 4.12.Новые свойства сертификата "Попов надежный"
Добавление к сценарию цифровой подписи
Подписать файл со сценарием WSH можно двумя способами. Во-первых, можно использовать программу SignCode.exe, с помощью которой производится подпись любого исполняемого кода. Однако эта программа не является стандартной частью операционной системы Windows, ее нужно устанавливать отдельно. Поэтому далее мы будем рассматривать второй способ подписи сценариев — с помощью метода SignFile
объекта Scripting.Signer
, который регистрируется в системе при установке WSH 5.6.
В листинге 4.7 приведен сценарий SignScript.wsf, с помощью которого мы будем подписывать файлы сценариев различных типов, используя личные сертификаты "Попов надежный" и "Попов ненадежный". При запуске этого сценария нужно указать два именных параметра командной строки: /file
для задания пути к подписываемому файлу и /cert
, содержащий название цифрового сертификата, на основе которого будет создаваться подпись. Эти параметры в сценарии подставляются в качестве аргументов метода SignFile
объекта Scripting.Signer
:
//Создаем объект Scripting.Signer
Signer = WScript.CreateObject("Scripting.Signer");
File = WScript.Arguments.Named("file"); //Имя файла
Cert = WScript.Arguments.Named("cert"); //Название сертификата
Signer.SignFile(File, Cert); //Подписываем файл
В методе SignFile
может быть указан третий необязательный параметр, задающий путь к хранилищу сертификатов. В сценарии SignScript.wsf этот параметр не используется, т.к. для создания подписи применяются личные сертификаты, находящиеся на локальной машине.
Имя: SignScript.wsf
Описание: Добавление цифровой подписи к файлам
со сценариями WSH
Пример:
SignScript.wsf /file:Signed.wsf /cert:"Попов надежный"
var Signer, File, Cert, Store;
if (!(WScript.Arguments.Named.Exists("cert") && WScript.Arguments.Named.Exists("file"))) {
WScript.Arguments.ShowUsage();
WScript.Quit();
}
Signer = WScript.CreateObject("Scripting.Signer");
File = WScript.Arguments.Named("file");
Cert = WScript.Arguments.Named("cert");
Store = "";
Signer.SignFile(File, Cert);
Цифровые подписи добавляются в конец файлов, содержащих сценарии, причем в обычных JScript- и VBScript-файлах подпись находится в блоке комментария, а в WS-файлах — внутри элемента . Это делает возможным запуск подписанных сценариев в предыдущих версиях WSH, т.к. здесь закомментированные или находящиеся внутри части сценариев будут при выполнении проигнорированы.
В листингах 4.8–4.10 приведены примеры сценариев различных типов, которые были подписаны с использованием сертификата "Попов надежный".
/*******************************************************************/
/* Имя: Signed.js */
/* Язык: JScript */
/* Описание: Сценарий с цифровой подписью */
/*******************************************************************/
WScript.Echo("Привет!");
// SIG // Begin signature block
// SIG // MIIEMAYJKoZIhvcNAQcCoIIEITCCBB0CAQExDjAMBggq
// SIG // hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG
// SIG // AQQBgjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIB
// SIG // AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEENmN
// SIG // vsHhmXojm79+NmBDE0qgggJIMIICRDCCAa2gAwIBAgIQ
// SIG // sGqcGTDiWZBINKde3DiDqDANBgkqhkiG9w0BAQQFADAn
// SIG // MSUwIwYDVQQDHhwEHwQ+BD8EPgQyACAEPQQwBDQENQQ2
// SIG // BD0ESwQ5MB4XDTAxMTIzMTIwMDAwMFoXDTA3MTIzMTIw
// SIG // MDAwMFowJzElMCMGA1UEAx4cBB8EPgQ/BD4EMgAgBD0E
// SIG // MAQ0BDUENgQ9BEsEOTCBnzANBgkqhkiG9w0BAQEFAAOB
// SIG // jQAwgYkCgYEAsNlPby/9ax7Ky75RO8xI+jrNU/u842T2
// SIG // 6Md730yxbVD9+54SVNtsCoYOR7OYgQMb9TtiirFpk0bJ
// SIG // PH7WuCjGlrMOhDt86Vq++er67d87p0rytm0R7m1/FOkw
// SIG // GxxjycUEKS2w65FXfdpngRKiu3NIDb6tsupKiHex3XEo
// SIG // 1n0O++kCAwEAAaNxMG8wEwYDVR0lBAwwCgYIKwYBBQUH
// SIG // AwMwWAYDVR0BBFEwT4AQ0LHfQjJYgcR4nBGbd2fwEKEp
// SIG // MCcxJTAjBgNVBAMeHAQfBD4EPwQ+BDIAIAQ9BDAENAQ1
// SIG // BDYEPQRLBDmCELBqnBkw4lmQSDSnXtw4g6gwDQYJKoZI
// SIG // hvcNAQEEBQADgYEAi0hytKDNpUwc8/MpidjPFaE3xu9g
// SIG // SSVXbietJ5kW7uJR1IXAA1CaEHDCe0JIxCdHhfKTcWrK
// SIG // Q4t0mG6fBFO180xKHcyOCpVuFywnkMI8AWKzqNYdaDUZ
// SIG // sNtaw4R4XjX9koovYmfFo4i75A9zd4qXB93AaWUJMEt7
// SIG // g+JQ2Blzn4gxggFSMIIBTgIBATA7MCcxJTAjBgNVBAMe
// SIG // HAQfBD4EPwQ+BDIAIAQ9BDAENAQ1BDYEPQRLBDkCELBq
// SIG // nBkw4lmQSDSnXtw4g6gwDAYIKoZIhvcNAgUFAKBsMBAG
// SIG // CisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgor
// SIG // BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE
// SIG // AYI3AgEVMB8GCSqGSIb3DQEJBDESBBB3QmVqnKzYLdaa
// SIG // EXTFBkJhMA0GCSqGSIb3DQEBAQUABIGAAMkO/8PM8+Ay
// SIG // zG8FeUtsDIUy56sSmYd9W34axmFbGktiseSshNxemfbv
// SIG // 7TucEbZ40zyMFdpaKDqwwCNf1M3k59eu4jk0wX1v1VBd
// SIG // +mwQ3JNg3WpvAL6OFrAko+ksiZ2ndjKJfJXwDUSITFmy
// SIG // aGrGNkC3RYRhp6dPdL8Tb0PVvcU=
// SIG // End signature block
'*******************************************************************
' Имя: Signed.vbs
' Язык: VBScript
' Описание: Сценарий с цифровой подписью
'*******************************************************************
WScript.Echo "Привет!"
'************* Конец *********************************************
'' SIG '' Begin signature block
'' SIG '' MIIEMAYJKoZIhvcNAQcCoIIEITCCBB0CAQExDjAMBggq
Интервал:
Закладка: