数百人のユーザーのSamAccountName
とそのユーザーを削除するグループの一覧を含むADクリーンアップ作業用のCSVを作成しようとしています。各ユーザーには、グループを削除するための異なるグループのリストがあります。長いリストのユーザーから別のリストのADグループを削除する
CSVは、次のようになります。
SamAccountName,ADgroupName1,ADgroupName2,ADgroupName3,ADgroupName4,etc... user1,Group1,Group2,Group3,Group4 user2,Group2,Group3,,, user3,Group5,,,,
スクリプトを私がこれまで持っている:
# Get the list of SAMAccountNames
$user = Import-Csv .\GroupsToRemove.csv | Select-Object -ExpandProperty SAMAccountName
foreach ($user in $users) {
# Loop through the user list and select the list of groups to remove for each user
# from the CSV and set to the $Groups array
$Group = @()
$Group = %{(Import-Csv .\GroupsToRemove.csv | Where-Object {$_.SamAccountName -eq $user})} | select "GroupName*"
foreach ($group in $Groups) {
# Remove the AD groups from each User
Remove-ADPrincipalGroupMembership $user -Member $Group -Confirm:$false
}
}
私は問題の一部であると思う私は、CSVからグループ名をインポートしていたときにそれはまた列名を$Group
配列に追加しますか?だからRemove-ADPrincipalGroupMembership
コマンドが失敗していますか?
$groups
出力は以下のようなものです:
GroupName1 : Group1 GroupName2 : Group2 GroupName3 : Group3 GroupName4 : Group4
あなたは '' $ユーザ=を行っています'$ users'を繰り返し実行します。 '$ user ='を '$ users ='に変更してください。あなたは '$ Group ='でも同じ誤りを犯しています。 –