从带有复选框的原始形式我得到一个带有一些属性的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
}
非常感谢你的帮助,我会变得疯狂:)
此致 于连
答案 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
}