从列表中删除特定项目
Remove specific items from a list
我正在创建一个脚本来帮助我的同事创建一个新的 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
,这样我就可以输出用户的组成员身份,将所有这些设置到新用户的成员身份中。
但是有一点障碍...我需要从检索到的列表中删除最多三个组。
我的意思是,每次我输出一个用户的成员资格时,我需要删除一些组,如果它们出现在列表中的话。
问题是我不知道如何编写脚本以及从哪里开始。
您应该看看 Where-Object
cmdlet and the -notin
运算符。
基本上你会做这样的事情:
$excludeFromThisList = @("group1", "group2")
$newGroupList = $gpuser | Where-Object { $_ -notin $excludeFromThisList }
我正在创建一个脚本来帮助我的同事创建一个新的 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
,这样我就可以输出用户的组成员身份,将所有这些设置到新用户的成员身份中。
但是有一点障碍...我需要从检索到的列表中删除最多三个组。 我的意思是,每次我输出一个用户的成员资格时,我需要删除一些组,如果它们出现在列表中的话。
问题是我不知道如何编写脚本以及从哪里开始。
您应该看看 Where-Object
cmdlet and the -notin
运算符。
基本上你会做这样的事情:
$excludeFromThisList = @("group1", "group2")
$newGroupList = $gpuser | Where-Object { $_ -notin $excludeFromThisList }