有谁知道,如何在运行 PSExec 时禁用“版权标头”?Everutime 我运行“./psexec ...”命令我看到这条消息:
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
这真的很烦人,它会膨胀我的脚本的输出。
谢谢
马修
有谁知道,如何在运行 PSExec 时禁用“版权标头”?Everutime 我运行“./psexec ...”命令我看到这条消息:
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
这真的很烦人,它会膨胀我的脚本的输出。
谢谢
马修
PsExec v2.2 带有-nobanner
选项。
似乎没有办法阻止它发生,但作为一种解决方法,您可以重定向 STDERR 这将抑制输出,
psexec \\remotemachine command 2>nul
我知道这是一个相当古老的问题,但由于它被标记PowerShell
并且没有PowerShell
具体的回应,这里是:
我想%SystemRoot%
在远程机器上获取环境变量的值,而不启用WinRM
.
我的调用PowerShell
是:
$ret = & PsExec.exe \\RemoteMachine powershell.exe -Command '$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
,所以请小心使用。
或者你可以做得更好
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%
你试过这个:
psexec.exe -nobanner -accepteula