Question
WmiFilter GPO en winform via un selecteditem
- PatriceLT
- Auteur du sujet
- Visiteur
-
Je reviens encore vous embêter
Je suis actuellement sur un problème (toujours sur les GroupPolicy) ou là j'essaie d'assigner un filtre WMI en powershell sur une GPO.
PSvClient : 2.0
Cmdlets utilisées : ADQuest
J'ai essayé plusieurs choses :
[code:1]
Get-GPO -All -Domain \"Patrice.lab\" | % {$_.WmiFilter}
[/code:1]
Pour cette commande, j'ai bien un Tableau d'objets qui m'est retourné avec 3 colonnes : Description, Name & Path.
J'ai aussi fait (avec du winform) une listbox qui me récupère tous mes filtres wmi :
[code:1]
Get-QADObject -Type \"msWMI-Som\" -Properties \"msWMI-Name\" | foreach {$_.\"msWMI-Name\"}
[/code:1]
ou par la suite je fais un Items.AddRange de ma commande pour intégrer tous mes filtres WMI.
Jusque là tout va bien, je récupère les bons filtres etc.
Mon gros problème est d'assigner a un GPO créée (New-GPO) le filtre WMI que j'aurais sélectionné dans ma listbox via un \"SelectedItem\"
Le problème que j'ai c'est qu'aucune commande ne me permet de faire ça, ou j'ai raté le coche.
J'ai testé avec un SetWmiFilter en property mais rien n'y fais.
J'ai aussi essayé via un New-Object -ComObject GPMgmt.GPM mais le problème c'est que je ne peux pas assigner un filtre spécifiquement sélectionné sur une gpo nouvellement créée... car il ne reconnait pas le type d'objet ... donc j'ai une erreur en hresult...
Merci d'avance pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
j'ai trouver sur ce site une explication pour lier un filtre a une GPO
dans extrait ci-dessous il explique qu'il faut modifier l'attribue \"gPCWQLFilter\" de la GPO
je n'ai pas quest sur mon poste mais quelque chose comme ça devrait le faire :
[code:1]set-QADObject -identity \"ta GPO\" -ObjectAttributes @{gPCWQLFilter=\"ton ID du filtre au format expliquer dans l'article\"}[/code:1]
<br><br>Message édité par: 6ratgus, à: 12/06/17 15:11Link WMI filters
Before the next GPO is processed, this section is executed only if the WmiFilter script switch is activated. If the current custom GPO object has a WMI filter property, the corresponding filter in the target domain is linked to the newly imported GPO.
Use the WmiFilter property of the current custom GPO to construct the path to the WMI filter in the target domain:
$TargetWmiDN = \"CN=$($CustomGpo.WmiFilter),CN=SOM,CN=WMIPolicy,CN=System,$TargetDomainDN\"
Test that the filter is present and include the msWMI-Name value in the properties that are returned:
$TargetWMI = Get-ADObject -Identity $TargetWmiDN -Property \"msWMI-Name\"
If the filter is present, use the Id property of the imported GPO to construct the path to the corresponding Group Policy container in the target domain:
$TargetGpoDN = \"CN={$($ImportedGpo.Id)},CN=Policies,CN=System,$TargetDomainDN\"
What’s a Group Policy container? A GPO is made up of two components. The first is the Group Policy container, which includes settings that are stored in Active Directory (there’s an attribute for the linked WMI filter). The second is a Group Policy template, which has settings that are stored in the System Volume (SYSVOL). (This provides a file system share that is replicated to all domain controllers).
To finish, use the path to the Group Policy container to update the WMI filter attribute gPCWQLFilter on the Group Policy container object:
$UpdateGpoFilter = Set-ADObject $TargetGpoDN -Replace @{gPCWQLFilter = \"[$TargetDomainFQDN;$($TargetWMI.Name);0]\"}
The Replace parameter accepts a hash table of attributes. In this instance, the value that is associated with the gPCWQLFilter attribute has an interesting format constructed by using the FQDN of the target domain and the name of the target WMI filter (the msWMI-Name value). Here’s an example:
[Halo.net;{ee1b2345-37ae-4c73-8df0-6ee501b3b05f};0]
Connexion ou Créer un compte pour participer à la conversation.
- PatriceLT
- Auteur du sujet
- Visiteur
-
Merci en tout cas pour cette réponse, malheureusement ça me fait planter ma GPO, je suis obligé de retourner dans les policies de l'ad pour enlever l'attribut en <non definit> afin de pouvoir la supprimer.
Voici ce que j'ai fais :
[code:1]
Connect-QADService -Service \"patrice.lab\"
Get-QADObject -identity \"Test-Patrice\"
[/code:1]
Cela me retourne bien ma GPO avec 3 colonnes :
Name, Type & DN
Ensuite j'ai essayé 2 choses :
[code:1]
Set-QADObject -identity \"Test-Patrice\" -ObjectAttributes @{gPCWQLFilter=\"ID_FiltreWMI\"}
Set-QADObject -identity \"Test-Patrice\" -ObjectAttributes @{gPCWQLFilter=\"DN_FiltreWMI\"}
[/code:1]
2 choses, tout d'abord les filtres sont récupérés via une listbox :
[code:1]
$FiltreWMI = Get-QADObject -Type \"msWMI-Som\" -Properties \"msWMI-Name\" | foreach {$_.\"msWMI-Name\"}; $FiltreWMI_Liste(listbox).Items.AddRange($FiltreWMI)
[/code:1]
Une fois le nom WMI selectionné, je le met en variable $WMI et l'affiche dans une richtextbox ce qui me permet ou non de valider ma selection.
J'aimerais donc que ma variable $WMI puisse être intégré lors de ma création ou modification de GPO.
Pour ton exemple, je suppose qu'il faut faire une fonction WMI afin d'y insérer l'arborescence WMI + du PSObject pour ajouter : le nom, le param1 + param2 ?
J'ai par ailleurs regardé une autre GPO avec un filtre WMI déjà appliqué.Voici le résultat :
[code:1]
gPCWQLFilter : [patrice.lab;{ID_WMI};0]
[/code:1]
Merci d'avance pour tes lumières.<br><br>Message édité par: PatriceLT, à: 13/06/17 10:26
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
[code:1]Set-QADObject -identity \"CN={EE1B2345-37AE-4C73-8DF0-6EE501B3B05F},CN=Policies,CN=System,DC=patrice,DC=lab\" -ObjectAttributes @{gPCWQLFilter=\"[patrice.lab;{ee1b2345-37ae-4c73-8df0-6ee501b3b05f};0]\"}[/code:1]
je viens de faire le test avec l'equivalent module AD sans probleme :
[code:1]Set-ADObject -Identity \"CN={EE1B2345-37AE-4C73-8DF0-6EE501B3B05F},CN=Policies,CN=System,DC=domaine,DC=lan\" -Replace @{gPCWQLFilter = \"[domaine.lan;{C151C605-118B-4A3D-863D-0405F127DEF8};0]\"}[/code:1]
pour identity je suis obliger de mettre le DistinguishedName mais peut être que tu n'en a pas besoin avec la commande quest
pour les autres questions ont regardera après que cette partie fonctionne<br><br>Message édité par: 6ratgus, à: 13/06/17 12:40
Connexion ou Créer un compte pour participer à la conversation.
- PatriceLT
- Auteur du sujet
- Visiteur
-
Je viens de faire un test à la mano, j'ai pris mon DN gpo pour l'insérer dans identity, ainsi que l'adresse de mon DNjuste avant, et le CN de ma GPO ça passe.
Cependant je suis en train de réfléchir a comment faire, lorsque dans ma liste je sélectionne le nom de mon filtre WMI qui lui a été récupéré via un qadobject, récupérer l'ID via le msWMI-ID du msWMI-Name.
Est-ce que tu penses qu'un New-Object PSObject (Custom) avec de l'addmember pourrait faire l'affaire ?
Merci à toi
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
essai ceci :Cependant je suis en train de réfléchir a comment faire, lorsque dans ma liste je sélectionne le nom de mon filtre WMI qui lui a été récupéré via un qadobject, récupérer l'ID via le msWMI-ID du msWMI-Name.
[code:1]$FiltreWMIselect = Get-QADObject -Type \"msWMI-Som\" -Properties \"msWMI-Name\" | where {$_.\"msWMI-Name\" -eq \"variable avec le nom du filter sélectionner dans la listbox\"}
Set-QADObject -identity \"variable de ta GPO\" -ObjectAttributes @{gPCWQLFilter=\"[patrice.lab;$($FiltreWMIselect.Name);0]\"}
[/code:1]
la premiere ligne récupère objet du filtre
$($FiltreWMIselect.Name) contient ID du filtre selectionner
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- WmiFilter GPO en winform via un selecteditem