Question [Résolu] Erreur dans un textbox

Plus d'informations
il y a 9 ans 2 mois #23288 par flavien
Bonjour,

J'ai un problème pour afficher le résultat d'une commande dans une textbox. En effet, je désire seulement obtenir l'adresse du MAC du poste dans le champs.

Le message d'erreur est le suivant.
[code:1]Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData[/code:1]

Voici mon code:

[code:1]Add-Type -AssemblyName PresentationFramework, PresentationCore, WindowsBase

[xml]$XAML =@'
<Window

xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\";
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\";
Title=\"MainWindow\" Height=\"555\" Width=\"854\">
<Grid>
<Label Content=\"Verification matériel pc\" Height=\"32\" HorizontalAlignment=\"Left\" Margin=\"330,0,0,0\" Name=\"Label1\" VerticalAlignment=\"Top\" Width=\"184\" FontSize=\"14\" FontWeight=\"Bold\" FontStyle=\"Normal\" />
<Label Content=\"Designation\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,142,0,0\" Name=\"LBL_DESIGNATION_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"165,142,0,0\" Name=\"TXT_DESIGNATION_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Model\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,184,0,0\" Name=\"LBL_MODELE_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"165,184,0,0\" Name=\"TXT_MODEL_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Serial Number\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,226,0,0\" Name=\"LBL_SERIALNUMBER_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"165,226,0,0\" Name=\"TXT_SERIALNUMBER_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Asset tag\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"12,75,0,0\" Name=\"LBL_ASSETTAG_1\" VerticalAlignment=\"Top\" Width=\"63\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"74,77,0,0\" Name=\"TXT_ASSETTAG_1\" VerticalAlignment=\"Top\" Width=\"170\" />
<Label Content=\"Hostname\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"245,75,0,0\" Name=\"LBL_HOSTNAME_1\" VerticalAlignment=\"Top\" Width=\"85\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"313,77,0,0\" Name=\"TXT_HOSTNAME_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Processor\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,268,0,0\" Name=\"LBL_PROCESSOR_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"165,268,0,0\" Name=\"TXT_PROCESSOR_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"RAM\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,310,0,0\" Name=\"LBL_RAM_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"165,310,0,0\" Name=\"TXT_RAM_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Hard Disk\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"47,352,0,0\" Name=\"LBL_HARDDISK_1\" VerticalAlignment=\"Top\" Width=\"112\" />
<Label Content=\"MAC Address\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"524,75,0,0\" Name=\"LBL_MACADRESS_1\" VerticalAlignment=\"Top\" Width=\"85\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Right\" Margin=\"0,77,22,0\" Name=\"TXT_MACADRESS_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<TextBox Height=\"68\" HorizontalAlignment=\"Left\" Margin=\"165,352,0,0\" Name=\"TXT_HARDDISK_1\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Designation\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"447,142,0,0\" Name=\"LBL_DESIGNATION_2\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"565,142,0,0\" Name=\"TXT_DESIGNATION2\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Model\" Height=\"25\" HorizontalAlignment=\"Right\" Margin=\"0,184,273,0\" Name=\"LBL_MODEL_2\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"565,184,0,0\" Name=\"TXT_MODEL_2\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Processor\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"447,268,0,0\" Name=\"LBL_PROCESSOR2\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"565,268,0,0\" Name=\"TXT_PROCESSOR_2\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"RAM\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"447,310,0,0\" Name=\"LBL_RAM_2\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"565,310,0,0\" Name=\"TXT_RAM_2\" VerticalAlignment=\"Top\" Width=\"209\" />
<Label Content=\"Hard Disk\" Height=\"25\" HorizontalAlignment=\"Left\" Margin=\"447,352,0,0\" Name=\"LBL_HARDDISK_2\" VerticalAlignment=\"Top\" Width=\"112\" />
<TextBox Height=\"68\" HorizontalAlignment=\"Left\" Margin=\"565,352,0,0\" Name=\"TXT_HARDDISK_2\" VerticalAlignment=\"Top\" Width=\"209\" />
<GroupBox Header=\"Actual configuration\" Height=\"325\" HorizontalAlignment=\"Left\" Margin=\"35,119,0,0\" Name=\"GroupBox1\" VerticalAlignment=\"Top\" Width=\"367\">
<Grid></Grid>
</GroupBox>
<GroupBox Header=\"Basic configuration\" Height=\"325\" HorizontalAlignment=\"Left\" Margin=\"433,119,0,0\" VerticalAlignment=\"Top\" Width=\"367\" Name=\"GroupBox2\">
<Grid />
</GroupBox>
<Button Content=\"Save \" Height=\"31\" HorizontalAlignment=\"Left\" Margin=\"258,464,0,0\" Name=\"BTN_SAVE\" VerticalAlignment=\"Top\" Width=\"138\" />
<Button Content=\"Quitter\" Height=\"31\" HorizontalAlignment=\"Left\" Margin=\"439,464,0,0\" Name=\"BTN_QUITTER\" VerticalAlignment=\"Top\" Width=\"138\" />
</Grid>
</Window>
'@

$reader = New-Object System.Xml.XmlNodeReader $XAML
$Form = [Windows.Markup.XamlReader]::Load($reader)

############Declaration des variables pour les commandes

$vComputerName = (Get-Item env:\Computername).Value ## hostname
$vComputerName2 = (Get-WmiObject win32_computersystemproduct).version ## designation
$vModel1 = (Get-WmiObject win32_computersystemproduct).name ## nom du modèle
$vSerialNumber1 = (Get-WmiObject win32_computersystemproduct).identifyingNumber
$vMacadress1 = Get-WmiObject Win32_NetworkAdapter | ? {$_.NetConnectionID -match \"local\"} | Format-Wide MACAddress

############Declaration des Variables
#3 Premieres Textbox
$Textbox_AssetTag_1 = $form.findname('TXT_ASSETTAG_1')
$Textbox_SerialNumber_1 = $form.findname('TXT_SERIALNUMBER_1')
$Textbox_MacAdress_1 = $form.findname('TXT_MACADRESS_1')

#colonne Basic Configuration
$Textbox_Designation_1 = $form.Findname('TXT_DESIGNATION_1')
$Textbox_Model_1 = $form.findname('TXT_MODEL_1')
$Textbox_Processor_1 = $form.findname('TXT_PROCESSOR_1')
$Textbox_Ram_1 = $form.findname('TXT_RAM_1')
$Textbox_HardDisk_1 = $form.findname('TXT_HARDDISK_1')


#colonne Actual Configuration
$Textbox_Designation_2 = $form.Findname('TXT_DESIGNATION_2')
$Textbox_Model_2 = $form.findname('TXT_MODEL_2')
$Textbox_Processor_2 = $form.findname('TXT_PROCESSOR_2')
$Textbox_Ram_2 = $form.findname('TXT_RAM_2')
$Textbox_HardDisk_2 = $form.findname('TXT_HARDDISK_2')

$Textbox_Hostname_1.text = $vComputerName
$Textbox_MacAdress_1.text = $vMacadress1
$Textbox_Designation_1.text = $vComputerName2
$Textbox_Model_1.text = $vModel1
$Textbox_SerialNumber_1.text = $vSerialNumber1



$Form.showdialog() | Out-Null[/code:1]

Merci d'avance pour votre aide.


Message édité par: Arnaud, à: 13/03/17 14:20<br><br>Message édité par: Arnaud, à: 13/03/17 14:24

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

Plus d'informations
il y a 9 ans 2 mois #23290 par Marc
Réponse de Marc sur le sujet Re:erreur in textbox
Salut,
ton problème est ici:

[code:1]$vMacadress1 = Get-WmiObject Win32_NetworkAdapter | ? {$_.NetConnectionID -match \&quot;local\&quot;} | Format-Wide MACAddress
[/code:1]

Tu formate la sortie de ta commande la commande Format sert juste pour la sortie console elle est inexploitable dans le pipeline (pour ce que tu veux en faire en tout cas).

Ta textbox attend plutôt un truc du genre:
[code:1]
$vMacadress1 = (Get-WmiObject Win32_NetworkAdapter | ? {$_.NetConnectionID -match \&quot;local\&quot;}).MACAddress
[/code:1]

Tu risque aussi d'avoir un problème si tu as plusieurs adaptateur qui match \&quot;local\&quot;, je te laisse y réfléchir ;)<br><br>Message édité par: marcci, à: 13/03/17 13:06

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

Plus d'informations
il y a 9 ans 2 mois #23291 par flavien
Réponse de flavien sur le sujet Re:erreur in textbox
Super, merci pour ton aide, je pensais qu'on devait formater le texte également, du coup, j'ai mon résultat souhaité. Je vais rajouter dans mon filtre une condition dans le cas où j'ai plusieurs cartes qui match en local.

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

Plus d'informations
il y a 9 ans 2 mois #23292 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:erreur in textbox
Hello,

Le plus important à retenir c'est qu'il ne faut jamais (dans 99,9% des cas) utiliser de commandes de formatage (du genre Format-Table, Format-List, etc.) dans un script.

Celles-ci sont faites uniquement pour du mode interactif dans la console afin de faciliter la compréhension des données manipulées.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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