Question récuperer les groupes locaux d'une machine distant

Plus d'informations
il y a 13 ans 5 mois #13125 par darphboubou
Bonjour,

J'ai le script suivant qui me permets de remonter les groupes locaux (script récupéré par un collègue parti)


Write-Host \"Donner le nom du PC / Serveur\"
$c=Read-Host
$computer = [ADSI](\"WinNT://$c,computer\")
$compObj = $computer.psbase.children
$compObj > c:\temp\chier.txt

$Groups = @()

foreach($obj in $compObj){
if($obj.psbase.SchemaClassName -eq \"group\"){
($obj).name >> c:\temp\toto.txt
Write-host \"`nGroupe : $($obj.Name)\"
$Members = @(@($obj.psbase.invoke(\"Members\")) | foreach {$_.GetType().InvokeMember(\"Name\", 'GetProperty', $null, $_, $null)})
#Write-host \"Nombre de comptes inclus dans ce groupe : $($Members.count)\"
$Members >> c:\temp\toto.txt


}
}

Ma question est la suivante ce que j'ai souligné en gras est un tableau a deux dimension? Si oui quelqu'un peut il m'expliquer comment il fonctionne?

Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 5 mois #13128 par Richard Lazaro
Bonjour,

Non cela n'est pas un tableau a deux dimensions.
Je pense qu'il voulait \"s'assurer\" que le résultat soit un tableau.

le code fonctionne trés bien comme cela :

[code:1]$Members = $obj.psbase.invoke(\"Members\"«») | foreach {$_.GetType().InvokeMember(\"Name\", 'GetProperty', $null, $_, $null)}[/code:1]

Bien Cordialement,
Richard Lazaro.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 5 mois #13129 par darphboubou
effectivemnt ça fonctionne merci pour le retour ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 5 mois #13130 par Philippe
Bonjour

Sans être un expert le script ne fonctionne pas complètement après la modification (suppression des \"@()\").
Pour moi il faut au moins convertir le résultat global de la ligne en array.

En effet la ligne en commentaire n'indique plus le nombre de compte si il n'y en qu'un voir aucun. (count n'existe pas sur un string ou sur null)

Mais je peut me tromper ou il y a peut-être une autre solution pour avoir le même résultat.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 5 mois #13131 par Richard Lazaro
Je suis d'accord avec toi, Et encore cela va dépendre de la version de PowerShell.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 5 mois #13135 par xyz
Richard Lazaro écrit:

Et encore cela va dépendre de la version de PowerShell.

Tu parles de la version 3 ?
Si c'est le cas ,la première approche, autour du @() est préférable, car portable.
Richard Lazaro écrit:

Je pense qu'il voulait \"s'assurer\" que le résultat soit un tableau.

C'est un détail, mais j'aurais plutot dit \"qu'ainsi on force Powershell à construire et renvoyer le résultat sous forme de tableau\".
Un peu plus explicite, je pense.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.043 secondes
Propulsé par Kunena