Question
Listage des ordinateurs d'un AD
- Neobugx
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 2
- Remerciements reçus 0
Pour me présenter brièvement, je suis un adpete du bash qui tente tant bien que mal de s'initier au PowerShell.
M'inspirant - très - fortement de la bibliothèque permettant de lister tous les ordinateurs d'un AD , j'en suis arrivé à:
[code:1]$complist | Out-String -stream | Select-String \"PRT\"[/code:1]
Cette commande m'affiche tous les ordinateurs de l'AD dont le nom contient \"PRT\". Cependant j'aimerais que les résultats affichés ne contiennet que les nom des ordinateurs (résultats exempts de \"LDAP://CN=\"[...]\",OU=OU....\" ).
Etant donné que le 'langage' du powershell est orienté objet - d'après ce que j'ai compris -, peut-on filtrer le résultat via une propriété de l'objet affiché ?
Tout éclairage sera le bienvenue
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
Etant donné que le 'langage' du powershell est orienté objet - d'après ce que j'ai compris -, peut-on filtrer le résultat via une propriété de l'objet affiché ?
C'est tout à fait exact . Mais il arrive parfois que certaines propriétés retournées soient de type String tout simplement et dans ce cas il faut appliquer un traitement de chaine pour extraire une sous chaine. Heureusement cela est assez facile à réaliser avec PowerShell.
Mais pour ce qui concerne ton 'soucis' on peut extraire juste la propriété qui va bien :
[code:1]foreach ($i in $complist) {write-host $i.Properties.cn}[/code:1]
Et pour filtrer, tu peux faire aussi ceci :
[code:1]foreach ($i in $complist) {$i.Properties.cn | where-object {$_ -like \"*PRT*\"}}[/code:1]
Bonne continuation
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Neobugx
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 2
- Remerciements reçus 0
Mais il arrive parfois que certaines propriétés retournées soient de type String tout simplement et dans ce cas il faut appliquer un traitement de chaine pour extraire une sous chaine. Heureusement cela est assez facile à réaliser avec PowerShell.
Une sorte de awk ? Par curiosité, comment peut-on mettre ceci en oeuvre car j'y serais forcément confronté...
Merci encore
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
Je te propose de te référer d'abord à l'aide en ligne (help select-string -detailed), puis s'il y a quelque chose que tu n'arrives pas à faire n'hésites à revenir poster.
@++
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Norman
- Hors Ligne
- Nouveau membre
- Messages : 16
- Remerciements reçus 0
Le morceau de code proposé par Arnaud Petitjean ne me renvoit que 5 comptes de machines dans une des 1eres OU(alors que je filtre en plus sur un nom de machine étant essentiellement dans une sous-sous OU).
Par contre, avec :
[code:1]
$ldapQuery = \"(&(objectCategory=computer))\"
$de = new-object system.directoryservices.directory
$ads = new-object system.directoryservices.directory
$ads.PageSize =500
$complist = $ads.findall()
$complist | Out-String -stream | Select-String \"351\"[/code:1]
J'ai déjà beaucoup plus de machines qui me sont renvoyées grâce à la ligne $ads.PageSize =500
Cette commande correspond certainement à la limite du nombre de machines visibles dans la console dsa.msc !!
Message édité par: canard, à: 6/03/08 17:01<br><br>Message édité par: canard, à: 6/03/08 17:17
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
D'où vient ce script ? De la bibliothèque ou du livre ?
D'autre part attention car j'ai noté une erreur de frappe : \".directorye\" mais je pense que c'est du au copier/coller sinon tu aurais un message d'erreur.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Listage des ordinateurs d'un AD