主机是作为 Azure VM 运行的单个 Windows Server 2019,没有域,没有 AD。
为了找出问题所在,我尝试创建New-PSSession
主机使用本地 PowerShell 在本地执行。我的命令适用于主机的本地 IP 10.0.0.4 和 127.0.0.1,但不适用于主机的公共 IP。主机的公共 IP 是通过 Azure 获得的,因此主机无法直接将其作为接口 IP 识别
我用来在主机上启用 PowerShell 远程处理的脚本已有 2 年历史,这些启用方法成功运行,但现在在这个新主机上却不行。我做了我记得的所有诊断,还用谷歌搜索了当前的常识。
我在剪贴板上使用密码,无论是有效还是无效,以排除输入错误
我的命令正在工作。注意,我正在建立远程 PS 会话对主机本身,仅用于诊断原因:(也适用于 127.0.0.1)
New-PSSession -ComputerName 10.0.0.4 -UseSSL -Credential myadminname -SessionOption $sessionOptions
我的命令不起作用完全相同,只是使用公共 IP,注意我正在尝试建立远程 PS 会话对主机本身,仅用于诊断原因:
New-PSSession -ComputerName 137.xxx.xxx.xxx -UseSSL -Credential myadminname -SessionOption $sessionOptions
New-PSSession:[137.xxx.xxx.xxx] 连接到远程服务器 137.xxx.xxx.xxx 失败,并显示以下错误消息:访问被拒绝。
我所做的诊断是:
检查端口是否打开,portqry -n 137.xxx.xxx.xxx -e 5986
显示:
TCP 端口 5986(未知服务):正在监听
也许我错了,但基于此我排除了连接问题,两个主机的防火墙、两个 Azure 网络安全组规则都配置正确。我停止了 WinRM 服务,并检查当时没有任何监听,然后启动并成为监听器,因此肯定是正在运行的 WinRM 服务在监听。
Test-NetConnection -ComputerName 137.xxx.xxx.xxx -Port 5986
我也从远程客户端计算机运行过并且得到了积极的结果:
ComputerName : 137.117.142.253
RemoteAddress : 137.117.142.253
RemotePort : 5986
InterfaceAlias : Ethernet 2
SourceAddress : 192.168.1.1
TcpTestSucceeded : True
什
我已经跑了winrm e winrm/config/listener
:
侦听器地址 = * 传输 = HTTPS 端口 = 5986 主机名启用 = true URLPrefix = wsman CertificationThumbprint = 4F89xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ListeningOn = 10.0.0.4, 127.0.0.1, ::1, fe80::xxxx:xxxx:xxx:xxxx%3
我也跑过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
答案1
好的,尝试在这里总结一下。
如果您尝试从远程计算机连接时根本没有连接,那么这肯定是网络和/或防火墙问题。请注意,能够连接到计算机从其本身并不一定意味着你也能做到同样的事情从外部,因为连接可能会被阻止任何地方在从客户端到服务器的路径中。
(另外,我建议使用测试网络连接为了这。)如果在尝试连接计算机时收到拒绝访问错误从其本身,你很可能会遇到这种情况:https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/accessing-server-locally-with-fqdn-cname-alias-denied;是的,根据您用于连接的主机名或 IP 地址,行为可能会有很大差异。
答案2
我认为这可能与网络配置文件有关。尝试 Get-NetConnectionProfile,查看 Windows 计算机上的连接在“NetworkCategory”下是公共的还是私有的。这是相对于计算机本身的网络连接而言的公共/私有,而不是相对于 Azure 而言的公共/私有。
要更改连接:Set-NetConnectionProfile -Name“yournetworkname”-NetworkCategory Private