Question
Bouton annuler qui ne fonctionne pas
- kuillaume
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 13 ans 4 mois #13098
par kuillaume
Bouton annuler qui ne fonctionne pas a été créé par kuillaume
Bonjour à tous,
Je suis nouveau ici et débutant en Powershell.
J'ai beau chercher mais je bloque sur quelque chose sans doute simple
J'ai fais mon premier Powershell pour changer le nom des ordinateurs.
C'est simple, une fenêtre de saisi demande le nouveau nom. Un bouton OK et un bouton ANNULER sont présent sur cette fenêtre.
Si on appui sur OK alors une fenêtre de confirmation du nouveau nom s'affiche. Entre temps le nom saisi est passé en majuscule.
Sur la fenêtre de confirmation, un bouton OUI et le changement de nom se produit et le poste redémarre. Et un bouton NON et alors on quitte.
Tout marche sauf le bouton ANNULER sur la fenêtre de saisi. Si je fais ANNULER le script continu et le nom de l'ordi change et il redémarre. J'aimerai que sur l'action Annuler ça quitte.
[code:1]
# Fenetre de saisie du nouveau nom de l'ordinateur
$ObjVbScript = new-object -comobject MSScriptControl.ScriptControl
$ObjVbScript.language = \"vbscript\"
$ObjVbScript.addcode(\"function getInput() getInput = inputbox(`\"Saisir le nouveau nom du poste:`\",`\"Changement nom du poste`\",`\"`\"«») end function\" )
# On récupère le résultat
$nom_saisie = $ObjVbScript.eval(\"getInput\"«»)
# On passe le résultat en majuscule
$New_Name = \"$nom_saisie\".ToUpper()
# On demande confirmation du nouveau nom
$YES=6; $NO=7
$shell=new-object -com wscript.shell
$ret=$shell.popup(\"Le nouveau nom de l'ordinateur sera:`r$New_Name\", 0, \"Confirmation du nouveau nom\", 4+32)
$ret -eq $YES
# Le nom est confirmé
if ($ret -eq $YES) {
# Changement du nom de l'ordinateur et redémarrage
function Set-ComputerName {
param([string]$computerName=$New_Computer_Name)#####Declaration du Nouveau Parametre
####Creation d'un Objet lié aux caractéristiques de la machine############
$computer = Get-WmiObject Win32_ComputerSystem
####Appel de la Fonction \"Rename\" Pour renommer la machine
$computer.Rename($New_Name)
#### Creation d'un Objet de type win32_operatingsystem##########
$objServer = gwmi win32_operatingsystem
#########Augmentation des Droits d'exécution sur l'Objet############
$objServer.psbase.Scope.Options.EnablePrivileges = $true
##########Appel de Fonction de redémarrage####
#$objServer.reboot()
}
Set-ComputerName
} else {
exit
}
[/code:1]
J'ai mis en commentaire le reboot volontairement pour les tets.
Merci pour votre aide
Kuillaume
Je suis nouveau ici et débutant en Powershell.
J'ai beau chercher mais je bloque sur quelque chose sans doute simple
J'ai fais mon premier Powershell pour changer le nom des ordinateurs.
C'est simple, une fenêtre de saisi demande le nouveau nom. Un bouton OK et un bouton ANNULER sont présent sur cette fenêtre.
Si on appui sur OK alors une fenêtre de confirmation du nouveau nom s'affiche. Entre temps le nom saisi est passé en majuscule.
Sur la fenêtre de confirmation, un bouton OUI et le changement de nom se produit et le poste redémarre. Et un bouton NON et alors on quitte.
Tout marche sauf le bouton ANNULER sur la fenêtre de saisi. Si je fais ANNULER le script continu et le nom de l'ordi change et il redémarre. J'aimerai que sur l'action Annuler ça quitte.
[code:1]
# Fenetre de saisie du nouveau nom de l'ordinateur
$ObjVbScript = new-object -comobject MSScriptControl.ScriptControl
$ObjVbScript.language = \"vbscript\"
$ObjVbScript.addcode(\"function getInput() getInput = inputbox(`\"Saisir le nouveau nom du poste:`\",`\"Changement nom du poste`\",`\"`\"«») end function\" )
# On récupère le résultat
$nom_saisie = $ObjVbScript.eval(\"getInput\"«»)
# On passe le résultat en majuscule
$New_Name = \"$nom_saisie\".ToUpper()
# On demande confirmation du nouveau nom
$YES=6; $NO=7
$shell=new-object -com wscript.shell
$ret=$shell.popup(\"Le nouveau nom de l'ordinateur sera:`r$New_Name\", 0, \"Confirmation du nouveau nom\", 4+32)
$ret -eq $YES
# Le nom est confirmé
if ($ret -eq $YES) {
# Changement du nom de l'ordinateur et redémarrage
function Set-ComputerName {
param([string]$computerName=$New_Computer_Name)#####Declaration du Nouveau Parametre
####Creation d'un Objet lié aux caractéristiques de la machine############
$computer = Get-WmiObject Win32_ComputerSystem
####Appel de la Fonction \"Rename\" Pour renommer la machine
$computer.Rename($New_Name)
#### Creation d'un Objet de type win32_operatingsystem##########
$objServer = gwmi win32_operatingsystem
#########Augmentation des Droits d'exécution sur l'Objet############
$objServer.psbase.Scope.Options.EnablePrivileges = $true
##########Appel de Fonction de redémarrage####
#$objServer.reboot()
}
Set-ComputerName
} else {
exit
}
[/code:1]
J'ai mis en commentaire le reboot volontairement pour les tets.
Merci pour votre aide
Kuillaume
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 13 ans 4 mois #13111
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Bouton annuler qui ne fonctionne pas
Il faut
adapter
ton code VBS afin de gérer l'annulation.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.039 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Bouton annuler qui ne fonctionne pas