首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法抑制来自Powershell的所有命令行输出,包括错误

有没有办法抑制来自Powershell的所有命令行输出,包括错误
EN

Stack Overflow用户
提问于 2019-05-23 02:28:09
回答 2查看 155关注 0票数 1

从Python脚本(subprocess.Popen)调用Powershell时,我遍历了AD域控制器列表。对于每个无法识别AD对象的控制器,我希望抑制错误输出。

在Powershell命令末尾使用| Out-Null没有任何效果。

Python脚本:

代码语言:javascript
复制
for server in ADDomainList:
    cmd = 'powershell.exe get-ADComputer ' + hname + ' -Server ' + server + ' | Out-Null'
    subprocess.call(cmd)

在Powershell命令行中:

代码语言:javascript
复制
get-ADComputer computer-name -Server server.domain.com

不需要的输出:

代码语言:javascript
复制
Get-ADComputer : A positional parameter cannot be found that accepts argument '?'.
At line:1 char:1
+ get-ADComputer computer-name -Server server.domain.com ?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADComputer

返回代码为0或1的结果就是我需要为下一步执行捕获的所有内容。我不想要任何输出到控制台。

EN

回答 2

Stack Overflow用户

发布于 2019-05-23 03:40:41

将所有流重定向到null,就像*> $null一样。这将导致没有输出。

代码语言:javascript
复制
cmd = 'powershell.exe get-ADComputer ' + hname + ' -Server ' + server + ' *> $null'

如果要通过管道连接到Out-Null或任何其他cmdlet,还可以将所有输出重定向到成功流,然后通过管道连接到另一个cmdlet,如下所示:

代码语言:javascript
复制
cmd = 'powershell.exe get-ADComputer ' + hname + ' -Server ' + server + ' *>&1 | Out-Null'

Here is some more information about redirection in Powershell.

票数 0
EN

Stack Overflow用户

发布于 2019-05-24 23:25:07

这是另一个利用PowerShell“先试后接”特性的解决方案。通过在循环中使用它,可以消除错误响应。

我使用PowerShell try and catch找到所需的服务器

代码语言:javascript
复制
cmd = 'powershell.exe try{get-ADComputer ' + hname + ' -Server 
' + server + ' | Out-Null}catch{}'

一旦我有了正确的服务器,我就使用'| Out-Null‘去掉默认的PowerShell输出。

代码语言:javascript
复制
subprocess.Popen('powershell.exe get-ADComputer ' + hname + ' 
-Server ' + sname + ' -Properties '
'OperatingSystem,PasswordLastSet | Export-CSV adcomputer.csv - 
Delimiter "*" -NoTypeInformation | Out-Null')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56262910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档