- forum
- PowerShell
- Entraide pour les initiés
- Problème pour récupérer des variables depuis une interface
Résolu Problème pour récupérer des variables depuis une interface
- Matthieu
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 36
- Remerciements reçus 0
il y a 2 ans 1 mois - il y a 2 ans 1 mois #33923
par Matthieu
Bon j'ai pas mal avancé mais j'ai un soucis à la fin de mon script. Mes variables $RemoteComputer, $FilePath et $argumentsMSI sont vides...
Pourtant, dans mon script j'ai bien mis :
$RemoteComputer = $textboxMachineName.Text
$FilePath = $textboxFilePath.Text
$argumentsMSI = $textboxArgumentsMSI.Text
et mes variables $textboxMachineName.Text, $textboxFilePath.Text et $textboxArgumentsMSI.Text sont bien renseignées avec les valeurs que j'ai saisies dans l'interface graphique...
Pourtant, dans mon script j'ai bien mis :
$RemoteComputer = $textboxMachineName.Text
$FilePath = $textboxFilePath.Text
$argumentsMSI = $textboxArgumentsMSI.Text
et mes variables $textboxMachineName.Text, $textboxFilePath.Text et $textboxArgumentsMSI.Text sont bien renseignées avec les valeurs que j'ai saisies dans l'interface graphique...
# Importation de la librairie
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
# Création de l'objet de formulaire
$form = New-Object System.Windows.Forms.Form
$form.Text = "Télédistribution"
$form.Size = New-Object System.Drawing.Size(600,230)
$form.StartPosition = "CenterScreen"
# Champ pour saisir le nom de la machine
$labelMachineName = New-Object System.Windows.Forms.Label
$labelMachineName.Text = "Nom de la machine ou adresse IP :"
$labelMachineName.Location = New-Object System.Drawing.Point(10,20)
$labelMachineName.AutoSize="$true"
$form.Controls.Add($labelMachineName)
$textboxMachineName = New-Object System.Windows.Forms.TextBox
$textboxMachineName.Location = New-Object System.Drawing.Point(190,15)
$textboxMachineName.Width=380
$form.Controls.Add($textboxMachineName)
# Bouton pour parcourir et sélectionner le fichier MSI
$labelFilePath = New-Object System.Windows.Forms.Label
$labelFilePath.Text = "Fichier MSI :"
$labelFilePath.Location = New-Object System.Drawing.Point(10,50)
$labelFilePath.AutoSize="$true"
$form.Controls.Add($labelFilePath)
$buttonBrowse = New-Object System.Windows.Forms.Button
$buttonBrowse.Text = "Parcourir"
$buttonBrowse.Location = New-Object System.Drawing.Point(190,45)
$buttonBrowse.Add_Click({
$openFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$openFileDialog.Filter = "Fichiers MSI (*.msi)|*.msi|Tous les fichiers (*.*)|*.*"
$openFileDialog.Title = "Sélectionnez un fichier MSI"
if ($openFileDialog.ShowDialog() -eq 'OK') {
$textboxFilePath.Text = $openFileDialog.FileName
}
})
$form.Controls.Add($buttonBrowse)
$textboxFilePath = New-Object System.Windows.Forms.TextBox
$textboxFilePath.Location = New-Object System.Drawing.Point(190,75)
$textboxFilePath.Width=380
$textboxFilePath.ReadOnly = $true
$form.Controls.Add($textboxFilePath)
# Champ pour saisir des arguments du fichier MSI
$labelArgumentsMSI = New-Object System.Windows.Forms.Label
$labelArgumentsMSI.Text = "Arguments du fichier MSI:"
$labelArgumentsMSI.Location = New-Object System.Drawing.Point(10,110)
$labelArgumentsMSI.AutoSize="$True"
$form.Controls.Add($labelArgumentsMSI)
$textboxArgumentsMSI = New-Object System.Windows.Forms.TextBox
$textboxArgumentsMSI.Location = New-Object System.Drawing.Point(190,105)
$textboxArgumentsMSI.Width=380
$form.Controls.Add($textboxArgumentsMSI)
# Bouton OK pour valider et fermer le formulaire
$buttonOK = New-Object System.Windows.Forms.Button
$buttonOK.Text = "Lancer la télédistribution"
$buttonOK.Location = New-Object System.Drawing.Point(410,145)
$buttonOK.AutoSize="$true"
$buttonOK.Add_Click({
$RemoteComputer = $textboxMachineName.Text
$FilePath = $textboxFilePath.Text
$argumentsMSI = $textboxArgumentsMSI.Text
$form.Close()
})
$form.Controls.Add($buttonOK)
# Affichage du formulaire
$form.ShowDialog()
Dernière édition: il y a 2 ans 1 mois par Matthieu.
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 146
- Remerciements reçus 22
il y a 2 ans 1 mois #33926
par Fabien
Réponse de Fabien sur le sujet Problème pour récupérer des variables depuis une interface
Matthieu,
Dans ton script, le problème est la portée de tes variables.
Les variables que tu déclares ont une portée limitée à ton ScriptBlock : $buttonOK.Add_Click({
Pour récupérer tes variables dans ton script, il faut les déclarer sous la forme suivante :
Dans ton script, le problème est la portée de tes variables.
Les variables que tu déclares ont une portée limitée à ton ScriptBlock : $buttonOK.Add_Click({
Pour récupérer tes variables dans ton script, il faut les déclarer sous la forme suivante :
$buttonOK.Add_Click({
$Script:RemoteComputer = $textboxMachineName.Text
$Script:FilePath = $textboxFilePath.Text
$Script:argumentsMSI = $textboxArgumentsMSI.Text
$form.Close()
})Connexion ou Créer un compte pour participer à la conversation.
- Matthieu
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 36
- Remerciements reçus 0
il y a 2 ans 1 mois #33927
par Matthieu
Réponse de Matthieu sur le sujet Problème pour récupérer des variables depuis une interface
Merci ça fonctionne mais je n'ai pas compris...
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 146
- Remerciements reçus 22
il y a 2 ans 1 mois #33928
par Fabien
Réponse de Fabien sur le sujet Problème pour récupérer des variables depuis une interface
Les utilisateur(s) suivant ont remercié: Matthieu
Connexion ou Créer un compte pour participer à la conversation.
- Fabien
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 146
- Remerciements reçus 22
il y a 2 ans 1 mois #33929
par Fabien
Réponse de Fabien sur le sujet Problème pour récupérer des variables depuis une interface
Voici un lien qui t'explique cette notion de portée de variable :
www.varonis.com/fr/blog/portee-variable-powershell
www.varonis.com/fr/blog/portee-variable-powershell
Les utilisateur(s) suivant ont remercié: Matthieu
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les initiés
- Problème pour récupérer des variables depuis une interface
Temps de génération de la page : 0.059 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Problème pour récupérer des variables depuis une interface