Question pb : runspacepool et wmi connectserver

Plus d'informations
il y a 12 ans 6 mois #15797 par Matthew BETTON
Bonsoir,

Tout cela me rappelle un peu une discussion , en 2010 (notamment les derniers posts).

@ +

Matthew BETTON

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

Plus d'informations
il y a 12 ans 6 mois #15798 par blanc
Bonsoir,

Merci pour les informations et les liens. Je m'y mets demain.
Sur MSDN j'avais un peu \"senti\" la différence STA/MTA mais pas suffisamment pour en comprendre l'impact avec les API WMI dans le mécanisme runspacepool.

Que donne l'exécution de ton script sans préciser ce paramètre ?

La valeur par défaut est \"unknow\". Je suppose donc qu'il prend la valeur de PS Console qui doit être MTA puisque STA est un paramètre de powershell.exe.
Comme je le disais, sans $runspacePool.ApartmentState = \"STA\", si $throttleLimit est supérieur à 25 (sur mon pc ) et avec les requêtes WMI connectserver/createprocess, alors la console Ps de fige dès la limite atteinte ou légèrement dépassée.

C'est en créant ce post dans ce forum que j'ai trouvé le site signalant l'existence de ce paramètre ( et son rôle mais comme c'est en anglais et que je ne comprends pas grand chose ).
J'ai donc posté ici tout à la fois, la description du contexte, l'anomalie rencontrée, la solution possible.

Aujourd'hui je peux dire qu'avec ce paramètre \"STA\", j'ai utilisé sans problème $throttleLimit = 500 pour les connexions aux 7800 machines distantes et y créer des processus, le tout avec WMI en utilisant les API DOT.NET de runspacepool. Pour les 7800 XPSP3 distants, j'ai pu modifier une clé de registre et lancer un processus en 2H07. Et 2 fois car j'ai eu 2 demandes du \"client\".

Finalement ma question se résume ainsi : dans ce contexte de connexion/création de processus via WMI dans un environnement runspacepool, comment expliquer et garantir que le bon fonctionnement dépend bien de ce paramètre STA? Car je me méfie des évidences de mes tests et des recettes de cuisines.

Ce mécanisme runspacepool reste marginal surtout dans un environnement respectant l'état de l'art, domaine, GPO, outil d'inventaire, de télédistribution ( ce qui n'est pas le cas pour mon travail ).

Respectueusement.
Noël

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

Plus d'informations
il y a 12 ans 6 mois #15799 par blanc
Bonsoir,
Je viens de recevoir une réponse depuis un autre forum.
La réponse ( à la fin ) semble très pertinente et je crois comprendre le lien entre WMI et STA des runspacepool.
powershell.org/wp/forums/topic/runspacep...ectserver/#post-9844

Also, the WbemScripting.SWbemLocator COM object requires STA

J'ai regardé dans la registry de mon xp pour \"WbemScripting.SWbemLocator\"
HKEY_CLASSES_ROOT\CLSID\{76A64158-CB41-11D1-8B02-00600806D9B6}\InProcServer32
L'adéquation/cohérence des modèles n'est peut être pas une obligation puisqu'il y a une table de correspondances entre le modèle du serveur etle modèle du client. Mais je suis sûr de mal interpréter.
Peut être aurez vous l'énergie pour faire un complément d'information compréhensible pour un béotien comme moi.
J'ai envie de dire que puisque le \"locator WMI\" est STA alors les runspacepool de dot.net doivent être STA.
Respectueusement.
Noël

Ps : j'ai aussi acheté le livre PS V3 car en français, c'est mieux pour moi. C'est un gros pavé !<br><br>Message édité par: noel, à: 30/08/13 00:15

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

Plus d'informations
il y a 12 ans 6 mois #15807 par Laurent Dardenne
noel écrit:

Peut être aurez vous l'énergie

C'est à toi de creuser le sujet COM, par exemple au travers de cette FAQ .
En fin d'article codeplex précédemment cité, l'auteur indique qq ouvrages, voici ce qu'on y trouve comme remarque sur Amazon :

Ok, this is the skinny on COM:
1) COM is hard
2) you will not learn COM by reading only one book
3) attempt COM in stages: read about it, use someone elses servers, write your own
servers, write your own servers in a multi-threaded environment

To learn COM you must take weeks of expensive courses or read these books in this order:
1) \&quot;Understanding ActiveX and OLE\&quot;: optional; easy read but recommended
2) \&quot;Inside COM\&quot;: strongly recommended; if you really appreciate \&quot;Essential COM\&quot; without reading this first you are smarter than I am
3) \&quot;Multithreading Applications in Win32\&quot;: strongly recommended
4) \&quot;Essential COM\&quot;: essential; once you have your COM bearings read this book, then read it again in 6 months to realize how many details you missed the first time
5) \&quot;Beginning Atl Com Programming\&quot;: recommended
6) \&quot;Effective COM\&quot;: optional
7) \&quot;Essential ATL\&quot;: optional
8) \&quot;Inside OLE2\&quot;: optional, for brave souls only

Whew! That is a lot but it all really is required. If you attempt shortcuts or read the books out of order, you risk being crushed by someone who really knows COM. Oh yeah, you must also know C++ cold, suspend your beliefs about C++ objects, and be open to the idea of distributed components. Good luck!

COM est complexe, c'est aussi la raison pour laquelle MS à fait en sorte que le dev Windows 8 s'en affranchisse .

Tutoriels PowerShell

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

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