我可以在变量中传递Powershell Get-ADUser -Properties吗?

时间:2014-01-29 22:49:07

标签: powershell active-directory

我想做这样的事情,主要是为了代码可读性:

$ADProperties = "extensionAttribute1,Department,Company,telephoneNumber"
$ADFilter = "{(objectClass -eq "user") -and (enabled -eq $True)}"

Get-ADUser -Filter $ADFilter -Properties $ADProperties

我收到如下错误:Get-Aduser : One or more properties are invalid.

似乎我已经看到了以某种方式通过过滤器属性的方法,但现在无法找到它。

编辑 - 适用于-Properties

$ADProperties = "EmployeeID","EmployeeNumber","extensionAttribute1","Department"

(谢谢Eris)但这会引发错误:

$ADProperties = extensionAttribute1,Department,Company,telephoneNumber 

另外,根据Vasili,这有效:

$str = @("foo","bar")

适用于-Filter

$ADFilter = {(objectClass -eq "user") -and (enabled -eq $True)}

谢谢大家。 MOB

2 个答案:

答案 0 :(得分:7)

属性参数采用string[](数组)数据类型,因此,它需要更像这样的东西:

@("extensionAttribute1","Department","Company","telephoneNumber")

答案 1 :(得分:3)

如果您在字符串变量中构造命令,则可以这样做:

$cmd = Get-ADUser -Filter $ADFilter -Properties $ADProperties

然后调用它

invoke-command $cmd