2017-10-11 13 views
0

Je suis en train de supprimer tous les utilisateurs dans une unité d'organisation en utilisant powershell, j'ai ci-dessous qui se coince quand il s'agit du nom SAMAccount, je veux supprimer tous les utilisateurs trouvés.Powershell supprimer tous les utilisateurs dans OU

Qu'est-ce que je fais de mal ici s'il vous plaît?

$search="OU=Staff,OU=Users,DC=Testing, DC=Local" 

$deletes= Get-ADUser -SearchBase $search -filter * -properties SamAccountName | Select-Object SamAccountName 

$numusers=($deletes.count) 
echo "$numusers Users Found" 

foreach ($delete in $deletes) 
{ 
    echo "Deleting user account $delete . . . " 
    remove-aduser -identity $delete -confirm:$false 
} 

Ceci est la sortie. Apparemment va pas ici - ne peut pas convertir le "@ {SamAccountName = bbonhomme}"

7 Utilisateurs trouvés

Deleting user account @{SamAccountName=bbonhomme} . . . 
Remove-ADUser : Cannot bind parameter 'Identity'. Cannot convert value "@{SamAccountName=bbonhomme}" to type 
"Microsoft.ActiveDirectory.Management.ADUser". Error: "Cannot convert the "@{SamAccountName=bbonhomme}" value of type 
"Selected.Microsoft.ActiveDirectory.Management.ADUser" to type "Microsoft.ActiveDirectory.Management.ADUser"." 
At C:\Users\Administrator\Desktop\import\getadusers.ps1:11 char:29 
+  remove-aduser -identity @delete -confirm:$false 
+        ~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Remove-ADUser], ParameterBindingException 
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.RemoveADUser 
+0

vous avez faire une boucle pour chaque ' $ delete' mais vous avez exécuté votre commande avec '$ deletes' (avec une terminaison S) êtes-vous sur ce sujet? –

+0

Ma question d'erreur a été mise à jour, j'ai essayé de nombreuses variantes – Anthony

Répondre

2

Remplacer la

$deletes= Get-ADUser -SearchBase $search -filter * -properties SamAccountName | Select-Object SamAccountName 

par

$deletes= Get-ADUser -SearchBase $search -filter * -properties SamAccountName 

L'ajout de Select-Object implique la conversion de "object" ADUser en "Psob" ject ". Par conséquent, la commande suivante remove-ADuser ne reconnaît pas ce type d'objet.

Remplacer aussi:

remove-aduser -identity $deletes -confirm:$false 

Par

remove-aduser -identity $delete.SamAccountName -confirm:$false 

changé $ supprime par $ supprimer (vous ne pouvez pas spécifier une collection dans le paramètre -Identity)

+0

Avec le @ remplacé par $ à delete.Samaccountname qui a travaillé merci – Anthony

+0

J'essaie de mettre à jour le poste. Je vous remercie ;-) –