我需要创建scirpt,将用户从列表(包含用户显示名称)添加到组 我遇到的问题是: 当我发出命令时:
PS C:\Users\pskwarek> foreach ($a in $csv) {(get-aduser -f "DisplayName -like 'Piotr Skwarek'").samaccountname}
pskwarek
pskwarek
但是如果我使用$变量它就不起作用:
PS C:\Users\pskwarek> foreach ($a in $csv) {(get-aduser -f "DisplayName -like '$a.name'").samaccountname}
下一步我想将其传递给:
Add-adgroupMember -identity "groupname" -member samaccountname
但我无法迈出这一步
修改
PS C:\Users\pskwarek> $csv
Name
----
Piotr Skwarek
Renata Skwarek
答案 0 :(得分:2)
您需要将$ a.name放在子表达式中:
foreach ($a in $csv)
{
$user = Get-ADUser -Filter "DisplayName -like '$($a.name)'"
Add-ADGroupMember groupname -Members $user
}
答案 1 :(得分:0)
试试这个:
$csv | % { Add-ADGroupMember -Identity "Groupname" -Member $_.Name }
答案 2 :(得分:0)
foreach ($a in $csv)
{
$sb = [scriptblock]::create("DisplayName -like '*$a*'")
(get-aduser -f $sb).SamAccountName
}
答案 3 :(得分:0)
试试这个:
foreach ($a in $csv) {(get-aduser -f ("DisplayName -like '{0}'" -f $a.name)).samaccountname}
您不能像以前那样直接在字符串中使用变量的成员。 使用字符串格式(我提出的'-f'语法)始终有效。 另一种解决方案是使用临时变量来存储$ a.name