Supprimer un utilisateur de groupes Active Directory
J'ai écrit un script pour déconnecter et déplacer les utilisateurs répertoriés dans un fichier texte et dans le cadre de ce scénario, je voudrais les supprimer de groupes qui leur fournissent des licences pour des logiciels spécifiques.
Mon script supprime les utilisateurs, mais coincé dans le cycle, me disant que le groupe a été supprimé et je ne peux pas comprendre pourquoi.
Je ne suis pas sûr que je n'en ai pas assez ici, aide?!?
Remercier!
Ceci est un bloc qui documenté:
}
Si nécessaire, c'est l'ensemble du script (Désactivée):
Mon script supprime les utilisateurs, mais coincé dans le cycle, me disant que le groupe a été supprimé et je ne peux pas comprendre pourquoi.
Je ne suis pas sûr que je n'en ai pas assez ici, aide?!?
Remercier!
Ceci est un bloc qui documenté:
foreach ($group in $groups){
#Write-Host $group
foreach ($user in Get-ADGroupMember -Identity $group){
If ((Get-ADUser $user.SamAccountName -Properties MemberOf).MemberOf -Contains $group){
Write-Host "$term is a member of $group"
Remove-ADGroupMember -Identity $group -Member $user -Confirm:$false
Write-Host "$term membership of $group removed."
}
else{
Write-Host "$term is not a member of any groups"
}
}
}
Si nécessaire, c'est l'ensemble du script (Désactivée):
#Import the Active Directory Module for Powershell
import-module activedirectory
#Get List of Terms
$terms = Get-Content "Terms.txt"
#Your name
$admin = Read-Host -Prompt "Please enter your name "
#foreach loop
foreach($term in $terms){
$user = Get-ADUser -Filter {displayName -like $term} -Properties CanonicalName
#Get location of User
$split = $user.DistinguishedName.Split(',')
$path = "$($split[-4])"
$location = $path
$ou = 'OU=Disabled,OU=People,'
$dn = ',DC=some,DC=domain,DC=tld'
$base = $ou + $location + $dn
# disable user
Disable-ADAccount -identity $user
#Add Description
$day = Get-Date -Format g
Set-ADUser $user -Description "Disabled by $admin $day"
Write-Host "$term Disabled by $admin on $day"
#Groups to remove user from on termination
$groups = @('CN=Group,OU=SomeOU,OU=Groups,OU=OU2,DC=some,DC=domain,DC=tld', 'CN=Group,OU=SomeOU,OU=Groups,OU=OU2,DC=some,DC=domain,DC=tld', 'sec_software_license_group1', 'sec_software_license_group2', 'sec_software_license_group3')
foreach ($group in $groups){
#Write-Host $group
foreach ($user in Get-ADGroupMember -Identity $group){
If ((Get-ADUser $user.SamAccountName -Properties MemberOf).MemberOf -Contains $group){
Write-Host "$term is a member of $group"
Remove-ADGroupMember -Identity $group -Member $user -Confirm:$false
Write-Host "$term membership of $group removed."
}
else{
Write-Host "$term is not a member of any groups"
}
}
}
Write-Host 'Disabling and moving '$term
# move user
move-adobject -Identity $user -targetpath $base
write-host $term' is moved to Disabled'
}
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Dominique
Confirmation de:
Eh bien, je ne peux pas en être sûr, mais il semble que ce bit devait être supprimé:
On dirait que vous capturez tous les utilisateurs de chaque groupe, puis pour chaque utilisateur trouvé, supprimez-les du groupe. - Que peut être bon - Sauf que vous le faites non seulement pour les utilisateurs conditionnels - Vous le faites pour chaque utilisateur dans chaque groupe que vous avez spécifié.
Pour autant que je puisse juger,
Si vous l'avez lancé contre un compte dans le groupe Administrateur de domaine - Vous effaceriez effectivement le groupe de sécurité de l'administrateur de domaine.
Je pense que la raison de votre problème peut être due au fait que $ user, que vous définissez dans la chaîne 13, S. ne coïncide pas $ user, que vous utilisez dans la chaîne 37.
Je vous suggère de remplacer la chaîne 37-46 Cette ligne unique:
Il décide quelques problèmes que j'ai lors du choix d'un code remplaçable:
C'est efficace et
Il se débarrasse des lignes inutiles "Write-Host" ("-Verbose" Il n'y a pas de simple), et
Cela empêche l'apparition du sang sur l'écran, si l'utilisateur
ne pas
Membre de l'un des groupes spéciaux.