You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无密码虚拟机能否通过PSSession建立连接?

无密码虚拟机通过PowerShell Direct建立PSSession的解决办法

首先明确:默认情况下,PowerShell Direct(通过VMName参数创建PSSession)不支持空密码的本地账户登录——这不是PowerShell Direct本身的限制,而是Windows默认安全策略禁止空密码账户通过网络(包括虚拟机内部的PowerShell Direct通道)做身份验证。

要实现无密码连接,有两种可行方案:

方案1:修改虚拟机本地安全策略(快速但降低安全性)

在虚拟机内部操作:

  • 打开本地安全策略:运行secpol.msc
  • 依次展开 本地策略 > 安全选项
  • 找到 账户:使用空密码的本地账户只允许进行控制台登录 这条策略
  • 把它改成 已禁用
  • 要么重启虚拟机,要么执行gpupdate /force让策略立即生效

改完之后,用空密码凭证就能连接了:

# 创建空密码的SecureString
$emptyPwd = [System.Security.SecureString]::new()
$cred = [System.Management.Automation.PSCredential]::new("AdminUser", $emptyPwd)
# 建立PSSession
$s = New-PSSession -VMName "vm-240404" -Credential $cred

方案2:用证书认证(更安全)

如果不想放宽安全策略,推荐用证书做身份验证:

  1. 在虚拟机里给目标用户生成自签名证书:
$cert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -Subject "CN=AdminUser" -KeySpec KeyExchange
# 导出证书到桌面(方便主机导入)
Export-Certificate -Cert $cert -FilePath "$env:USERPROFILE\Desktop\vm-admin-cert.cer"
  1. 在虚拟机里注册绑定证书的会话配置:
# 示例SDDL允许管理员组访问,可按需调整权限
Register-PSSessionConfiguration -Name "CertAuthSession" -SecurityDescriptorSddl "O:NSG:BAD:P(A;;GA;;;BA)" -CertificateThumbprint $cert.Thumbprint
  1. 在主机上导入证书并创建会话:
# 导入证书到受信任的人存储
Import-Certificate -FilePath "C:\Users\YourUser\Desktop\vm-admin-cert.cer" -CertStoreLocation Cert:\CurrentUser\TrustedPeople
# 创建凭证(密码留空)
$cred = [System.Management.Automation.PSCredential]::new("AdminUser", [System.Security.SecureString]::new())
# 通过证书认证的会话配置连接
$s = New-PSSession -VMName "vm-240404" -Credential $cred -ConfigurationName "CertAuthSession" -UseSSL

补充说明

  • 方案1仅适合测试环境或完全隔离的内部环境,空密码本身存在安全风险,放宽策略会进一步扩大风险边界。
  • 官方文档未明确提及空密码支持,是因为这属于Windows本地安全策略范畴,不属于PowerShell Direct的功能限制。

内容的提问来源于stack exchange,提问作者citelao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:32:16