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

基于C#使用Kerberos/证书实现设备间远程PowerShell通信的配置及认证疑问

基于C#使用Kerberos/证书实现设备间远程PowerShell通信的配置及认证疑问

我现在的场景是这样的:有一台HostPC需要连接两台远程PC,通过PowerShell执行命令,打算用WSManConnectionInfo走HTTPS协议。但我现在在Kerberos和证书认证的概念上有点卡壳,还有证书配置的环节也有困惑,想请教几个问题:

关于WSMan默认认证方式的疑问

我从资料里了解到,WSManConnectionInfo默认会同时用Kerberos和Negotiate作为认证方式,来验证连接是在域内环境还是本地环境的,这个理解对吗?

证书认证的配置困惑

我用PowerShell的New-SelfSignedCertificate命令生成自签名证书,命令模板大概是这样的:

New-SelfSignedCertificate `
  -DnsName <PCName> `
  -CertStoreLocation <Path> `
  -KeyLength 2048 `
  -NotAfter (Get-Date).AddYears(xx) `
  -TextExtension @("2.5.29.37={text}<OID Purpose>")

之后我参考了一个教程来配置WinRM over HTTPS,步骤是这样的:

  1. 在远程PC上用上面的命令生成证书,然后创建WinRM的HTTPS监听器,执行了这条命令:
winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="<RemotePCName>";CertificateThumbprint="<RemotePC Certificate Thumbprint>"}'
  1. 然后在HostPC上,我用C#写了这段代码来创建连接:
var connectionInfo = new WSManConnectionInfo(
    new Uri($"https://{MachineName}:5986/wsman"),
    "http://schemas.microsoft.com/powershell/Microsoft.PowerShell",
    new PSCredential(<username>, <password>)
);

测试下来连接完全没问题,但我总觉得哪里的步骤逻辑不对,是不是我的配置思路有疏漏?另外我对证书的创建、导入导出的正确流程也有点懵,能不能给我一些这方面的建议?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 10:32:59