首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell和PSExec

Powershell和PSExec
EN

Stack Overflow用户
提问于 2015-06-19 00:33:19
回答 1查看 833关注 0票数 3

我发现我在工作中一直在使用psexec来进行大量的远程更改。当我在powershell中运行PSEXEC时,我在连接到的每台计算机上都收到以下消息:

代码:

代码语言:javascript
复制
foreach($computer in $computers) {
        psexec -i \\$computer net localgroup "Administrators" "ITLOCALADMIN" /add
}

结果如下:

代码语言:javascript
复制
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
System error 1378 has occurred.
The specified account name is already a member of the group.
Connecting to {COMPNAME}...Starting PSEXESVC service on {COMPNAME}...Connecting with PsExec service on {COMPNAME}...Starting net on {COMPNAME}...
net exited on {COMPNAME}with error code 2.
psexec : 
At G:\Users\ariggs\Documents\WindowsPowerShell\Scripts\AddItlocaladmin.ps1:3 char:9
+         psexec \\$computer net localgroup "Administrators" "ITLOCALAD ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

当我看到的只是命令的输出或错误时,是否可以关闭这些消息?这使得很难看出是否存在问题,或者它是否在所有这些文本中都起作用。

EN

回答 1

Stack Overflow用户

发布于 2015-06-20 03:09:19

好的,我已经想出了一个答案,所以你要做的是在最后添加一个空输出,这样你的代码行就会如下所示,

代码语言:javascript
复制
psexec -i \\$Computer net localgroup "Administrators" "ITLOCALADMIN" /add > $null 2>&1

现在这将重定向所有的输出,现在你还想添加某种类型的日志记录,所以我建议把它放到Try,Catch中,或者只是在foreach的末尾添加一行,它会告诉你计算机已经完成了,

代码语言:javascript
复制
Write-host "Computer $Computer is now done" 

现在,你需要以这种方式对你的脚本更有信心,但这是一个选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30920988

复制
相关文章

相似问题

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