我正在创建一个脚本,可以帮助我的同事创建一个新的AD用户。这是我到目前为止所做的:
ipmo activedirectory
$users = import-csv C:\Users\...\Desktop\test_bulk.csv -delimiter ";"
foreach ($User in $users)
{
$Displayname = $User.Givenname + " " + $User.Surname
$Usersurname = $User.Surname
$Userfirstname = $User.Givenname
$SAM = $User.Samaccountname
$OU = $User.path
$password = $User.Password
$newuser = New-ADUser -PassThru -Name $Displayname -SamAccountName $SAM -
GivenName $Userfirstname -Surname $Usersurname -AccountPassword (ConvertTo-SecureString $password -AsPlainText -Force)-Enabled $true -Path $OU -ChangePasswordAtLogon $false -PasswordNeverExpires $true -OtherAttributes @{businesscategory="Internal"}
$gpuser = Get-ADPrincipalGroupMembership $User.gpuser | select -ExpandProperty name
Add-ADPrincipalGroupMembership -Identity $newuser -MemberOf $gpuser
}
如您所见,我已设置变量$gpuser
,因此我可以输出用户的组成员资格,将所有这些设置为新用户的成员资格。
但是有一点障碍......我需要从检索到的列表中删除最多三个组。 我的意思是每次输出用户的会员资格时,如果他们出现在列表中,我需要删除几个组。
问题是我不知道如何编写脚本以及从哪里开始。
答案 0 :(得分:2)
您应该查看Where-Object
cmdlet和-notin
运算符。
基本上你会做这样的事情:
$excludeFromThisList = @("group1", "group2")
$newGroupList = $gpuser | Where-Object { $_ -notin $excludeFromThisList }