【发布时间】:2016-03-13 17:55:09
【问题描述】:
我正在编写一个 PowerShell 脚本,其中一个部分应将新用户添加到 Active Directory。
我正在使用New-ADUser cmdlet,我想将任何错误(如果会产生任何错误)重定向到文件。
所以我写了
New-ADUser -smth -smth 2>> ./log.txt
但是当我模拟错误时,它只会创建一个空白的log.txt 文件。
我做错了什么?
【问题讨论】:
-
你用的是什么版本的powershell?
-
我使用的是 4.0.操作系统是 Windows Server 2012 R2
-
啊,这是因为解析器抛出了错误,而不是
New-ADUser。将您的语句更改为有效的语法,它就会起作用(例如New-ADUser -Identity "nonexistingusername") -
对不起,也许我解释错了。例如,我做
New-ADUser -Identity "j"。我收到错误`New-ADUser:找不到与参数名称'Identity'匹配的参数.....`,我想将此消息写入log.txt。我做`New-ADUser -Identity "j" 2>> path\to\log.txt`。它创建文件,但它是空的 -
对不起,
Identity参数是一个不好的例子(New-ADUser没有它)。我的观点是,输出重定向器仅从 cmdlet 本身获取错误流,而不是环境引发的任何错误(例如语法错误)。如果您还想捕获解析错误,可以将调用包含在脚本块中:&{New-ADUser -smt} 2>> error.log
标签: powershell active-directory cmdlets