Question definition
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Une propriété. Ici PowerShell facilite la manipulation:qu'est ce que Assemly?
[code:1]$type=[System.Security.Principal.NTAccount]
# ou $type=$Account.GetType()
$type
$type.Assembly[/code:1]
trazomtg écrit:
En page 131-132 les auteurs l'explique mais à mon avis il y a une erreur dans la phrase (p 132):comment peux t-on savoir que le type qui nous convient est justement : System.Security.Principal.NTAccount] ?
\"on s'aperçoit qu'elle attend à ce qu'on lui passe un paramètre de type TargetType\"
TargetType est le nom du paramètre dans la définition de la méthode GetOwner :
[code:1]
$ACL.GetOwner
MemberType : Method
OverloadDefinitions : {System.Security.Principal.IdentityReference GetOwner(Type targetType)}
...
[/code:1]
Où
System.Security.Principal.IdentityReference est le type de l'objet renvoyé comme résultat,
GetOwner le nom de la méthode
(Type ,est le nom du type du paramètre. ( Type est aussi un nom de type sous .NET)
targetType)} est le nom du seul paramètre attendu par la méthode GetOwner.
Avec cette explication on a peu de mal à s'y retrouver, je suis d'accord.
C'est donc plutot :
\"on s'aperçoit qu'elle attend à ce qu'on lui passe un paramètre de type IdentityReference\".
C'est le type du résultat renvoyé par la méthode GetOwner qui nous amméne à l'information recherchée voir MSDN :
Représente une identité et constitue la classe de base pour les classes NTAccount et SecurityIdentifier. Cette classe ne fournit pas de constructeur public, et ne peut donc pas être héritée.
Ensuite il y a je pense une autre erreur dans la paragraphe après la remarque où il est dit que \"... nous avons découvert que la classe identityreference attendait en paramètres les classes NTAccount ou SecurityIdentifier...\"
Un classe n'attend pas de paramètre sauf si elle est paramètrable, voir les génériques. Ici c'est le paramètre targetType qui est directement concernée pas la classe identityreference.
D'aprés le texte MSDN c'est parce que du part elle ne peut pas être héritée et que d'autre part que seul les 2 classes citées en héritent que l'on peut dire que GetOwner ne peut prendre en paramètre que l'un ou l'autre type et aucun autre.
Mais tout ceci doit être un peu déroutant pour un débutant, je te l'accorde.
Aux auteurs donc de confirmer ces points.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Granier
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 27
- Remerciements reçus 0
page 120 du livre j'ai un probleme avec les 2 lignes suivantes :
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal = new-object System.Security.principal.windowsprincipal
je ne comprends pas l'enchainement et puis comment deviner les objets et les methoces a utiliser?
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
trazomtg écrit:
Il y a peut être une erreur de typographie car la ligne suivant $principal = new-object fait partie de l'appelJe ne comprends pas l'enchainement
[code:1]
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$principal = new-object System.Security.principal.windowsprincipal($CurrentUser)
[/code:1]
Là il faut lire la doc sur MSDN, il n'y a rien de particulier, c'est un traitement en deux étapes. On cherche à savoir si l'utilisateur courant à le rôle Administrateur.
trazomtg écrit:
La question est plutôt comment rechercher l'objet ou la méthode qui réponde à un besoin. C'est vrai que pour un débutant d'utiliser MSDN c'est la noyade assurée.et puis comment deviner les objets et les méthodes à utiliser ?
Tu pars du besoin, savoir si l'utilisateur courant à le rôle Administrateur. On doit déjà retrouver des infos sur le compte courant. Le choix des mots utilisés à son importance.
Si on recherche sur MSDN utilisateur ou en anglais user, on récupère trop de résultat.
On complète avec utilisateur courant ou en anglais current user.
On se rapproche mais cela reste encore trop bruyant. On réitére l'opération en ajoutant un mot comment ou retrouver, howto, retrieve.
Ensuite Il faut connaître le terme anglais correspondant.Le plus souvent les méthodes portent un nom de verbe et les propriétés un nom commun.
Donc il n'y a pas vraiment de méthodes, soit tu le sais, soit on te l'a dit, soit tu l'as recherché. C'est une lapalissade mais il n'y a pas d'autre manière.
Enfin parfois on peut utiliser des objets sans trop savoir ce qu'ils sont, ni comment ils fonctionnent. L'important est de savoir qu'un bout de code permet d'obtenir l'information que l'on recherche.
De toute façon on retrouve souvent ces classes, les occasions d'approfondir leurs comportements ne manqueront pas.<br><br>Message édité par: Laurent Dardenne, à: 21/03/09 12:38
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Granier
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 27
- Remerciements reçus 0
maintenant je ne comprends pas la page 200
$connexion = [ADSI]\"WinNT://$machine\"
!!!!!!
merci de m'expliquer
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Tu vas finir correcteurmaintenant je ne comprends pas la page 200
C'est abordé en page 198 et expliqué en page 376.
Ensuite MSDN -> ADSI ou API ADSI
msdn.microsoft.com/fr-fr/library/ms180829.aspx
En creusant un peu plus -> Active Directory Service Interfaces
msdn.microsoft.com/en-us/library/aa772161.aspx
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Granier
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 27
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- Nos livres sur PowerShell
- Besoin d'infos complémentaires ?
- definition