Подключиться к обмену асинхронно с помощью powershell - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть следующий код для подключения к моей учетной записи Office 365 с использованием PowerShell:

$Cred=GET-CREDENTIAL 
Write-Host "Connecting..."
IMPORT-MODULE MSONLINE
CONNECT-MSOLService -credential $Cred
$s = NEW-PSSESSION -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
$importresults=import-pssession $s
Write-Host "Connected to exchange server"

, но поскольку он эффективно соединяется дважды, один раз с new-pssession и один раз с connect -MSOLService, это должно бытьможно сделать оба одновременно, например:

$Cred=GET-CREDENTIAL 
Write-Host "Connecting..."
IMPORT-MODULE MSONLINE
$j = start-job -scriptBlock { CONNECT-MSOLService -credential $Cred }
$s = NEW-PSSESSION -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection
$importresults=import-pssession $s
wait-job $j
Write-Host "Connected to exchange server"

Но на самом деле это не работает (я предполагаю, что это проблема с областью действия переменных? Это возможно сделать / как я должен это сделать

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Я пришел к выводу, что это, вероятно, невозможно.Я считаю, что проблема в том, что команды входа изменяют контекст, в котором они выполняются, но контекст отличается, если они выполняются внутри асинхронного задания.

1 голос
/ 26 сентября 2011

попробуйте это:

Start-Job -scriptblock {Param ($cred) CONNECT-MSOLService -credential $Cred} -ArgumentList $cred
...