生成自签名证书
New-SelfSignedCertificate -Subject $(hostname)
默认会生成到这里
winrm 查看帮助
winrm 创建listener
winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="HOST";CertificateThumbprint="XXXXXXXXXX"}
对应的将HOST和XXXXXXXXXX修改为hostname和证书指纹
wirm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="DESKTOP-UD1AULQ";CertificateThumbprint="9E0E29F0FEC5424121E2309682F779BB99130951"
winrm 查看
winrm enumerate winrm/config/Listener
winrm 连接测试
Enter-PSSession DESKTOP-UD1AULQ -UseSSL
出现这个错误不奇怪。
因为证书是自签名证书,在同一台server测试连接,即作为客户端,又作为服务端。那么客户端应该信任服务端的自签名证书。
把证书从这个目录
copy到信任列表
winrm 再次连接测试
Enter-PSSession DESKTOP-UD1AULQ -UseSSL
成功!
其他命令
我们知道Invoke-Command
基于winrm,如果我们删除HTTP的监听,只留下HTTPS的监听
那么我们在调用该命令的时候也需要加上UseSSL
参数
说明
以上只是本机测试,实际应用中,组织内部会通过根证书为所有目标server签发证书,然后批量安装证书和配置WINRM。
作为连接的客户端server,只需要添加根证书到本机证书信任列表即可。