powershell PSexec版权输出

cuxqih21  于 12个月前  发布在  Shell
关注(0)|答案(6)|浏览(138)

有谁知道,如何禁用“copyright header”从运行PSExec时出现?每次我运行“./psexec...”命令我看到这个消息:

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

字符串
这真的很烦人,它膨胀了我的脚本输出。
谢谢
马修

mrfwxfqh

mrfwxfqh1#

PsExec v2.2附带-nobanner选项。

eqfvzcg8

eqfvzcg82#

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

psexec \\remotemachine command 2>nul

字符串

yhuiod9q

yhuiod9q3#

或者你能做的更好

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%

字符串

vybvopom

vybvopom4#

我知道这是一个相当老的问题,但由于它被标记为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以外的程序测试过这个解决方案,所以要小心使用。

ogq8wdun

ogq8wdun5#

你试过这个吗:

psexec.exe -nobanner -accepteula

字符串

ix0qys7i

ix0qys7i6#

它为我工作:
第一个月

相关问题