powershell 执行命令和 return 值
powershell execute command and return value
对于专家来说,这可能是一个简单的答案,但不确定最好使用的命令。我想从 powershell 中执行以下命令:
stccmd -rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb nsccahs_dev_cb -cmd "status bobRRC_ADT_OUT_FMT"
和return结果。
到目前为止我的代码是:
$sCmd = @'
"stccmd -rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb
nsccahs_dev_cb -cmd '\"status bobRRC_ADT_OUT_FMT\"'"
'@
$Result = Invoke-Command $sCmd | Out-String
我得到的错误是:
调用命令:无法使用指定的命名参数解析参数集
米。
在 E:\Andrew\MonitoreGate.ps1:20 char:25
+ $Result = 调用命令 <<<< $sCmd |外弦
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], 参数
绑定异常
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Comma
nds.InvokeCommandCommand
如果我使用 Invoke-Expression,我会得到以下信息:
Invoke-Expression:表达式或语句中的意外标记 'status'。
在 E:\Andrew\MonitoreGate.ps1:20 char:28
+ $Result = 调用表达式 <<<< $sCmd |外弦
+ CategoryInfo:ParserError:(状态:字符串)[调用表达式]
, 解析异常
+ FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.In
vokeExpressionCommand
我应该使用 Invoke-Command 或 Invoke-Expression 还是其他方式? $sCmd 结构在引号方面是否正确?
该程序是 运行 在同一台机器上(不是远程)。
非常感谢任何帮助,
安德鲁
两者都不是,而是使用:
Start-Process -FilePath 'path_to_stccmd.exe' -ArgumentList "-rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb nsccahs_dev_cb -cmd 'status bobRRC_ADT_OUT_FMT'" -nonewwindow
如果您没有看到使用上面的输出...试试这个:
$exepath = 'path_to_stccmd.exe'
&$exepath arguments
对于专家来说,这可能是一个简单的答案,但不确定最好使用的命令。我想从 powershell 中执行以下命令:
stccmd -rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb nsccahs_dev_cb -cmd "status bobRRC_ADT_OUT_FMT"
和return结果。 到目前为止我的代码是:
$sCmd = @'
"stccmd -rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb
nsccahs_dev_cb -cmd '\"status bobRRC_ADT_OUT_FMT\"'"
'@
$Result = Invoke-Command $sCmd | Out-String
我得到的错误是: 调用命令:无法使用指定的命名参数解析参数集 米。 在 E:\Andrew\MonitoreGate.ps1:20 char:25 + $Result = 调用命令 <<<< $sCmd |外弦 + CategoryInfo : InvalidArgument: (:) [Invoke-Command], 参数 绑定异常 + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Comma nds.InvokeCommandCommand
如果我使用 Invoke-Expression,我会得到以下信息: Invoke-Expression:表达式或语句中的意外标记 'status'。 在 E:\Andrew\MonitoreGate.ps1:20 char:28 + $Result = 调用表达式 <<<< $sCmd |外弦 + CategoryInfo:ParserError:(状态:字符串)[调用表达式] , 解析异常 + FullyQualifiedErrorId : UnexpectedToken,Microsoft.PowerShell.Commands.In vokeExpressionCommand
我应该使用 Invoke-Command 或 Invoke-Expression 还是其他方式? $sCmd 结构在引号方面是否正确? 该程序是 运行 在同一台机器上(不是远程)。
非常感谢任何帮助, 安德鲁
两者都不是,而是使用:
Start-Process -FilePath 'path_to_stccmd.exe' -ArgumentList "-rh sldcege-mie003 -rs nsccahs_dev -un Administrator -up STC -cb nsccahs_dev_cb -cmd 'status bobRRC_ADT_OUT_FMT'" -nonewwindow
如果您没有看到使用上面的输出...试试这个:
$exepath = 'path_to_stccmd.exe'
&$exepath arguments