Question
l'enfer de la documentation !
- blanc
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 54
- Remerciements reçus 0
Il y a des \"objects\" partout. J'ai du mal à m'y retrouver et encore plus, lorsque j'en tiens un, à trouver sa documentation.
Par exemple, \"l'object\" suivant de type classe statique permet de lancer la commande :
[system.console]::beep(440,50) # \"system\" est employé par défaut.
J'obtiens une description de cet \"object\" avec :
[console] | gm # gm pour get-member
TypeName: System.RuntimeType
...
Pas de beep !
[console] | gm -static
TypeName: System.Console
...
La méthode \"beep\" y figure bien. Avec des paramètres...
Déjà pas facile de comprendre toutes ces subtilités !
Supposons que j'ai compris pourquoi il faut prendre system.console. Alors, pour trouver la documentation dans msdn, c'est presque facile ....framework sdk 2.0/classsLibraryReference/system/console/methodes console/beep, ce qui donne :
msdn.microsoft.com/fr-fr/library/4fe3hdb1(VS.80).aspx
Quelques lignes plus loin, je trouve ReadKey.
En supposant que je comprenne qu'il existe un $Host.UI.RawUI.ReadKey, oh surprise, les 2 readkey sont différents :
$Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”)
Les paramètres ne sont pas les mêmes.
$Host.ui.rawui | gm
ne me renseigne pas beaucoup.
2 heure plus loin, un simple :
$Host.ui.rawui | gm | where {($_.name).split() -ilike \"ReadKey\"}
ne m'apprend pas plus. Mais j'ai appris un peu plus sur les manipulations d'affichage.
Bref, je n'arrive pas à trouver la documentation dans msdn de cet obscur \"object\" $Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”).
Encore 2 heures plus loin....et en résumant...
En gros, il y a les objets du framework et ceux de powershell. Et l'aide se trouve donc à 2 endroits :
- aide de framework : dans msdn/msdn Library/.net development/.Net Framework 3.5/.Net Framework Class Library/System Manespace/Console Class/Console Methods...
msdn.microsoft.com/en-us/library/471w8d85.aspx
et utilisation : [system.console]::readkey()
- aide de Powershell : Msdn/Msdn Library/Qin32 and Com Develpment/Administration and Management/Windows powershell/Powwershell Managed Reference/System.Management.Automation.host
msdn.microsoft.com/en-us/library/system....yoptions(VS.85).aspx
et utilisation : $Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”)
Ma question : comment identifer s'il faut chercher l'aide dans \".net\" ou dans \"powershell\", voire ailleurs? (Aurais je pu aussi dire: comment identifier le \"fournisseur\" de l'objet?).
Je n'ai pas encore lu votre livre mais ce n'est qu'une affaire de temps.
Merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
noel écrit:
Et oui sous .NET tout est objet.Il y a des \"objects\" partout.
noel écrit:
C'est vrai et ce n'est pas la seule malheureusement. Il y 2 choses la syntaxe et l'usage de cmdlet de Powershell ET le framework dotNET.Déjà pas facile de comprendre toutes ces subtilités !
noel écrit:
Oui car il s'agit d'encapsulation d'API win32.les 2 readkey sont différents :
Dans un cas on travail sur la console directement, dans l'autre sur le Host de Powershell qui est aussi une console...
Mais celle de PS ( PowerShell) offre d'autres services.
Effectivement pas facile de s'y retrouver :/
noel écrit:
Si, il te donne déjà le nom de la classe à rechercher dans MSDN, c'est peu mais c'est le minimum.$Host.ui.rawui | gm
ne me renseigne pas beaucoup.
noel écrit:
Oui mais il faut prendre celui du framework 2.0. Si tu te bases sur la doc du 3.5 tu risques d'appeler des méthodes qui n'existent pas.Et l'aide se trouve donc à 2 endroits :
Quant au fait de retrouver la doc de PS dans un autre endroit c'est normal c'est en quelque sorte un sous ensemble d'API.
Tout comme SQl Server,Biztalk,VS 2005...
noel écrit:
Oui mais l'espace de nom est plus adapté dans ce contexte. C'est une notion statique.Aurais je pu aussi dire: comment identifier le \"fournisseur\" de l'objet?).
noel écrit:
C'est le nom du type de l'objet, son genre, qui le détermine : Nom de l'espace de nom+Nom de classecomment identifer s'il faut chercher l'aide dans \".net\" ou dans \"powershell\", voire ailleurs?
Le \"ailleurs\" étant Win32/COM/ADSI. Mais arrivé là tu as déjà un niveau plus avancé. Mais cela peut arriver car .NET n'encapsule pas toutes les API Win32.
[code:1]
#interroge le type d'un objet
# BaseType renvoi le type de la classe ancêtre
$Host.ui.rawui.GetType()
#
# IsPublic IsSerial Name BaseType
#
----
# False False InternalHostRawUserInterface System.Management.Automation.Host.PSHostRawUserInterface
#interroge le type d'une classe
[system.Console].GetType()
#
# IsPublic IsSerial Name BaseType
#
----
# False True RuntimeType System.Type
[/code:1]
Est-ce suffisament clair ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- blanc
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 54
- Remerciements reçus 0
Comme \"exercice\" de prise en main, je me suis mis comme objectif de \"refaire\" un ipconfig. Ca sert à rien, je sais, mais il me faut bien un but réaliste pour jouer \"dans le pipeline\".
Ca ira mieux une fois votre livre lu mais le temps de l'investissement est toujours compté.
Encore merci.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Pour aborder le sujet :Ca sert à rien, je sais, mais il me faut bien un but réaliste pour jouer \"dans le pipeline\".
laurent-dardenne.developpez.com/articles...werShell/Pipelining/
Pour cet exercice je pense que cela se passera + du coté de chez WMI, qui nécessite lui aussi une autre doc
Une autre approche serai d'étudier des scripts existant sur le sujet.
noel écrit:
Les auteurs de l'ouvrage sont Arnaud et Robin.Ca ira mieux une fois votre livre lu mais le temps de l'investissement est toujours compté.
noel écrit:
De rien.Encore merci.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- l'enfer de la documentation !