Powershell PSexec版权输出

Powershell PSexec版权输出,powershell,psexec,sysinternals,Powershell,Psexec,Sysinternals,有人知道,如何在运行PSExec时禁用“版权头”的显示吗?每次运行“/psexece…”命令时,我都会看到以下消息: PsExec v2.11 - Execute processes remotely Copyright (C) 2001-2014 Mark Russinovich Sysinternals - www.sysinternals.com 这真的很烦人,而且会使我的脚本输出膨胀 谢谢 Matthew似乎没有办法阻止它发生,但作为一种解决办法,您可以重定向STDERR,这将抑制输出

有人知道,如何在运行PSExec时禁用“版权头”的显示吗?每次运行“/psexece…”命令时,我都会看到以下消息:

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
这真的很烦人,而且会使我的脚本输出膨胀

谢谢

Matthew

似乎没有办法阻止它发生,但作为一种解决办法,您可以重定向STDERR,这将抑制输出

psexec \\remotemachine command 2>nul
或者你能做得更好

set F1=find /v "PsExec v2.11 - Execute processes remotely"
set F2=find /v "Copyright (C) 2001-2014 Mark Russinovich"
set F3=find /v "Sysinternals - www.sysinternals.com"
set FILTER=%F1%^|%F2%^|%F3%

psexec \\remotemachine command 2>&1 | %FILTER%

我知道这是一个相当老的问题,但由于它被标记为
PowerShell
,并且没有
PowerShell
特定的响应,因此如下所示:

我想在远程计算机上获取环境变量
%SystemRoot%
的值,而不启用
WinRM

我在
PowerShell
中的调用是:
$ret=&PsExec.exe\\RemoteMachine powershell.exe-命令“$env:SYSTEMROOT”

这返回了一个类型为
Object[]
的数组,接收到的输出每行一个元素。 样本输出,带有相应的数组索引:

PS> $ret
(0)
(1) PsExec v2.2 - Execute processes remotely
(2) Copyright (C) 2001-2016 Mark Russinovich
(3) Sysinternals - www.sysinternals.com
(4)
(5) C:\WINDOWS
正如您所看到的,我想要的输出是返回数组中的第6个值

这也适用于输出多行的
PowerShell
脚本或命令,因为每个打印行都作为新元素附加到数组中

考虑到这一点,我们可以用以下内容整理返回的输出:
$ret=$ret[5..$ret.Count-1)]

这基本上只是删除了前五个元素


但是,我没有用PowerShell以外的程序测试过此解决方案,因此请小心使用。

PsExec v2.2附带了
-nobanner
选项。

您是否尝试过:

psexec.exe -nobanner -accepteula

先生,你帮我省了不少时间,省去了我在这件事上的麻烦。助教!