Remote-SSH连接Windows 2019服务器时PowerShell模块加载失败求助
解决Win10通过密钥认证SSH连接Win2019时PowerShell模块加载失败问题
问题现象
Win10客户端通过带密钥文件的SSH配置文件连接Windows 2019服务器后,执行依赖模块的PowerShell命令(如Get-ADComputer -Filter { (Enabled -eq $True) } -SearchBase $GsearchBaseOU)报错,手动执行Import-Module ActiveDirectory无报错但模块仍无法使用;但通过密码登录SSH或Putty连接时,模块加载正常。
可能原因
密钥认证的SSH会话未正确加载服务器端PowerShell系统配置文件,或OpenSSH服务运行账户权限不足,导致模块路径未初始化。
解决方案
检查并手动加载配置文件
登录后执行以下命令:# 查看当前会话的配置文件路径 $PROFILE # 查看模块环境变量 $env:PSModulePath对比密码登录时的
PSModulePath值,若缺失系统模块路径,手动加载系统配置文件:. $PROFILE.AllUsersAllHosts加载完成后再尝试导入模块。
修改OpenSSH服务运行账户
- 打开服务管理器,找到
OpenSSH SSH Server服务; - 右键选择「属性」→「登录」选项卡;
- 选择「本地系统账户」,勾选「允许服务与桌面交互」;
- 重启服务后,用密钥连接测试模块加载。
- 打开服务管理器,找到
在SSH配置中强制加载模块
编辑客户端的SSH配置文件C:\Users\[redacted]\.ssh\config,给目标服务器添加RemoteCommand配置:Host serverName HostName 服务器IP或域名 User 用户名 IdentityFile C:\路径\到\你的\私钥文件 RemoteCommand powershell -NoExit -Command "Import-Module ActiveDirectory; . $PROFILE"保存后重新连接,PowerShell会自动加载指定模块和配置文件。
给模块文件夹添加权限
- 找到ActiveDirectory模块路径(默认
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ActiveDirectory); - 右键文件夹→「属性」→「安全」→「编辑」→「添加」;
- 输入
NETWORK SERVICE,勾选「读取和执行」权限,应用设置后测试。
- 找到ActiveDirectory模块路径(默认
内容的提问来源于stack exchange,提问作者sigfried
相关产品推荐
相关产品推荐

