我无法在远程服务器 (Windows Server 2022 Standard) 上打开远程 PS 会话。远程服务器不是域的一部分。
运行命令时
Enter-PSSession -ComputerName server01 -Credential server01\administrator
我收到“访问被拒绝”的消息。
我做了什么:
- 服务器
Enable-PSRemoting
Enable-WSManCredSSP -Role server
- 客户
Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "`n192.168.1.250`tserver01"
winrm quickconfig
Set-Item WSMan:\localhost\Client\TrustedHosts -Value server01
在客户端执行时
Enter-PSSession -ComputerName server01 -Credential server01\administrator
并输入我收到的密码:
Enter-PSSession :在与远程服务器“server01”绑定的情况下,会出现以下错误: 单击此处可查看更多“about_Remote_Troubleshooting”帮助主题中的信息。输入:1 字母:1 + Enter-PSSession -ComputerName server01 -Credential server01\administrator + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (server01:String) [输入- PSSession],PSRemotingTransportException + FullyQualifiedErrorId:CreateRemoteRunspaceFailed
在客户端执行时
winrm identify -r:http://server01:5985 -u:server01\Administrator -p:secret
我收到
WSManFault 消息 = 已注销
错误编号: -2147024891 0x80070005 已注销
我错过了什么?
更新:
在 winrm 配置中,我设置了和Auth/Basic
(客户端和服务)- 结果相同。然后我AllowUnencrypted
true
配置 HTTPS 访问使用自签名证书-结果相同。
由于服务器端没有条目,Microsoft-Windows-Windows Remote Management/Operational
因此看起来请求在客户端被阻止。Test-NetConnection -ComputerName server01 -Port 5985
成功(就像端口 5986 一样)。
答案1
因为您使用的是非域用户,所以我的第一个猜测是这UAC
可能会阻止您。
我想说这个错误是由客户端引发的,因此请先尝试UAC
在客户端上禁用。如果这不起作用,请UAC
在服务器上禁用。
如果不UAC
相关,我可以想象这个本地管理员帐户需要成为Remote Management Users
服务器上组的成员。
至少这是我下一步要尝试的。
答案2
winrm get winrm/config
您需要在服务器上包含输出。使用 HTTP 上的基本身份验证通过网络以未加密的方式将凭证发送到主机,因此它通常默认为服务禁用。
还要检查 Windows 远程管理事件日志(Microsoft-Windows-Windows 远程管理/操作)。
winrm get winrm/config
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 60000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = false
Auth
Basic = false **
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 2147483647
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 2147483647
MaxMemoryPerShellMB = 2147483647
MaxShellsPerUser = 2147483647
答案3
我找到了解决方案。我只需添加-Authentication Basic
到Enter-PSSession
命令中即可。
完整命令:
Enter-PSSession -ComputerName server01 -Authentication Basic -Credential administrator
使用时winrm identify
我必须添加-auth:basic
:
winrm identify -r:http://server01:5985 -a:basic -u:Administrator -p:secret
就这么简单...