Lister les GPO

Le
Ptit Fred
Bonjour,

j'aimerais effectuer en ligne de commande un listing des stratégies
appliquée sur un utilisateur quand il est connecté. Gpresult me fait ce
travail, mais ne m'affiche que les clés de la base de registre, alors que je
voudrais les descriptions comme celles indiquées dans Gpedit par exemple.

Merci de votre aide.

--

Bonne journée.

Frederic
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
`blah [MVP]
Le #794047
Salut,

"Ptit Fred"
j'aimerais effectuer en ligne de commande un listing des stratégies
appliquée sur un utilisateur quand il est connecté. Gpresult me fait ce
travail, mais ne m'affiche que les clés de la base de registre, alors que
je

voudrais les descriptions comme celles indiquées dans Gpedit par exemple.


GPResult te permet d'afficher les GPO appliquées à l'utilisateur.

Maintenant si tu veux le détail des GPO elles mêmes, je ne connais pas
d'outils permettant de lister en ligne de commande le contenu d'une GPO,
mais ça doit être vbs-scriptable. Reste à faire le script,


--
à+
Jesse ADAM
MVP (Fr) Windows Server / Active Directory
http://www.agorachat.net

Yassine.k
Le #795478
"`blah [MVP]" news:
Salut,

"Ptit Fred"
j'aimerais effectuer en ligne de commande un listing des stratégies
appliquée sur un utilisateur quand il est connecté. Gpresult me fait ce
travail, mais ne m'affiche que les clés de la base de registre, alors
que


je
voudrais les descriptions comme celles indiquées dans Gpedit par
exemple.



GPResult te permet d'afficher les GPO appliquées à l'utilisateur.

Maintenant si tu veux le détail des GPO elles mêmes, je ne connais pas
d'outils permettant de lister en ligne de commande le contenu d'une GPO,
mais ça doit être vbs-scriptable. Reste à faire le script,


--
à+
Jesse ADAM
MVP (Fr) Windows Server / Active Directory
http://www.agorachat.net




Salut,

En ce qui concérne Gpo, cette technologie est scriptable, notamment avec
Gpmc, toutes les taches qui peuvent etre accomplis sur le UI peuvent etre
accompli en code, Il y 'a tout un modele d'object COM consommable par
langage de script (vbs, js, perl, etc) .
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gpmc/gpmc/portal.asp

Ou cas ou l'environment ne permets pas l'usage de gpmc,
Sachant que la technologie Gpo utilise un mix du file system pour tout ce
qui est GPT, login script, adm config de securite "bdr" et Ad pour le GPC
contenaire.

Solution en C Style;
les api de Gpo, la librairie userenv.lib, declaration de fonction sur trouve
sur userenv.h sur ton Sdk, fonctions assez bien documenter, tu recois comme
cadeau meme le dialog du system BrowseorGpo() pour naviguer les gpo sur ton
AD ou local, alors Mfc, p invoke de .net, ou meme du pur K&R C sont toutes
des techniques permis par les Win32 api de GPO.

Solution scripting se resume à:
"Env Windows xp"

Les adm templates appliqué à une machine ou utilisateur peuvent etre retirer
grace à Wmi plus precisement la classe "RSOP_RegistryPolicySettings,
RSOP_AdministrativeTemplate pour et ca va de suite un outil tel que wbemtest
permet de naviguer les differentes classes, examiner properties, examiner
l'heritage, etc"
une wql de ton langage favori fera l'affaire,le namespace ou les classes
rsop se trouve sur rootrsopcomputer ou bien user si c'est User settings
example code de wql "query de wmi"
Select name, value from RSOP_RegistryPolicySettings
Gpo utilise les locations suivantes pour tout ce qui est base de
registre,ton code peut visiter la Bdr, le nom de cle donne assez d'info de
quoi il s'agit
User-settings:
HKEY_CURRENT_USERSoftwarePolicies et
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPolicies
Computer-settings:
HKEY_LOCAL_MACHINESoftwarePolicies et
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPolicies


"Env Nt, Windows 2000"
il existe une dll "IadsTools.dll" sur le support tools de windows 2000 et
docs aussi, et faire appel a IAdsTools::GetGpo(), ceci permet d'avoir
les gpo appliquer sur un object particulier, example

Set obj =CreateObject("iadstools.dcfunctions")
Set target =GetObject("LDAP://dc=MyDomain,dc=com")
target = obj.GetGPOs("sample.com","nondedomaine")
If target > 0 then
For i=1 to target: wscript.echo job.gponame(i)
wscript.echo " " & obj.gpoguid(i): next: End If
set obj = nothing : set target = nothing

et en ce qui concerne le "Text description" comme celle indiquée par gpedit,
ou cas le nom de la clé sur la bdr n'est pas suffisant, une manip facile a
faire te permetteras tout le texte meme celui de "explain" sur Gpedit,
En code enumer les fichiers adm appliquera un objet de choix, stock les noms
des adm en memoire, connecte à un DC, va sur sysvol," ne les edite surtout
pas, sinon "process owned by someone else", le system ne te laisseras pas le
faire notament FRS ça lui appartient, alors essaye d'y faire une copie
gentillement) dans un buffer, stream ou autre et recuppére la partie "
Explain!!" qui est contenu dans la section "Policy!!, et le tour est jouer,
faire 2 loop un petit sur chaque police dans le fichier adm, et un loop
parent pour chaque adm collecter en memoire.
Le format des templates adm est assez simple a comprendre et manipuler en
code, lien sur msdn pour le format adm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/policy/policy/administrative_template_file_format.asp


cordialement
yassine


Yassine.k[MVP.net]
Le #795476
"Yassine.k" news:

"`blah [MVP]" news:
Salut,

"Ptit Fred"
j'aimerais effectuer en ligne de commande un listing des stratégies
appliquée sur un utilisateur quand il est connecté. Gpresult me fait
ce



travail, mais ne m'affiche que les clés de la base de registre, alors
que


je
voudrais les descriptions comme celles indiquées dans Gpedit par
exemple.



GPResult te permet d'afficher les GPO appliquées à l'utilisateur.

Maintenant si tu veux le détail des GPO elles mêmes, je ne connais pas
d'outils permettant de lister en ligne de commande le contenu d'une GPO,
mais ça doit être vbs-scriptable. Reste à faire le script,


--
à+
Jesse ADAM
MVP (Fr) Windows Server / Active Directory
http://www.agorachat.net




Salut,

En ce qui concérne Gpo, cette technologie est scriptable, notamment avec
Gpmc, toutes les taches qui peuvent etre accomplis sur le UI peuvent etre
accompli en code, Il y 'a tout un modele d'object COM consommable par
langage de script (vbs, js, perl, etc) .

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gpmc/gpmc/portal.asp


Ou cas ou l'environment ne permets pas l'usage de gpmc,
Sachant que la technologie Gpo utilise un mix du file system pour tout ce
qui est GPT, login script, adm config de securite "bdr" et Ad pour le GPC
contenaire.

Solution en C Style;
les api de Gpo, la librairie userenv.lib, declaration de fonction sur
trouve

sur userenv.h sur ton Sdk, fonctions assez bien documenter, tu recois
comme

cadeau meme le dialog du system BrowseorGpo() pour naviguer les gpo sur
ton

AD ou local, alors Mfc, p invoke de .net, ou meme du pur K&R C sont toutes
des techniques permis par les Win32 api de GPO.

Solution scripting se resume à:
"Env Windows xp"

Les adm templates appliqué à une machine ou utilisateur peuvent etre
retirer

grace à Wmi plus precisement la classe "RSOP_RegistryPolicySettings,
RSOP_AdministrativeTemplate pour et ca va de suite un outil tel que
wbemtest

permet de naviguer les differentes classes, examiner properties, examiner
l'heritage, etc"
une wql de ton langage favori fera l'affaire,le namespace ou les classes
rsop se trouve sur rootrsopcomputer ou bien user si c'est User settings
example code de wql "query de wmi"
Select name, value from RSOP_RegistryPolicySettings
Gpo utilise les locations suivantes pour tout ce qui est base de
registre,ton code peut visiter la Bdr, le nom de cle donne assez d'info de
quoi il s'agit
User-settings:
HKEY_CURRENT_USERSoftwarePolicies et
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPolicies
Computer-settings:
HKEY_LOCAL_MACHINESoftwarePolicies et
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPolicies


"Env Nt, Windows 2000"
il existe une dll "IadsTools.dll" sur le support tools de windows 2000
et

docs aussi, et faire appel a IAdsTools::GetGpo(), ceci permet d'avoir
les gpo appliquer sur un object particulier, example

Set obj =CreateObject("iadstools.dcfunctions")
Set target =GetObject("LDAP://dc=MyDomain,dc=com")
target = obj.GetGPOs("sample.com","nondedomaine")
If target > 0 then
For i=1 to target: wscript.echo job.gponame(i)
wscript.echo " " & obj.gpoguid(i): next: End If
set obj = nothing : set target = nothing

et en ce qui concerne le "Text description" comme celle indiquée par
gpedit,

ou cas le nom de la clé sur la bdr n'est pas suffisant, une manip facile a
faire te permetteras tout le texte meme celui de "explain" sur Gpedit,
En code enumer les fichiers adm appliquera un objet de choix, stock les
noms

des adm en memoire, connecte à un DC, va sur sysvol," ne les edite surtout
pas, sinon "process owned by someone else", le system ne te laisseras pas
le

faire notament FRS ça lui appartient, alors essaye d'y faire une copie
gentillement) dans un buffer, stream ou autre et recuppére la partie "
Explain!!" qui est contenu dans la section "Policy!!, et le tour est
jouer,

faire 2 loop un petit sur chaque police dans le fichier adm, et un loop
parent pour chaque adm collecter en memoire.
Le format des templates adm est assez simple a comprendre et manipuler en
code, lien sur msdn pour le format adm

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/policy/policy/administrative_template_file_format.asp



cordialement
yassine


J'ai oublie de parler d'une partie de la tech Gpo et comment l'automatiser

Pour chaque policy Gpo crée un objet dans l'active directory, info de
l'objet;
Cn = "Group-Policy-Container"
Dn = "CN="Guid",CN=Policies,CN=system,DC=mondomain, DC=com"

Le system defini deja dans le schema une definition qui herites d'autres
classes qui permet d'avoir d'autres information "partenaires replication
frs, site membership et autres", lien de la definition sur msdn
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adschema/adschema/c_grouppolicycontainer.asp
scripting
adsi binding classique en passant le DN au fournisseur LDAP, et appelant
les properties le dn peut etre recuperer par wmi sur xp ou
Iadstools.dll:GetGpo.Guid, rootdse.DefaultNamingContext te donneras le nom
de domain dynamiquement et de suite, ou cas ou ça coince au code fais nous
signe.

non scripting sans passer par Ad
IGroupPolicyObject et autres defini sur Gpedit.h
cela veut dire faire le travail que wmi fait soigneusement sur xp/2003
soi-meme qui veut dire reference counting et Vtables ) "c/c++ , perl,
delphi, etc"ou .net avec le service PInvoke en ecrirvant du managed code
.net mais bon il y'as un prix "marshalling detypes/ Perf".

cordialement
yassine



Publicité
Poster une réponse
Anonyme