我有一个 PowerShell 脚本,它通过以下方式在远程服务器上创建 Windows PowerShell 会话 (PSSession)Enter-PSSession
,两台服务器均未连接到域。此脚本是从在本地系统帐户下作为服务运行的程序调用的。出于某种原因,以本地系统帐户身份运行 PowerShell 脚本会导致返回Enter-PSSession
错误。
例如,从本地管理员帐户运行时,以下命令会要求输入我的密码并成功连接:
Enter-PSSession -ComputerName #### -Credential ####
但是,如果我通过 psexec 使用本地系统或网络服务帐户运行 PowerShell:
PsExec -i -s powershell.exe
PsExec -i -u "NT AUTHORITY\NetworkService" powershell.exe
然后再次尝试该命令,它会要求我输入密码并仅返回一条错误消息:
Enter-PSSession : Connecting to remote server #### failed
with the following error message : WinRM cannot process the request. The
following error with errorcode 0x8009030d occurred while using Negotiate
authentication: A specified logon session does not exist. It may already have
been terminated.
知道如何让Enter-PSSession
命令在本地系统帐户下运行吗?
答案1
不能Enter-PSSession
在脚本中使用,它仅用于交互式登录。请Invoke-Command
改用。