我在WinRM上运行一个简单的Powershell脚本,以便从Azure AD获取用户许可证列表。这是脚本本身:
$username = "admin@domain.onmicrosoft.com"
$password = "secret"
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $(convertto-securestring $password -AsPlainText -Force)
Import-Module MSOnline
Connect-MsolService -Credential $cred -Verbose
$user = Get-MsolUser -UserPrincipalName $username
$status = $user.Licenses | ForEach-Object { $_.ServiceStatus }
$status | ForEach-Object { $_.ServicePlan.ServiceName + "|" + $_.ProvisioningStatus }
我已为PowerShell安装了Microsoft Online Services登录助手和Azure Active Directory模块,如本页所述https://technet.microsoft.com/en-us/library/jj151815.aspx#bkmk_installmodule
如果我在运行Windows的计算机上本地运行脚本,该脚本可以正常工作。 但是一旦我尝试通过WinRM从Linux机器运行它,就会引发以下异常:
Connect-MsolService : Exception of type
'Microsoft.Online.Administration.Automation.MicrosoftOnlineException' was
thrown.
At line:5 char:1
+ Connect-MsolService -Credential $cred -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [Connect-MsolService], Mic
rosoftOnlineException
+ FullyQualifiedErrorId : 0x80070005,Microsoft.Online.Administration.Autom
ation.ConnectMsolService
但是,如果我在Windows机器上至少本地运行一次脚本,它就会开始在WinRM上运行。但是在我重新启动Windows后它再次停止工作。
我有一种强烈的感觉,当我在本地运行脚本时,会启动一些后台进程,之后一切都开始在WinRM上运行。但我无法确定这个过程是什么。
我已安装Sing-In Assistant版本7.250.4556.0(2014年2月17日),Azure AD模块版本1。0。0(2015年1月19日)。
每次重新启动Windows时都在本地运行脚本非常不方便,所以感谢任何帮助。