2017-07-24 33 views
0

J'essaye de supprimer certains utilisateurs administrateurs locaux sur plusieurs ordinateurs. Voici le script que j'utilisé et il fonctionne:Récupérer la sortie de la commande ADSI dans Powershell

Import-Csv c:/input.csv | ForEach-Object { 
    ([ADSI]"WinNT://$($_.ComputerName)").Invoke("Delete", "user", $_.Username) 
} 

Le problème est que je veux obtenir les résultats des utilisateurs non supprimés directement dans un fichier texte. Quelles commandes m'aideraient? J'ai essayé Out-File, mais il me donne un fichier vide.

+0

Que voulez-vous dire par « les résultats des utilisateurs non-supprimés »? Voulez-vous écrire une liste des comptes d'utilisateurs locaux restants dans un fichier après l'opération de suppression? –

+0

@AnsgarWiechers Exactement! –

Répondre

0

Utilisez Get-WmiObject pour interroger un hôte distant pour les utilisateurs locaux:

$csv = Import-Csv 'C:\input.csv' 
$lcl = 'LocalAccount=True' 

$csv | ForEach-Object { [ADSI]... } 

$csv | Sort-Object -Unique ComputerName | ForEach-Object { 
    Get-WmiObject -Computer $_.ComputerName -Class Win32_UserAccount -Filter $lcl 
} | Select-Object PSComputerName, Name | Export-Csv 'C:\output.csv' -NoType 
+0

Merci beaucoup Cher, cela a fonctionné parfaitement. –