Подключение к удаленной сессии EMS
Для администрирования не всегда удобно использовать подключение по RDP, затем локальный запуск Exchange Management Shell. Рассмотрим как можно подключиться к удаленной сессии по шагам и напишем скрипт, который запросит данные для подключение и имя сервера, чтобы вводить в консоли было необходимо только эти данные, а не весь перечень команд.
Удаленное подключение к сессии PowerShell Exchange по шагам
Вводим креды:
$Credentials = Get-Credential -Message "Log in to Exchange On-premise..." -UserName domain\username
Создаем сессию:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange.contoso.com/PowerShell/ -Authentication Kerberos -Credential $Credentials
Импортируем сессию:
Import-PSSession $Session -DisableNameChecking
Подключаемся к созданной сессии:
etsn $Session
Уничтожить созданную сессию:
Remove-PSSession -Id 1
Скрипт создания сессии
Чтобы не приходилось вводить учётные данные каждый раз отдельно - данный скрипт использует предварительно сохраненные и зашифрованные данные учётной записи, которую использует для подключения.
Имя сервера Exchange для подключения - напротив, скрипт запросит каждый раз при выполнении.
Экспорт учётных данных в XML
Сохранить данные в зашифрованный XML можно следующим образом. Запросим учётные данные в переменную:
$Creds = Get-Credential
Выгрузим их в XML:
$Creds | Export-CliXml -Path "C:\scripts\user.xml"
Ремарка о безопасности такого хранения данных.
The Export-Clixml cmdlet encrypts credential objects by using the Windows Data Protection API. The encryption ensures that only your user account can decrypt the contents of the credential object. The exported CLIXML file can’t be used on a different computer or by a different user.
Код скрипта для подключения к Exchange
#Используем креды, сохраненные предварительно в xml-файле $exch_credentials = Import-CliXml -Path "C:\scripts\user.xml" # Запрашиваем - к какому серверу будем подключаться и строим из имени сервера полную строку подключения $exch_server = Read-Host "Please enter exchange servername to connect" $exch_conn_str = 'http://' + $exch_server + '.arasaka.local/PowerShell/' # Создаём сессию из полученных данных $exch_session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $exch_conn_str -Authentication Kerberos -Credential $exch_credentials # Импортируем сессию Import-PSSession $exch_session -DisableNameChecking # Подключаесмся к ней Enter-PSSession $exch_session