Powershell:属性中的多个值变量

时间:2014-01-09 12:04:22

标签: powershell properties

从带有复选框的原始形式我得到一个带有一些属性的csv文件。 我想在cmdlet get-Adusers中使用这些属性。如果我在csv中只有一个值而没有一些值,则该脚本正在运行。

我的CSV文件格式如下:

"PropertiesSelected";"FilterSelected"
"SN,EmailAddress,CN,SamAccountName"; "DC=myDomain,DC=COM"

暂时我不尝试使用"filterSelected" 我认为问题在于powershell"SN,EmailAddress,CN,SamAccountName"理解为单个值

我使用的命令是这样的: Import-Csv c:\TempPowerShell\CheckBoxResults.csv -delimiter ";" |

ForEach-Object {

$FilterSelected=$_.FilterSelected

$PropertiesSelected=$_.PropertiesSelected

Get-ADUser -Properties "$PropertiesSelected" -Filter * -SearchScope Subtree -SearchBase "DC=MyDomain,DC=COM" -Server MyServer:3268
}

非常感谢你的帮助,我会变得疯狂:)

此致 于连

2 个答案:

答案 0 :(得分:1)

您无法使用具有多个属性的String作为参数输入。

您可以通过将命令构造为字符串然后使用invoke-expression执行它来解决此问题:

$command="get-aduser -properties $PropertiesSelected -Filter * -SearchScope Subtree -SearchBase "DC=MyDomain,DC=COM" -Server MyServer:3268"
Invoke-expression $command

关心保罗

答案 1 :(得分:0)

ForEach-Object {

$FilterSelected=$_.FilterSelected

$PropertiesSelected=$_.PropertiesSelected

Get-ADUser -Properties $PropertiesSelected.split(",") -Filter * -SearchScope Subtree -SearchBase "DC=MyDomain,DC=COM" -Server MyServer:3268
}