Question
Lister les utilisateurs des groupe locaux (Résolu)
- Francois
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 16 ans 10 mois #4586
par Francois
Lister les utilisateurs des groupe locaux (Résolu) a été créé par Francois
ola ola
tout d'abord merci pour ce site / forum car il est d'une aide precieuse dans mon aventure Powershell ^^
mais la je bloque
je cherche a lister les utilisateurs de mes groupe locaux sur mon ad...
voila mon code
[code:1]$ldapQuery = \"(&(objectCategory=group))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist | Sort-Object -Property path | Where-Object {$_.path -like \"*gl*\"} | Format-wide -Property path -autosize >c:\groupe_locaux.txt[/code:1]
mes groupes locaux ont tous un nom \"gl_*\" donc pas de prob , j'arrive a lister les groupes.
un exemple du fichier text en sortie :
LDAP://CN=GL_Achat_Modif,OU=Achat,dc=powershell-scripting,dc=com
Nickel sauf que j'aimerais que ca ressemble plus a :
LDAP://CN=GL_Achat_Modif
deja je ne vois pas comment faire
ensuite , j'aimerais bien lister les utilisateurs et groupe contenu dans les groupes locaux et la ca devient plus dur...
j'imagine faire ca avec un foreach-object mais malgré tout mes efforts , j'y arrive pas
une idée? de l'aide?
promis , je fais un bisou à celui qui m'aidera a parvenir a mon but...
<br><br>Message édité par: Arnaud, à: 25/05/09 23:56
tout d'abord merci pour ce site / forum car il est d'une aide precieuse dans mon aventure Powershell ^^
mais la je bloque
je cherche a lister les utilisateurs de mes groupe locaux sur mon ad...
voila mon code
[code:1]$ldapQuery = \"(&(objectCategory=group))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist | Sort-Object -Property path | Where-Object {$_.path -like \"*gl*\"} | Format-wide -Property path -autosize >c:\groupe_locaux.txt[/code:1]
mes groupes locaux ont tous un nom \"gl_*\" donc pas de prob , j'arrive a lister les groupes.
un exemple du fichier text en sortie :
LDAP://CN=GL_Achat_Modif,OU=Achat,dc=powershell-scripting,dc=com
Nickel sauf que j'aimerais que ca ressemble plus a :
LDAP://CN=GL_Achat_Modif
deja je ne vois pas comment faire
ensuite , j'aimerais bien lister les utilisateurs et groupe contenu dans les groupes locaux et la ca devient plus dur...
j'imagine faire ca avec un foreach-object mais malgré tout mes efforts , j'y arrive pas
une idée? de l'aide?
promis , je fais un bisou à celui qui m'aidera a parvenir a mon but...
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 16 ans 10 mois #4589
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Lister les utilisateurs des groupe locaux...
Bonjour fpucorbier,
Tu peux déjà peut-être faire une recherche plus fine pour rechercher seulement les groupes de domaine locaux.
tu spécifies dans ta requête LDAP le type de groupe recherché. Pour un local, cela doit être \"-2147483644\"
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"[/code:1]
Je ne sais pas trop pourquoi tu recherches à avoir ce résultat :
ex:
[code:1]$complist[0].path -match ('LDAP://(?<cngroup>.+?),');$matches.cngroup[/code:1]
Sinon, peux-être que tu pourrais récupérer l'attribut cn ou name... mais je ne sais pas ce que souhaite...
Quelquechose comme ça sinon :
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}[/code:1]
Euh.. bisou...
Tu peux déjà peut-être faire une recherche plus fine pour rechercher seulement les groupes de domaine locaux.
tu spécifies dans ta requête LDAP le type de groupe recherché. Pour un local, cela doit être \"-2147483644\"
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"[/code:1]
Je ne sais pas trop pourquoi tu recherches à avoir ce résultat :
mais si tu recherches à avoir ça, je pense que le mieux est de passer par les expressions régulières.LDAP://CN=GL_Achat_Modif
ex:
[code:1]$complist[0].path -match ('LDAP://(?<cngroup>.+?),');$matches.cngroup[/code:1]
Sinon, peux-être que tu pourrais récupérer l'attribut cn ou name... mais je ne sais pas ce que souhaite...
Quelquechose comme ça sinon :
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}[/code:1]
Euh.. bisou...
Connexion ou Créer un compte pour participer à la conversation.
- Francois
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 16 ans 10 mois #4628
par Francois
Réponse de Francois sur le sujet Re:Lister les utilisateurs des groupe locaux...
heyhey
MERCI !!! et desole pour la reponse tardive ^^
ton code est magnifique et marche super bien. Malheuresemment , j'y comprends pas grand chose
Comment es tu arrivé a faire ce code?
j'ai commencé a faire du powershell avec le bouquin de microsoft : kit d'aministration et je suis un peu decu.
Penses qu'avec le guide de reference , j'aurais plus de chance de comprendre ton code?
sinon , ta 2eme reponse est la bonne mais penses tu qu'on peut trier le resultat par ordre alphabetique et avoir aussi les utilisateurs des groupes locaux?
Pour l'instant , je n'ai aucune piste pr y arriver
Merci encore et promis , tu va avoir ton bisou
<br><br>Message édité par: Arnaud, à: 25/05/09 23:55
MERCI !!! et desole pour la reponse tardive ^^
ton code est magnifique et marche super bien. Malheuresemment , j'y comprends pas grand chose
Comment es tu arrivé a faire ce code?
j'ai commencé a faire du powershell avec le bouquin de microsoft : kit d'aministration et je suis un peu decu.
Penses qu'avec le guide de reference , j'aurais plus de chance de comprendre ton code?
sinon , ta 2eme reponse est la bonne mais penses tu qu'on peut trier le resultat par ordre alphabetique et avoir aussi les utilisateurs des groupes locaux?
Pour l'instant , je n'ai aucune piste pr y arriver
Merci encore et promis , tu va avoir ton bisou
Connexion ou Créer un compte pour participer à la conversation.
- Francois
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 16 ans 10 mois #4629
par Francois
Réponse de Francois sur le sujet Re:Lister les utilisateurs des groupe locaux...
pr mettre en odre alphabetique , j'ai fait comme ca :
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist = $complist | Sort-Object -Property path
$complist|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}[/code:1]
mais je trouve que ca fait pas \"propre\" , c'est plus de mac gyver qu'autre chose.
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall()
$complist = $complist | Sort-Object -Property path
$complist|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}[/code:1]
mais je trouve que ca fait pas \"propre\" , c'est plus de mac gyver qu'autre chose.
Connexion ou Créer un compte pour participer à la conversation.
- PASCAULT
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 78
- Remerciements reçus 0
il y a 16 ans 10 mois #4630
par PASCAULT
Réponse de PASCAULT sur le sujet Re:Lister les utilisateurs des groupe locaux...
Bonjour,
Le principal c'est d'arriver au but !
C'est pas mal... Après c'est que de l'optimisation de code, mais ce n'est pas toujours très clair pour celui qui lit derrière. A force d'en faire, on a quelques automatisme, et du coup, on pense pas à trop détailler.
Le plus compliqué dans mon code là, c'est plus la partie expression régulière
Tu pourrais utiliser le .split sinon pour palier à ça.
Sinon, pour \"optimiser\" un peu plus ton code si tu veux, tu pourrais mettre le sort directement sur la ligne précédente.[code:1]
$complist = $ads.findall()|Sort-Object -Property path [/code:1]
Parait que le guide de référence est pas mal sinon !
N'hésite pas s'il y a des choses qui ne sont pas très clair...
Le principal c'est d'arriver au but !
C'est pas mal... Après c'est que de l'optimisation de code, mais ce n'est pas toujours très clair pour celui qui lit derrière. A force d'en faire, on a quelques automatisme, et du coup, on pense pas à trop détailler.
Le plus compliqué dans mon code là, c'est plus la partie expression régulière
, c'est hyper puissant, mais c'est clair que ce n'est pas toujours simple à aborder au début.'LDAP://(?<cngroup>.+?),'
Tu pourrais utiliser le .split sinon pour palier à ça.
Sinon, pour \"optimiser\" un peu plus ton code si tu veux, tu pourrais mettre le sort directement sur la ligne précédente.[code:1]
$complist = $ads.findall()|Sort-Object -Property path [/code:1]
Euh... en fait aucune idée, je n'ai aucun boucain ! Quand j'ai commencé il y a 3 ans, il n'y avait pas encore de revue parlant de PS. J'ai appris beaucoup avec l'aide de base puis sur les sites...Penses qu'avec le guide de reference , j'aurais plus de chance de comprendre ton code?
Parait que le guide de référence est pas mal sinon !
N'hésite pas s'il y a des choses qui ne sont pas très clair...
Connexion ou Créer un compte pour participer à la conversation.
- Francois
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 16 ans 10 mois #4632
par Francois
Réponse de Francois sur le sujet Re:Lister les utilisateurs des groupe locaux...
merci 
pour avoir le contendu des groupes locaux , je pensais faire comme ca :
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall() | Sort-Object -Property path
foreach ($i in $complist )
{
$i|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}
$groupe = ([ADSI]\"$i\"«»)
$groupe.member
}[/code:1]
ou j'ai repris ce oode la :
[code:1]$groupe = ([ADSI]\"LDAP://localhost/cn=mongroupe,ou=test,dc=powershell-scripting,dc=com\"«»)
$groupe.member [/code:1]
Malheuresmeent , ca ne marche pas.
Ca doit venir du fait qu'il ne remplace pas la valeur de $i dans $groupe = ([ADSI]\"$i\").
Mais je n'ai aucune idée
MERCI D AVANCE !!
pour avoir le contendu des groupes locaux , je pensais faire comme ca :
[code:1]$ldapQuery = \"(&(objectCategory=group)(grouptype=-2147483644))\"
$de = new-object system.directoryservices.directoryentry
$ads = new-object system.directoryservices.directorysearcher -argumentlist $de,$ldapQuery
$complist = $ads.findall() | Sort-Object -Property path
foreach ($i in $complist )
{
$i|?{$_.path -match ('LDAP://(?<cngroup>.+?),')}|%{write-host $matches.cngroup}
$groupe = ([ADSI]\"$i\"«»)
$groupe.member
}[/code:1]
ou j'ai repris ce oode la :
[code:1]$groupe = ([ADSI]\"LDAP://localhost/cn=mongroupe,ou=test,dc=powershell-scripting,dc=com\"«»)
$groupe.member [/code:1]
Malheuresmeent , ca ne marche pas.
Ca doit venir du fait qu'il ne remplace pas la valeur de $i dans $groupe = ([ADSI]\"$i\").
Mais je n'ai aucune idée
MERCI D AVANCE !!
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.101 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lister les utilisateurs des groupe locaux (Résolu)