Obtenez de l'ANNONCE les infos de l'Utilisateur à l'aide de PowerShell
Je vais essayer d'obtenir un tas d'attributs Active Directory à l'aide de PowerShell pour une liste d'utilisateurs. Je suis de l'importation de la liste des utilisateurs dans une variable et ensuite utiliser une boucle ForEach pour passer par chaque utilisateur. Voici ce que le script ressemble à ce jour:
$Users=Get-Content "C:\Project\NewUSers\FirstBatch.txt"
$UserInfo = foreach($User in $Users)
{
Get-ADUser $User -properties DisplayName,PasswordLastSet,whencreated | Select-Object -ExpandProperty DisplayName,PasswordLastSet,WhenCreated
}
$UserInfo
Cependant, lorsque je lance le script, j'obtiens le message d'erreur suivant:
Select-Object : Impossible de convertir de 'Système.Object [] "pour le" type de Système.Chaîne " requis par le paramètre 'ExpandProperty'. Méthode spécifiée n'est pas prise en charge.
Au niveau de ligne:4 char:104
+ ... ExpandProperty DisplayName,PasswordLastSet
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Select-Object], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commandes.SelectObjectCommand
Le script fonctionne quand je ne récupérer un signal d'attribut. Donc, si je devais modifier le code pour cela, il va travailler et de me donner la valeur de ces attributs:
Get-ADUser $User -properties DisplayName,PasswordLastSet,whencreated | Select-Object -ExpandProperty PasswordLastSet
Quelqu'un serait-il en mesure de préciser l'endroit où le problème peut-être? Toute autre suggestion serait également la bienvenue. Merci beaucoup!
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas avoir à utiliser -ExpandObject avec ces propriétés, ils sont tous des types simples comme les string et datetime. -ExpandObject est utilisé pour afficher toutes les propriétés d'un objet ou à convertir le contenu d'un tableau dans une chaîne.
https://technet.microsoft.com/en-us/library/hh849895.aspx
Comme toujours avec powershell il y a de nombreuses façons d'atteindre le même résultat, à la suite d'exemples permettront d'atteindre le résultat souhaité.
Vous ne Pouvez pas Développer de multiples propriétés, Vous pouvez créer un tableau et ajouter ceux des infos sur elle, comme ceci:
Vous ne pouvez avoir qu'un seul objet ou un tableau pour le commutateur -ExpandProperty. Pour les paramètres spécifiés (DisplayName,PasswordLastSet,WhenCreated) vous n'avez pas besoin de spécifier ExpandProperty basculer, car ils sont à la seule valeur des propriétés.
Exécuter votre code mais sans ExpandProperty: