我有一个Powershell Azure自动化Runbook,可以远程登录到计算机以更新某些配置。从Azure运行时,Runbook似乎正常工作,但在从Hybrid Worker运行时失败并出现身份验证错误。
拥有混合工作者的全部原因是我可以将PSRemoting端口保护到已知主机,所以这有点令人失望。
主要的Runbook是通过webhook触发的,它使用点符号调用子Runbook,后者调用...
$creds = Get-AutomationPSCredential -Name 'DeploymentCredentials'
$sessionOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Invoke-Command -ConnectionUri "https://$($FQDN):5986" -Credential $creds -SessionOption $sessionOptions -ScriptBlock {
$h = hostname
Write-Output "Running on $h"
}
在这种情况下,$FQDN
当然是作为参数提供的。
报告的错误是:
连接到远程服务器 my-server.australiaeast.cloudapp.azure.com失败并显示以下错误消息:访问被拒绝。更多 有关信息,请参阅about_Remote_Troubleshooting帮助主题。
CategoryInfo:OpenError:(my-server.au ... udapp.azure.com:String)[],PSRemotingTransportException
FullyQualifiedErrorId:AccessDenied,PSSessionStateBroken
我可以手动执行来自ISE的相同代码,而不会遇到混合工作者的问题,所以我知道它不是防火墙问题,我将凭据写入输出窗口,所以我知道它们也是正确的。< / p>
我认为这与PowerShell函数在系统帐户下执行的事实有关?
THX
答案 0 :(得分:1)
为后代回答我自己的问题。
将混合工作组更改为使用机器管理员凭据运行允许设置工作;使用&#34;默认&#34;凭证(我认为系统帐户)没有。
我认为在Windows中系统帐户不允许连接到其他计算机/服务,所以这可能是原因,但我猜不到。