Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables Powershell变量未传递到筛选器中_Variables_Powershell_Filter_Foreach - Fatal编程技术网

Variables Powershell变量未传递到筛选器中

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

我需要创建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 $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.name

PS C:\Users\pskwarek>$csv name---Piotr Skwarek Renata Skwarek该解决方案的语法实际上比我的更清晰,我总是忘记这一点:pI是脚本编写的新手,不得不承认我不了解它,尽管它在PS中基本上运行良好,您可以构造字符串并在其中放置变量的“占位符:
$string=(“这是{0}{1}”-f“my”,“script”)
这只是告诉PowerShell将{0}替换为列表中位于“-s”之后的第一个元素,{1}替换为第二个元素,依此类推。