Question
Explications sur les classes .NET ?
- crouzille
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 34
- Remerciements reçus 0
il y a 16 ans 4 jours #6389
par crouzille
Explications sur les classes .NET ? a été créé par crouzille
Re ou bonjour à tout le monde.
Je reussi à bien avancer dans le powershell en suivant le livre. J'ai fini le chapitre sur .NET.
Des choses sont claires et d'autres non.
Ma question:
Peut t'on m'expliquer le fonctionnement de ce dernier avec des mots simples et ensuite comment savoir que notre variable que nous allons créer ex:
$form = new-object windows.forms.form
ou
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPAuthUsername, $SMTPAuthPassword)
Comment savoir quelle classe nous devons appeller? Y'a t'il une méthode afin de la determiner et la trouver facilement?
Je n'ai pas encore la logique du raisonnement je pense...
J'espère être clair car pour moi-même aussi c'est assez confus:S
Merci d'avance
Jérémy<br><br>Message édité par: Arnaud, à: 18/03/10 08:35
Je reussi à bien avancer dans le powershell en suivant le livre. J'ai fini le chapitre sur .NET.
Des choses sont claires et d'autres non.
Ma question:
Peut t'on m'expliquer le fonctionnement de ce dernier avec des mots simples et ensuite comment savoir que notre variable que nous allons créer ex:
$form = new-object windows.forms.form
ou
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPAuthUsername, $SMTPAuthPassword)
Comment savoir quelle classe nous devons appeller? Y'a t'il une méthode afin de la determiner et la trouver facilement?
Je n'ai pas encore la logique du raisonnement je pense...
J'espère être clair car pour moi-même aussi c'est assez confus:S
Merci d'avance
Jérémy<br><br>Message édité par: Arnaud, à: 18/03/10 08:35
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 4 jours #6390
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Explications sur les .net ?
Salut,
noir28 écrit:
noir28 écrit:
noir28 écrit:
Mais je pense que pour les plus courantes on les apprend sans trop savoir ce que cela fait, c'est en quelque sorte un apprentissage itératif.
Il faut regarder du coté des espaces de noms .
Un point d'entrée .
noir28 écrit:
Pas comprisPeut t'on m'expliquer le fonctionnement de ce dernier avec des mots simples et ensuite comment savoir que notre variable que nous allons créer ex:
noir28 écrit:
Si on débute sous dotnet on ne peut pas vraiment le savoir, mais la trouver après qq recherches.comment savoir quelle classe nous devons appeller ?
noir28 écrit:
Il faut déjà avoir une idée du traitement ciblé.Y'a t'il une méthode afin de la determiné et la trouver facilement ?
Mais je pense que pour les plus courantes on les apprend sans trop savoir ce que cela fait, c'est en quelque sorte un apprentissage itératif.
Il faut regarder du coté des espaces de noms .
Un point d'entrée .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- crouzille
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 34
- Remerciements reçus 0
il y a 16 ans 2 jours #6399
par crouzille
Réponse de crouzille sur le sujet Re:Explications sur les .net ?
C'est vrai que ca aide 
J'ai un exemple, je souhaiterai récuperer l'adresse mac.
Donc pour cela j'ai parcouru le site en question et j'ai trouvé:
system.net.networkInformation
Donc ceci est l'espace de nom ?
Ensuite en regardant dedans j'ai trouvé la classe (qui si j'ai bien compris correspond aux infos) physicalAdresse
(Ps: Les méthode ==> action
Propriété ==> Infos
Type ==> catégorie
C'est un truc comme ca?)
Donc afin d'avoir l'adresse mac, j'ai procéder comme suit:
$adresse = new-object system.net.networkInformation.physicalAdresse
et
$adresse = new-object system.net.networkInformation
Pour ensuite faire $adresse.physicalAdresse
Mais aucun des deux ne marche
J'essaye de comprendre mais c'est pas facile, peut t'on m'eclairer sur le sujet?
Merci d'avance
J'ai un exemple, je souhaiterai récuperer l'adresse mac.
Donc pour cela j'ai parcouru le site en question et j'ai trouvé:
system.net.networkInformation
Donc ceci est l'espace de nom ?
Ensuite en regardant dedans j'ai trouvé la classe (qui si j'ai bien compris correspond aux infos) physicalAdresse
(Ps: Les méthode ==> action
Propriété ==> Infos
Type ==> catégorie
C'est un truc comme ca?)
Donc afin d'avoir l'adresse mac, j'ai procéder comme suit:
$adresse = new-object system.net.networkInformation.physicalAdresse
et
$adresse = new-object system.net.networkInformation
Pour ensuite faire $adresse.physicalAdresse
Mais aucun des deux ne marche
J'essaye de comprendre mais c'est pas facile, peut t'on m'eclairer sur le sujet?
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 2 jours #6401
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Explications sur les .net ?
noir28 écrit:
noir28 écrit:
Pour le terme Type on utilise aussi le terme de Classe (classer est apparenté à catégoriser).
noir28 écrit:
\"Avoir\", c'est à dire obtenir, est une action, il faut donc effectuer un traitement pour placer l'information (l'adresse MAC) dans le conteneur. Si on suit l'approche de PowerShell (un shell basé objet) on doit plutot faire qq chose comme :
[code:1]
$Conteneur=Get-MacAddress
[/code:1]
Une fois ce pseudo code défini, on recherche sur le net, notamment sur poshcode.org où on peut y trouver + approches.
Ou adapter le code C# de l'exemple suivant :
[code:1]
function Get-MacAddress()
{
$computerProperties = [System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()
$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
if (($nics -eq $null) -or ($nics.Length -lt 1))
{
Write-Host \" No network interfaces found.\"
}
$addresses = @() #new-object PhysicalAddress[nics.Length]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_.GetPhysicalAddress()
}
}
$Conteneur=Get-MacAddress
$Conteneur
[/code:1]
On obtient une liste d'adresses MAC.
Premier constat, ce n'est pas utilisable en l'état, il faudrait ajouter le nom de machine concerné et un identifiant lisible pour chaque adresse.
Le développement logiciel est une question d'organisation d'idée, certes mécanique (actionné par une machine); Et comme PS est bien conçu, reste à modifier au moins 1 ligne :
[code:1]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_|Select @{Name=\"Computername\";Expression={\"LocalHost\"}},@{n=\"ID\";e={$_.ID}},@{n=\"MAC\";e={$_.GetPhysicalAddress()}}
}
[/code:1]
WMI propose la classe Win32_NetworkAdapterConfiguration qui évite ce type de tâche.
Tu as le début de la pelote, je te laisse tirer le fil
Ouisystem.net.networkInformation
Donc ceci est l'espace de nom ?
noir28 écrit:
C'est plus qu'un truc comme ça, c'est cela!Ps: Les méthode ==> action
Propriété ==> Infos
Type ==> catégorie
C'est un truc comme ca?
Pour le terme Type on utilise aussi le terme de Classe (classer est apparenté à catégoriser).
noir28 écrit:
C'est là que tu trompes, la classe que tu utilises représente (contient) une adresse MAC, c'est juste un conteneur.Donc afin d'avoir l'adresse mac, j'ai procéder comme suit:
\"Avoir\", c'est à dire obtenir, est une action, il faut donc effectuer un traitement pour placer l'information (l'adresse MAC) dans le conteneur. Si on suit l'approche de PowerShell (un shell basé objet) on doit plutot faire qq chose comme :
[code:1]
$Conteneur=Get-MacAddress
[/code:1]
Une fois ce pseudo code défini, on recherche sur le net, notamment sur poshcode.org où on peut y trouver + approches.
Ou adapter le code C# de l'exemple suivant :
[code:1]
function Get-MacAddress()
{
$computerProperties = [System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()
$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
if (($nics -eq $null) -or ($nics.Length -lt 1))
{
Write-Host \" No network interfaces found.\"
}
$addresses = @() #new-object PhysicalAddress[nics.Length]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_.GetPhysicalAddress()
}
}
$Conteneur=Get-MacAddress
$Conteneur
[/code:1]
On obtient une liste d'adresses MAC.
Premier constat, ce n'est pas utilisable en l'état, il faudrait ajouter le nom de machine concerné et un identifiant lisible pour chaque adresse.
Le développement logiciel est une question d'organisation d'idée, certes mécanique (actionné par une machine); Et comme PS est bien conçu, reste à modifier au moins 1 ligne :
[code:1]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_|Select @{Name=\"Computername\";Expression={\"LocalHost\"}},@{n=\"ID\";e={$_.ID}},@{n=\"MAC\";e={$_.GetPhysicalAddress()}}
}
[/code:1]
WMI propose la classe Win32_NetworkAdapterConfiguration qui évite ce type de tâche.
Tu as le début de la pelote, je te laisse tirer le fil
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Explications sur les classes .NET ?