Pas d'espace lors d'un retour chariot

Résolu/Fermé
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021 - Modifié le 13 janv. 2021 à 10:00
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021 - 13 janv. 2021 à 15:41
Bonjour à tous,

Je m'entraine sur Powershell en développant un petit script qui permet de récupérer les infos systèmes.
Jusqu'ici tout va bien sauf que quand je fais un retour chariot au niveau de l'affichage des addresses IP , addresses MAC et DNS il y a un petit espace avant chaque retour à la ligne et je ne comprends pas pourquoi.

Voici mon code:

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$NomUtilisateur = [System.Environment]::UserName
$NomPC = [System.Environment]::MachineName
$Ram = (Get-CimInstance Win32_Computersystem).TotalPhysicalMemory /1GB
$Ram = [Math]::Round($Ram)
$VersionSysteme = Get-CimInstance Win32_OperatingSystem | Select-Object Caption, BuildNumber, OSArchitecture
$AdresseIP = Get-NetIPAddress -InterfaceAlias "Ethernet*" -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress
$AdresseMac = Get-NetAdapter -Name "Ethernet*" | Select-Object InterfaceAlias, MacAddress
$DNS = Get-DnsClientServerAddress -InterfaceAlias "Ethernet*" -AddressFamily IPv4 | Select-Object InterfaceAlias, ServerAddresses
$HardDrive = (Get-CimInstance Win32_DiskDrive) | Select-Object Caption, @{Name="Size(GB)"; Expression={"{0:N1}" -f($_.size/1gb)}}
$Model = Get-CimInstance Win32_Computersystem | Select-Object Manufacturer, Model
$SerialNumber = (Get-CimInstance Win32_BIOS).SerialNumber

$TailleTexte = New-Object System.Drawing.Font("Arial","10", [System.Drawing.FontStyle]::Bold)     
$Fenetre = New-Object System.Windows.Forms.Form                                                   


$Fenetre.Width = "800"
$Fenetre.Height = "500"
$Fenetre.Text = "Informations Systeme"
$Fenetre.MaximizeBox = $false

$LabelInfoSysteme = New-Object System.windows.Forms.Label
$LabelInfoSysteme.Location = New-Object System.Drawing.Point(10,10)
$LabelInfoSysteme.Autosize = $true
$Fenetre.Controls.Add($LabelInfoSysteme)
$LabelInfoSysteme.Text = "Informations Systeme"
$LabelInfoSysteme.Font = $TailleTexte

$LabelNomUtilisateur = New-Object System.Windows.Forms.Label
$LabelNomUtilisateur.Location = New-Object System.Drawing.Point(20,30)
$LabelNomUtilisateur.AutoSize = $true
$LabelNomUtilisateur.Text = "Nom d'utilisateur : $($NomUtilisateur)"
$Fenetre.Controls.Add($LabelNomUtilisateur)

$LabelNomPC = New-Object System.Windows.Forms.Label
$LabelNomPC.Location = New-Object System.Drawing.Point(20,50)
$LabelNomPC.AutoSize = $true
$LabelNomPC.Text = "Nom du PC : $($NomPC)"
$Fenetre.Controls.Add($LabelNomPC)

$LabelRam = New-Object System.Windows.Forms.Label
$LabelRam.Location = New-Object System.Drawing.Point(20,70)
$LabelRam.AutoSize = $true
$LabelRam.Text = "Ram Totale : $($Ram) GO"
$Fenetre.Controls.Add($LabelRam)

$LabelVersionSysteme = New-Object System.Windows.Forms.Label
$LabelVersionSysteme.Location = New-Object System.Drawing.Point(20,90)
$LabelVersionSysteme.AutoSize = $true
$LabelVersionSysteme.Text = "Version du systeme : $($VersionSysteme.Caption)", "$($VersionSysteme.OSArchitecture)" , "$($VersionSysteme.BuildNumber)"
$Fenetre.Controls.Add($LabelVersionSysteme)

$InfosReseau = New-Object System.Windows.Forms.Label
$InfosReseau.Location = New-Object System.Drawing.Point(10,110)
$InfosReseau.AutoSize = $true
$InfosReseau.Text = "Informations Reseau"
$InfosReseau.Font = $TailleTexte
$Fenetre.Controls.Add($InfosReseau)

$LabelAdresseIP = New-Object System.Windows.Forms.Label
$LabelAdresseIP.Location = New-Object System.Drawing.Point(20,130)
$LabelAdresseIP.AutoSize = $true
$LabelAdresseIP.Text = Foreach($AdresseIP in $AdresseIP){"Adresse IP $($AdresseIP.InterfaceAlias):","$($AdresseIP.IPAddress)`n"}
$Fenetre.Controls.Add($LabelAdresseIP)

$LabelAdresseMAC = New-Object System.Windows.Forms.Label
$LabelAdresseMAC.Location = New-Object System.Drawing.Point(20,170)
$LabelAdresseMAC.AutoSize = $true
$LabelAdresseMAC.Text = ForEach ($AdresseMac in $AdresseMac){"Adresse MAC $($AdresseMac.InterfaceAlias):","$($AdresseMac.MacAddress)`n"}
$Fenetre.Controls.Add($LabelAdresseMAC)

$LabelDNS = New-Object System.Windows.Forms.Label
$LabelDNS.Location = New-Object System.Drawing.Point(20,230)
$LabelDNS.AutoSize = $true
$LabelDNS.Text = ForEach($DNS in $DNS){"DNS $($DNS.InterfaceAlias)","$($DNS.ServerAddresses)`n"}
$Fenetre.Controls.Add($LabelDNS)

$DisquesDur = New-Object System.Windows.Forms.Label
$DisquesDur.Location = New-Object System.Drawing.Point(10,280)
$DisquesDur.AutoSize = $true
$DisquesDur.Text = "Disques dur"
$DisquesDur.Font = $TailleTexte
$Fenetre.Controls.Add($DisquesDur)

$LabelHardDriveSize = New-Object System.Windows.Forms.Label
$LabelHardDriveSize.Location = New-Object System.Drawing.Point(20,300)
$LabelHardDriveSize.AutoSize = $true
$LabelHardDriveSize.Text = ForEAch($HardDrive in $HardDrive){"$($HardDrive.Caption):","$($HardDrive.'Size(GB)') GO`n"}
$Fenetre.Controls.Add($LabelHardDriveSize)

$InfosPoste = New-Object System.Windows.Forms.Label
$InfosPoste.Location = New-Object System.Drawing.Point(10,370)
$InfosPoste.AutoSize = $true
$InfosPoste.Text = "Informations Poste"
$InfosPoste.Font = $TailleTexte
$Fenetre.Controls.Add($InfosPoste)

$LabelBrand = New-Object System.Windows.Forms.Label
$LabelBrand.Location = New-Object System.Drawing.Point(20,390)
$LabelBrand.AutoSize = $true
$LabelBrand.Text = "Marque : $($Model.Manufacturer)"
$Fenetre.Controls.Add($LabelBrand)

$LabelModel = New-Object System.Windows.Forms.Label
$LabelModel.Location = New-Object System.Drawing.Point(20,410)
$LabelModel.AutoSize = $true
$LabelModel.Text = "Modele : $($Model.Model)"
$Fenetre.Controls.Add($LabelModel)

$LabelSerialNumber = New-Object System.Windows.Forms.Label
$LabelSerialNumber.Location = New-Object System.Drawing.Point(20,430)
$LabelSerialNumber.AutoSize = $true
$LabelSerialNumber.Text = "Numero de serie : $($SerialNumber)"
$Fenetre.Controls.Add($LabelSerialNumber)

$Fenetre.ShowDialog()

J'ai également essayé avec `r puis `r`n mais c'est pareil hélas.

Merci d'avance :)


Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE

3 réponses

yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
13 janv. 2021 à 11:36
bonjour,
il est préférable, avant de partager ton code ici, de le simplifier au maximum afin de nous montrer un petit code qui démontre le problème.
moi j'essaierais
$LabelAdresseIP.Text = Foreach($AdresseIP in $AdresseIP){"Adresse IP $($AdresseIP.InterfaceAlias):","$($AdresseIP.IPAddress)|`n"}

afin de déterminer où se trouve l'espace
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
13 janv. 2021 à 13:14
en passant, je suis étonné du double usage du nom $AdresseIP. il me semble que d'habitude, on écrit plutôt ainsi:
$LabelAdresseIP.Text = Foreach($AdIP in $AdresseIP){"Adresse IP $($AdIP.InterfaceAlias):","$($AdIP.IPAddress)|`n"}
0
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021
13 janv. 2021 à 11:59
Bonjour,

Merci de ta réponse, alors j'ai fait ce que tu m'as dit mais comme je me doutais il me rajoute ça comme ça du coup:
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551
13 janv. 2021 à 13:08
et l'espace est donc bien après la barre verticale?
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024
13 janv. 2021 à 13:09
ou bien l'espace est après le passage à la ligne, en début de la ligne suivante?
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024
13 janv. 2021 à 13:19
moi, pour comprendre ce qui se passe, je testerais ceci
Foreach($AdIP in $AdresseIP){"a"}

et cela
Foreach($AdIP in $AdresseIP){"A`nB`n"}
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 Ambassadeur 1 551
13 janv. 2021 à 14:43
suggestion:
$listip=""
Foreach($IP in $AdresseIP){
	$listip=$listip + "Adresse IP $($IP.InterfaceAlias): $($IP.IPAddress)`n"
}
$LabelAdresseIP.Text = $listip
0
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021
13 janv. 2021 à 14:52
Effectivement ça fonctionne comme ça. Merci beaucoup.
Celà dit je comprends pas pourquoi ça ne fonctionne pas avec méthode, mystère ^^

Merci encore ;)
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021
Modifié le 13 janv. 2021 à 15:32
c'est tout simple, comme tu l'as vu en testant
Foreach($AdIP in $AdresseIP){"a"}

cette construction ajoute un espace à chaque tour de boucle.
et, pas de chance, cet espace ce retrouve en début de ligne, donc est très visible.
0
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021 > yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024
13 janv. 2021 à 15:36
Ah ok merci :)
0
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 1 551 > blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021
13 janv. 2021 à 15:40
pourras-tu marquer la discussion comme résolue?
0
blop135 Messages postés 14 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 13 janvier 2021 > yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024
13 janv. 2021 à 15:41
Oui pas de soucis, c'est fait.
0