Variables Powershell变量未传递到筛选器中
我需要创建scirpt,将列表中的用户(包含用户显示名称)添加到组中 我遇到的问题是: 当我发出命令时:Variables Powershell变量未传递到筛选器中,variables,powershell,filter,foreach,Variables,Powershell,Filter,Foreach,我需要创建scirpt,将列表中的用户(包含用户显示名称)添加到组中 我遇到的问题是: 当我发出命令时: PS C:\Users\pskwarek> foreach ($a in $csv) {(get-aduser -f "DisplayName -like 'Piotr Skwarek'").samaccountname} pskwarek pskwarek 但是如果我使用$a变量,它就不起作用了: PS C:\Users\pskwarek> foreach ($a in $c
PS C:\Users\pskwarek> foreach ($a in $csv) {(get-aduser -f "DisplayName -like 'Piotr Skwarek'").samaccountname}
pskwarek
pskwarek
但是如果我使用$a变量,它就不起作用了:
PS C:\Users\pskwarek> foreach ($a in $csv) {(get-aduser -f "DisplayName -like '$a.name'").samaccountname}
下一步我想把它传递给:
Add-adgroupMember -identity "groupname" -member samaccountname
但我一步也做不到
编辑
试试这个:
$csv | % { Add-ADGroupMember -Identity "Groupname" -Member $_.Name }
foreach ($a in $csv) {(get-aduser -f ("DisplayName -like '{0}'" -f $a.name)).samaccountname}
您需要将$a.name放入子表达式中:
foreach ($a in $csv)
{
$user = Get-ADUser -Filter "DisplayName -like '$($a.name)'"
Add-ADGroupMember groupname -Members $user
}
试试这个:
$csv | % { Add-ADGroupMember -Identity "Groupname" -Member $_.Name }
foreach ($a in $csv) {(get-aduser -f ("DisplayName -like '{0}'" -f $a.name)).samaccountname}
不能像以前那样在字符串中直接使用变量的成员。
使用字符串格式(我建议的'-f'语法)总是有效的。
另一个解决方案是使用一个临时变量来存储$a.namePS C:\Users\pskwarek>$csv name---Piotr Skwarek Renata Skwarek该解决方案的语法实际上比我的更清晰,我总是忘记这一点:pI是脚本编写的新手,不得不承认我不了解它,尽管它在PS中基本上运行良好,您可以构造字符串并在其中放置变量的“占位符:
$string=(“这是{0}{1}”-f“my”,“script”)
这只是告诉PowerShell将{0}替换为列表中位于“-s”之后的第一个元素,{1}替换为第二个元素,依此类推。