Je dois créer un VBScript qui demande 2 réponses (les variables %1 et %2) pour ensuite lancer cette commande "macommande %1 %2".
Ceci lance une sauvegarde de base SQL avec pour %1 le nom de la base et pour %2 le nom du fichier de sauvegarde (stocké au même endroit que le .VBS et le .CMD.
Le plus gros problème, c'est moi c'est que je ne suis un gros novice en VBS, mais la tâche est assez urgente.
Voici mes scripts:
VBS:
Option Explicit Dim %1 Dim %2 Dim oShell
%1 = InputBox("Quel est le nom de la societe?","Sauvegarde") %2 = InputBox("Nom du fichier de sauvegarde:","Sauvegarde")
cd "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn" sqlcmd.exe -E -SSERVER\SAGE100 -Q"BACKUP DATABASE [P_%1] TO DISK = N'F:\SAGE\SAV\%2.BAK' WITH FORMAT, NAME = N'%1-Complète', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
pause
Cela fonctionne bien en commande directe sur le serveur en question et dans le reperoire des fichiers scripts avec la commande "macommande TEST TEST092014".
Par contre quand je lance le vbs déjà j'ai un message d'erreur comme quoi il n'aime pas le nom des variables %1 et %2.
J'ai essayé en remplaçant par BASE et NAME mais j'ai une erreur à l'execution de la sauvegarde comme quoi il ne trouve pas la base [P_BASE]. Pourtant dans la Inputbox j'avais rentré le nom d'une base existante (pas "TEST" evidement)!
Ducoup je suis un peu pommé, je ne sais plus par où aller. Je suis sûr que quelqu'un pourra m'aider, à mon avis les lignes de codes pour ma problematiques ne sont pas très compliquées...
Il ne faut pas nommer dans ton fichier vbs, les variables à envoyer avec un % ...
Sans oublier les espaces entre chaque variables à envoyer au script...
Essaye:
Option Explicit
Dim maVar1
Dim maVar2
Dim cmdToRun
Dim oShell
maVar1= InputBox("Quel est le nom de la societe?","Sauvegarde")
maVar2= InputBox("Nom du fichier de sauvegarde:","Sauvegarde")
cmdToRun = "DB_sauve_1soc " & maVar1 & " " & maVar2
Set oShell = CreateObject("WScript.Shell")
oShell.Run cmdToRun
Wscript.Quit
Edit : Oublie d'un Espace entre le nom du fichier et les variables
Avant de poser une question, merci de lire la charte du site. Cordialement, Jordane
c:
cd "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn"
sqlcmd.exe -E -SSERVER\SAGE100 -Q"BACKUP DATABASE [P_%1] TO DISK = N'F:\SAGE\SAV\%2.BAK' WITH FORMAT, NAME = N'%1-Complète', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
pause
Ah oui j'avais pas vu l'EDIT concernant l'espace manquant entre le nom du fichier et le double cote.
Il lance bien la commande ducoup, mais me dit:
"La base de données 'P_maVar1' n'existe pas. Assurez-vous que le nom a été saisi correctement."
C'est pour ça que j'avais mis %1 et %2, pour ne pas avoir à changer le cmd.
Tu n'as pas renommé les variables dans ton BATCH .. tu as bien laissé les %1 et %2 ??
C'est Uniquement dans le premier script qu'il fallait les changer...
J'ai remis %1 et %2 dans le CMD. On dirait que ça marche.
Enfin ...
Juste le message d'erreur concerne les droits, comme quoi en gros il faut des droits d'admin sur les DB.
Il y a un paramètre pour le VBS afin qu'il s'exécute avec l'utilisateur Admin du domaine, même si il est lancé par un utilisateur classique?
En fait lorsque je lance le vbs depuis le serveur, logué avec l'Admin du domaine, cela fonctionne.
Mais le but est que cela fonctionne via un raccourci depuis la session d'un utilisateur non Admin. Sans rajouter bien-sûr cet utilisateur dans l'onglet Sécurité du dossier des DB.
Une sorte de "Exécuter en tant qu'administrateur" par défaut.
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cette "nouvelle" question n'a pas sa place dans cette discussion.
Pour rappel.. sur ce forum.. on ne pose qu ' UNE question par discussion..
Vu que ta question initiale est traitée... il serait bien de clore ce sujet !