Powershell erreur lors de l'ajout d'un tableau
Salut, je suis en train de lancer un script pour obtenir les utilisateurs dans un réseau, dans un tableau, de sorte qu'il peut être délivrée à un fichier csv avec d'autres données que je vais l'avoir, comme les groupes de distribution.
Le code de script que je suis en cours d'exécution donne une erreur:
Invocation de méthode a échoué parce que [le Système.De la gestion.L'automatisation.PSObject] ne contient pas une méthode nommée "op_Addition'.
Le script est une simple boucle for:
$ActiveDirectoryList=@()
$UserDetails = get-aduser -filter {enabled -eq $true} -properties * | Select DisplayName,EmailAddress, SAMAccountName
$counter = 0
foreach($User in $UserDetails){
$ActiveDirectoryList = New-Object PSObject
$Users = get-aduser $User.SAMAccountName -properties *
if(!$Users.EmailAddress -eq ""){
$counter++
$ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $Users.DisplayName
$ActiveDirectoryList | Add-Member -MemberType NoteProperty -Name "Email Address" -Value $Users.EmailAddress
write-host $Users.DisplayName
$ActiveDirectoryList+=$ActiveDirectoryList
}
}
Essayé de chercher sur internet une solution, mais ils ne semblent pas résoudre quoi que ce soit.
$ActiveDirectoryList
n'est pas un tableau, vous avez instancié en tant quePSObject
$ActiveDirectoryList+=$ActiveDirectoryList
semble très suspect ...- Il est l'ajout d'un tableau dans le tableau, je pense/espère que c'est de toute façon. C'est là que
$ActiveDirectoryList+=$ActiveDirectoryList
vient en - Vous remplacer le tableau avec une
PSObject
lorsque vous ne$ActiveDirectoryList = New-Object PSObject
, de sorte que l'opération d'ajout est effectivementPSObject + PSObject
, pour qui il n'y a pas de surcharge pour le+
opérateur - même si elle a travaillé comme vous le souhaitez, vous ajoutez un objet à lui-même. Sans doute parce que vous êtes à la ré-affectation de la variable.
Vous devez vous connecter pour publier un commentaire.
Ne pas réutiliser le même nom de variable pour la matrice, et les différents objets que vous souhaitez ajouter à l'éventail. Ici, j'ai renommé le
PSObject
variable$ActiveDirectoryObject
: