[R] Déclarer variable et l'utiliser dans une commande DOS

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Seiya03180
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 02 déc. 2008 13:05
Status : Hors ligne

[R] Déclarer variable et l'utiliser dans une commande DOS

#1

Message par Seiya03180 »

Bonjour

Je voudrais exécuter un script en local sur chacun de mes postes du domaine, récupérer les 5 derniers caractères du nom de la machine et changer le mot de passe du compte administrateur local de la machine à l'aide de la commande en ligne pspasswd en y ajoutant un mot.

Le problème que je rencontre est que je ne parviens pas à utiliser ma variable $MDP dans la commande dos.

J'ai cherché (peut être mal me répondrez vous...) sur le forum et sur le net mais je n'ai rien trouvé me permettant d'utiliser une variable déclarée dans autoit dans une commande dos utilisée après.

Voici mon script

Code : Tout sélectionner

$computername = EnvGet("computername")
$MDP=StringRight ($computerName, 5)

MsgBox (4096, "MDP", $MDP, 10)

Runas ("Mon_nom_d'admin","Mon_domaine","Mon_mot_de_passe","0","c:\mdp\pspasswd.exe Administrateur Test$MDP /accepteula")
 
En admettant que la variable m'ai renvoyée 12345, mon mot de passe devrait être Test12345 mais ça ne marche pas...

J'ai mis le msg box pour être sur dans un premier temps que je récupérais bien les bonnes infos (j'y vais un peu à taton n'ayant jamais fait de programmation...et de ce coté là c'est ok !)

Merci d'avance pour l'aide apportée !
Modifié en dernier par Seiya03180 le mar. 02 déc. 2008 16:22, modifié 2 fois.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: Déclarer une variable et l'utiliser dans une commande DOS

#2

Message par Yogui »

je ferai comme ça

Code : Tout sélectionner

Runas ("Mon_nom_d'admin","Mon_domaine","Mon_mot_de_passe","0","c:\mdp\pspasswd.exe Administrateur Test"&$MDP&" /accepteula")
Seiya03180
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 02 déc. 2008 13:05
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#3

Message par Seiya03180 »

Yes !

On appelle ça être efficace ! Ca marche nickel ! Merci beaucoup.

Un p'tit click sur le lien de l'ile mystérieuse me paraissait être la moindre des choses...! ;)
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#4

Message par Yogui »

Merci pour mon épouse :lol:

et de rien pour l'aide c'était de mon niveau :)

Pour l'explication si vous voulez "assemblé" une variable avec du texte et ou avec autre chose il faut utiliser le caractère "&"

Code : Tout sélectionner

dim $variable = "Toto"
msgbox(0,"test","le plus beau c'est " & $variable)
Seiya03180
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 02 déc. 2008 13:05
Status : Hors ligne

Re: [R]Déclare une variable et l'utiliser dans une commande DOS

#5

Message par Seiya03180 »

Merci pour l'info, ça peut re-servir effectivement ! :)
@+
Seiya03180
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 02 déc. 2008 13:05
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#6

Message par Seiya03180 »

Arrrrrrrggggggggg

J'ai crié victoire trop vite !

Ca marche en local sur ma machine mais dès que je lance l'appli sur un autre poste ça ne fonctionne plus...

Comment puis je faire pour faire une pause juste après la commande dos pspasswd? j'ai essayé un /pause un -pause mais ça marche pas...

Sur la machine sur laquelle je lance le script j'ai bien crée un dossier c:\mdp et veillé à y placer la commande pspasswd.

Mon compte est admin du domaine donc ça doit passer...

Any idea ?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#7

Message par Yogui »

(j'ai regardé dans l'aide de pspasswd et il est possible de cibler une machine distante en tant qu'admin global perso je serai passé par là avec un annuaire de machines)


Pour ce qui est de faire une pause dans un run je ne sais pas

Par contre ce bout de code de jbnh peux t'aider

Code : Tout sélectionner

#include <Constants.au3>
$computername = EnvGet("computername")
$MDP=StringRight ($computerName, 5)

MsgBox (4096, "MDP", $MDP, 10)

$foo = Run(@ComSpec & " /c pspasswd.exe Administrateur Test"&$MDP& " /accepteula" , @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)


While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
Wend
Seiya03180
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 02 déc. 2008 13:05
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#8

Message par Seiya03180 »

Yogui a écrit :(j'ai regardé dans l'aide de pspasswd et il est possible de cibler une machine distante en tant qu'admin global perso je serai passé par là avec un annuaire de machines)
Effectivement à la base je voulais faire comme ça mais vu que sur chaque machine le mot de passe d'admin local sera différent ça ne marchera pas...

Merci encore pour ta réponse, ça y est je suis largué en terme de codes et de commandes utilisées...

Il n'y a plus de runas donc ça ne peut pas fonctionner vu que le compte sur depuis lequel le script sera lancé n'est pas admin (meme pas de sa machine), non ?

Quand je lance le script il me lance une deuxieme fenetre STDOUT qui est complétement vide...

Il fallait que j'adapte quelque chose dans ton script ?
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [..]Déclare une variable et l'utiliser dans une commande DOS

#9

Message par Yogui »

oups pour tester chez moi j'ai virer le runas :oops:

il te faut le remettre
Répondre