IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Passage de deux variables à la suite


Sujet :

VBScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 121
    Par défaut Passage de deux variables à la suite
    Bonjour,

    J'essaie de faire en sorte que des ordinateurs s'éteignent lors du logoff de l'utilisateur.
    Pour cela, je récupère le nom de la machine et ensuite je lance un runas
    Mon problème est que la commande ne fonctionne pas correctement voici ce que j'ai en script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Shutdown_Now()
    Set WshShell = CreateObject("WScript.Shell" ) 
    computername = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%" )
    strcommand = "c:\windows\system32\shutdown -r"
    Dim I
    I = MsgBox("L'ordinateur va s'éteindre !", vbOKCancel)
    If I = vbOK Then
    else
    Dim Shell
    Set Shell = createObject("wscript.shell")
    shell.run "CMD /K runas /user:"& computername & "administrateur"& strcommand
    End If
    End Sub
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut

    Tout d'abord il faut bien vérifier la syntaxe de la commande Runas
    Donc j'ai fait vite cette modification sans vérification et c'est à vous de le vérifier et de me dire s'il marche chez vous ou non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Shutdown_Now()
    Dim Question,Titre,strcommand,Resultat
    Set WshShell = CreateObject("WScript.Shell" ) 
    Titre = "Shutdown"
    computername = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
    strcommand = "& Shutdown -r"
    Question = MsgBox("Voulez-vous éteindre l'ordinateur maintenant ?", vbOKCancel+32,Titre)
    If Question = vbOK Then
    Command = """CMD /C runas /user:"& computername & "\administrateur "& strcommand &""""
    MsgBox Command,64,Titre
    Resultat = WshShell.Run(Command,0,True)
    else
    exit sub
    End If
    End Sub
    Call Shutdown_Now

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut Exemple d'utlisation

    voila un exemple testé qui vous montre comment afficher le contenu de votre lecteur c:\ par deux méthodes une avec affichage de la fenêtre Dos et l'autre sans affichage de la fenêtre Dos.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub AffichContenu()
    Dim Question,Titre,strcommand,Resultat
    Set WshShell = CreateObject("WScript.Shell" ) 
    Titre = "AffichContenu"
    strcommand1 = "& Dir"'commande1 a passer pour lister le contenu de C:\
    Strcommand2 = "& Dir > c:\contenu.txt"'Commande2 a passer avec redirection dans le fichier c:\contenu.txt
    Question = MsgBox("Voulez-vous afficher le contenu de votre lecteur C:\ ?", vbOKCancel+32,Titre)
    If Question = vbOK Then
    Command1 = "CMD /K CD c:\ "& strcommand1 &"" 
    Command2 = "CMD /C CD c:\ "& strcommand2 &""
    MsgBox Command1 & vbcr & Command2,64,Titre
    Resultat1 = WshShell.Run(Command1,1,True)' avec affichage du la fenêtre Dos
    Resultat2 = WshShell.Run(Command2,0,True)' sans affichage du la fenêtre Dos
    else
    exit sub
    End If
    End Sub
    Call AffichContenu

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 121
    Par défaut
    Merci la première solution ne fonctionne pas,
    En revanche j'ai modifier le code de la seconde fonction et ca passe en local.

    Maintenant je vais tester via une gpo.

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 841
    Par défaut
    Citation Envoyé par ponpon17430 Voir le message
    Merci la première solution ne fonctionne pas,
    En revanche j'ai modifier le code de la seconde fonction et ca passe en local.
    Maintenant je vais tester via une gpo.

    Pourriez-vous poster le code que vous avez modifié pour voir plus clair

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 121
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub AffichContenu()
    Dim Question,Titre,strcommand,Resultat
    Set WshShell = CreateObject("WScript.Shell" ) 
    Titre = "AffichContenu"
    computername = WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
     
    strcommand1 = "& shutdown -r"'commande1 a passer pour lister le contenu de C:\
     
    Question = MsgBox("Voulez-vous afficher le contenu de votre lecteur C:\ ?", vbOKCancel+32,Titre)
     
    If Question = vbOK Then
    Command1 = "CMD /K runas /user:"& computername & "\admin  c"& strcommand1 &""
     
    Resultat1 = WshShell.Run(Command1,1,True)' avec affichage du la fenêtre Dos
    Wscript.Sleep 1000 
    shell.SendKeys "password"
    else
    exit sub
    End If
    End Sub
    Call AffichContenu
    Mais en fait la commande shutdown ne peut pas etre utilisé lors d'un logoff via une gpo.
    Je vais plutot me pencher sur une autre solution comme utiliser "Win32Shutdown"

Discussions similaires

  1. Passage d'une variable sur deux formulaires
    Par 41jeanseb dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2013, 12h01
  2. [MySQL] passage de deux valeurs pour une variable
    Par kate59 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/06/2009, 14h02
  3. passage deux variables à partir HTML
    Par delavega dans le forum Flash
    Réponses: 8
    Dernier message: 25/04/2009, 12h26
  4. [MySQL] Passage deux variables depuis un menu déroulant
    Par pit2121 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/01/2008, 01h53
  5. Passage de deux variable dans l'url
    Par Sam 069 dans le forum Langage
    Réponses: 3
    Dernier message: 21/11/2006, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo