我正在尝试从PowerShell脚本配置WinRM。我正在使用以下代码
$WinrmCreate= "winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=""$sHostName"";CertificateThumbprint=""$CertificateThumbPrint""}"
Invoke-Expression $WinrmCreate
主机名和证书缩图是上面的变量,并且已被验证出来。详细输出显示
VERBOSE: winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="RSNODE1";CertificateThumbprint="6C79C8E6E88779037593E6234DCE6E1A55662F87"}
但是,“ Invoke-Expression”的执行产生以下错误
Invalid use of command line. Type "winrm -?
有趣的是,如果将行的输出复制/粘贴到命令提示符下,它将创建侦听器而不会出现错误。
研究命令的执行情况,我发现什么都无法解释这种行为。我唯一的理论是“ winrm”命令本身就是一个脚本,并且行为不正常。
哈希表例如@{Hostname=...}
由PowerShell解释。如果您使用的是V3或更高版本,请尝试使用--%
简单的参数解析运算符:
$env:Hostname = $sHostName
$env:CertThumbPrint = $CertificateThumbPrint
$WinrmCreate= "winrm create --% winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=`"%HostName%`";CertificateThumbprint=`"%CertThumbPrint%`"}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句