Résolu WinForm - TextBox

Plus d'informations
il y a 2 ans 2 mois - il y a 2 ans 2 mois #31705 par axel
WinForm - TextBox a été créé par axel
Bonjour à tous,
Je suis confronté à un petit problème que je n'arrive pas à résoudre. Pouvez-vous m'aider SVP ?
Que je vous explique : je travaille sur un WinForm pour pouvoir installer de nouveau ordinateur en permettant tous les postes de la même façon. Le but étant d'uniformiser les installations en utilisant un visuel graphique pour que ce soit plus simple pour tout le monde.
Et donc voici une partie de mon code
$Form = New-Object System.Windows.Forms.Form
$Hostname_textBox = New-Object System.Windows.Forms.TextBox
Hostname_textBox.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 109
$System_Drawing_Point.Y = 15
$Hostname_textBox.Location = $System_Drawing_Point
$Hostname_textBox.Name = "Hostname_textBox"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 100
$Hostname_textBox.Size = $System_Drawing_Size
$Hostname_textBox.TabIndex = 2
$Hostname_textBox.TextAlign = 2
$Hostname_textBox.text = [system.environment]::MachineName
$Hostname_textBox.MaxLength = 16

$Form.Controls.Add($Hostname_textBox)

$OK_button.DataBindings.DefaultDataSourceUpdateMode = 0

$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 217
$System_Drawing_Point.Y = 12
$OK_button.Location = $System_Drawing_Point
$OK_button.Name = "OK_button"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 57
$OK_button.Size = $System_Drawing_Size
$OK_button.TabIndex = 25
$OK_button.Text = "OK"
$OK_button.UseVisualStyleBackColor = $True
$OK_button.add_Click($OK_button_OnClick)

$Form.Controls.Add($OK_button)

$OK_button_OnClick= {
Rename-Computer -Newname $Hostname_textBox -Force
}



Et donc quand je clic sur le bouton OK, il me met le message d'erreur suivant:
Rename-Computer : Ignorez l’ordinateur «Laptop1» dont le nouveau nom est «System.Windows.Forms.TextBox, Text: PC-01» car ce dernier n’est pas valide. Le format du nouveau nom d’ordinateur est incorrect. Les noms standard peuvent 
contenir des lettres (a-z, A-Z), des chiffres (0-9) et des tirets (-), mais pas d’espaces ou de points (.). Le nom ne peut pas se constituer entièrement de chiffres et contenir plus de 63caractères.
J'avoue que je n'arrive pas bien a comprendre pourquoi il me refuse le renommage de l'ordinateur
Dernière édition: il y a 2 ans 2 mois par axel.

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

Plus d'informations
il y a 2 ans 2 mois #31712 par Philippe
Réponse de Philippe sur le sujet WinForm - TextBox
salut Axel

c'est très probablement un problème de portée de variable ,
essai avec $script:Hostname_textBox
Les utilisateur(s) suivant ont remercié: axel

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

Plus d'informations
il y a 2 ans 2 mois #31713 par axel
Réponse de axel sur le sujet WinForm - TextBox
Salut Philippe
Merci pour l'info et voici ce que j'ai mis:
OK_button_OnClick= {
Rename-Computer -Newname $Script:Hostname_textBox
}
Mais lorsque j'exécute, il me met
Rename-Computer : Impossible de valider l'argument sur le paramètre « NewName ». L’argument est Null ou vide. Indiquez un argument qui n’est pas Null ou vide et réessayez.
+ Rename-Computer -Newname $Script:Hostname_textBox
+                          ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData : (:) [Rename-Computer], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.RenameComputerCommand
Il est possible que je n'ai pas tout compris sur la portée de variable

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

Plus d'informations
il y a 2 ans 2 mois - il y a 2 ans 2 mois #31717 par ericlm128
Réponse de ericlm128 sur le sujet WinForm - TextBox
Rename-Computer -Newname $Hostname_textBox.Text -Force
Dernière édition: il y a 2 ans 2 mois par ericlm128.

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

Plus d'informations
il y a 2 ans 1 mois #31731 par axel
Réponse de axel sur le sujet WinForm - TextBox
Super ! Merci cela fonctionne parfaitement.
Maintenant si je souhaite que le changement du hostname se fasse en fonction d'un ComboBox c’est-à-dire:
Prenons un exemple, le PC est pour la compta, je crée un combBox
$service = New-Object System.Windows.Forms.ComboBox
Puis je crée une liste
$Client.DataBindings.DefaultDataSourceUpdateMode = 0
$service.FormattingEnabled = $True
$service.Items.Add("compta")|Out-Null
$service.Items.Add("direction")|Out-Null
$service .Items.Add("direction")|Out-Null
J'aimerais que mon hostname commence par un trigramme du service choisi
Une idée ?
 

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

Plus d'informations
il y a 2 ans 1 mois #31735 par ericlm128
Réponse de ericlm128 sur le sujet WinForm - TextBox
Voici un exemple simple
$Form = New-Object System.Windows.Forms.Form
$Hostname_textBox = New-Object System.Windows.Forms.TextBox
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 109
$System_Drawing_Point.Y = 12
$Hostname_textBox.Location = $System_Drawing_Point
$Hostname_textBox.Name = "Hostname_textBox"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 20
$System_Drawing_Size.Width = 100
$Hostname_textBox.Size = $System_Drawing_Size
$Hostname_textBox.TabIndex = 2
$Hostname_textBox.TextAlign = 2
$Hostname_textBox.text = [system.environment]::MachineName
$Hostname_textBox.MaxLength = 16



$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 217
$System_Drawing_Point.Y = 12

$OK_button = New-Object System.Windows.Forms.Button
$OK_button.Location = $System_Drawing_Point
$OK_button.Name = "OK_button"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 57
$OK_button.Size = $System_Drawing_Size
$OK_button.TabIndex = 25
$OK_button.Text = "OK"
$OK_button.add_Click($OK_button_OnClick)

$OK_button_OnClick= {
    #Rename-Computer -Newname $Hostname_textBox -Force
    if ($combobox.SelectedItem)
    {
        # Récupère le Trigramme de l'objet selectionné
        Write-Host "$($combobox.SelectedItem.Trigramme.ToString())#$($Hostname_textBox.Text)"
    }
}

$combobox = New-Object System.Windows.Forms.ComboBox
$combobox.Location = New-Object System.Drawing.Point(109, 40)
$combobox.Size = New-Object System.Drawing.Size(150, 23)
$combobox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDownList
# Membre à afficher
$combobox.DisplayMember = "Name"

# crée la liste
$a = @("compta", "CPT"), @("direction", "DIR")

# Peuple la combobox
$a | ForEach-Object {
    $obj = [PSCustomObject]@{
        Name     = $_[0]
        Trigramme = $_[1]}
    $null = $combobox.Items.Add($obj)
}

$Form.Controls.Add($Hostname_textBox)
$Form.Controls.Add($OK_button)
$Form.Controls.Add($combobox)


$Form.ShowDialog()

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

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