Comment la liste des ANNONCES appartenance à un groupe pour les utilisateurs de AD à l'aide de l'entrée de la liste?
Je suis assez nouveau PS utilisateur... à la Recherche de l'aide avec un script powershell pour obtenir la liste des groupes de sécurité de l'utilisateur est membre.
Pour décrire ce que j'ai besoin de:
- J'ai d'entrée de la liste (fichier txt) avec de nombreux utilisateurs (samaccountnames). Chaque nom est sur une nouvelle ligne.
- J'ai besoin du script à la recherche de ces noms dans AD - forêt entière, et pas seulement un seul domaine
- de sortie doit ressembler à "samaccountname" et la liste des groupes de ce compte est membre de en une ligne, je peux donc faire le tri dans excel
C'est le script que j'ai:
$users = Get-Content C:\users.txt
ForEach ($User in $users) {
$getmembership = Get-ADUser $User.Users -Properties MemberOf | Select -ExpandProperty memberof
$getmembership | Out-File -Append c:\membership.txt
}
mais il me lance une erreur:
Get-ADUser : Cannot validate argument on parameter 'Identity'. The argument is null. Supply a non-null argument and try the command again.
At line:4 char:28
+ $getmembership = Get-ADUser <<<< $User.Users -Properties MemberOf | Select -ExpandProperty memberof
+ CategoryInfo : InvalidData: (:) [Get-ADUser], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.GetADUser
De toute façon, ce script ne serait pas de recherche sur l'ensemble de la forêt.
Exemple de liste d'entrée:
username1
username2
username3
username4... etc
Exemple de sortie de la liste
username1;group1;group2;group3
username2;group1;group2;group3;group4... etc or something similar
Toute aide serait grandement appréciée.
OriginalL'auteur Martin_K | 2014-01-20
Vous devez vous connecter pour publier un commentaire.
Première: tel Qu'il est actuellement, le
$User
variable n'a pas de.Users
de la propriété. Dans votre code,$User
représente simplement une ligne (le "courant" de ligne dans la boucle foreach) à partir du fichier texte.Deuxièmement, je ne crois pas que vous pouvez interroger l'ensemble de la forêt avec une seule commande. Vous aurez à le casser en petits morceaux:
Get-ADUser
pour chaque domaine (vous pouvez avoir à spécifier d'autres informations d'identification via la-Credential
paramètreTroisièmement, pour obtenir une liste de groupes auxquels un utilisateur est membre de:
Quatrièmement: Pour obtenir la valeur finale, désiré format de chaîne de caractères, il suffit d'ajouter le
$User.Name
, un point-virgule, et le$GroupMembership
de la chaîne:Bonne affaire! Heureux que vous avez trouvé utile. Pourriez-vous la marque de la réponse appropriée?
OriginalL'auteur Trevor Sullivan
Obtenu à partir d'une autre réponse, mais le script fonctionne de la magie. 🙂
OriginalL'auteur genius_monkey
Ou ajouter "trier" nom de liste dans l'ordre alphabétique
J'aime bien, mais je suis incapable de le faire fonctionner, si j'utilise -ExpandProperty
OriginalL'auteur nilz76
Le code ci-dessous sera de retour nom d'utilisateur de l'appartenance au groupe à l'aide de la samaccountname. Vous pouvez la modifier pour obtenir l'entrée à partir d'un fichier ou modifier la requête pour obtenir les comptes avec sans date d'expiration des mots de passe etc
Exemple De Sortie:
OriginalL'auteur notforsale
Tout en une seule ligne:
OriginalL'auteur Frank