23 февраля 2009

Используем PSCredentials без подтверждения пароля

Частичный перевод отсюда.
Мне понадобилось настроить тестирование OWA посредством powershell скриптов с внешнего сервера. Есть замечательный командлет Test-OwaConnectivity, однако для проверки внешнего OWA-интерфейса (не входящего в домен из которого проходит тестирование) необходимо изменить команду следующим образом.

Test-OwaConnectivity -URL https://[exchange cas server]/owa -MailboxCredential (Get-Credential test)

Однако при использовании командлета Get-Credential необходимо вводить пароль в поп-апе, а если хочется процесс автоматизировать это не приемлимо.
Есть способ, мы можем сохранить пароль в файле, чтобы затем использовать его в качестве передаваемого объекта.

read-host -assecurestring | convertfrom-securestring | out-file C:\что-нибудь там.txt

В последствии пароль может считан из файла в качестве параметров к Get-Credential, например так:

$pass = cat C:\что-нибудь там.txt | convertto-securestring
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "test",$pass

И в результате мы можем получить выполнить нашу команду

Test-OwaConnectivity -URL https://[exchange cas server]/owa -MailboxCredential $mycred

Или выполнить ее в скрипте, запускаемом по заданию например раз в 5 минут.

Что касается безопасности подобного хранения данных. Злоумышленник, проникнув на сервер конечно может использовать данный файл для получения каких-то данных, однако в отличие от оригинала статьи я не предлагаю хранить в нем данные от аккаунта ftp на продакшн сервере, а аккаунт для тестирования доступности OWA естественно создан с минимальными привилегиями, так что уровень риска приемлем.

Сама же строка с данными пароля (например qwerty) выглядит следующим образом:

01088800d08c9ddf0115d1118c7a00c04fc297eb01000000d5a25b6560bb714aab7edb5a87ad4c1
66000000002000000000003760000a8000000100000009ae0746b5f94995e6198881ba58ada9100
00000004800000a0000000100000009c2aba5bf0fcf53ecd573b45c18b127b180000000641b6884
9b09b15b650d5a0a3927569f5d47ba7afc7f8ca14000000b2ce9a87c9e5a4473c9cf0804dcd68de
638d508a

Have fun!

Комментариев нет:

Отправить комментарий