Question Listage des ordinateurs d'un AD

Plus d'informations
il y a 16 ans 10 mois #401 par Neobugx
Avant tout, bonjours à tous ^^

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.

Plus d'informations
il y a 16 ans 10 mois #405 par Arnaud Petitjean
Bonjour Neobugs et bienvenue sur le forum !

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.

Plus d'informations
il y a 16 ans 10 mois #408 par Neobugx
Réponse de Neobugx sur le sujet Re:Listage des ordinateurs d'un AD
Merci bcp pour ton aide ;)

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 :side:

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

Plus d'informations
il y a 16 ans 10 mois #410 par Arnaud Petitjean
Salut Neobugs,

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.

Plus d'informations
il y a 16 ans 1 mois #1855 par Norman
Réponse de Norman sur le sujet Re:Listage des ordinateurs d'un AD
La solution de listage proposée ne doit pas pouvoir marcher dans tous les AD : dans celui d'une entreprise conséquente avec sites et filiales régionales par exemple, cela pose un problème.

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.

Plus d'informations
il y a 16 ans 1 mois #1859 par Arnaud Petitjean
Salut,

D'où vient ce script ? De la bibliothèque ou du livre ?

D'autre part attention car j'ai noté une erreur de frappe : \&quot;.directorye\&quot; 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.

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