从PowerShell执行命令

Gomker

我正在尝试从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

研究命令的执行情况,我发现什么都无法解释这种行为。我唯一的理论是“ 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章