2010-06-02 28 views
0

J'essaye d'écrire un script qui renommera un ordinateur et le rejoindra à un domaine, et prévoyait d'appeler netdom.exe pour faire le sale travail. Cependant, essayer d'exécuter cet utilitaire dans le script (même résultat dans irb) ne fait absolument rien. Pas de sortie, pas d'exécution. J'ai essayé avec des backticks et avec la méthode system(). System() renvoie false pour tout sauf system ("netdom") (qui renvoie true). Les backticks ne renvoient jamais rien d'autre qu'une chaîne vide. J'ai vérifié que netdom fonctionne et fonctionne dans l'environnement dans lequel le script sera exécuté, et j'appelle les autres utilitaires de ligne de commande plus tôt dans le script qui fonctionnent (w32tm, getmac, ping).Essayer d'exécuter netdom.exe à partir d'un script ruby ​​ou IRB ne fait rien

Voici la ligne exacte qui est exécuté:

`netdom renamecomputer %COMPUTERNAME% /NewName:#{newname} /force` 

Pour votre information, c'est Windows 7 x64

+0

Avez-vous essayé la syntaxe% x {commande}? – Roadmaster

+0

Oui, essayé% x [netdom] - toujours pas de sortie ou d'exécution. Bonne pensée si .. D'autres façons d'exécuter ce que j'oublie? – Joraff

Répondre

0

peut être vous devez remplacer% COMPUTERNAME% avec un nom réel de l'ordinateur?

+0

% ORDINATEUR% doit renvoyer le nom de l'ordinateur actuel. Il le fait dans la ligne de commande, donc j'ai supposé qu'il le ferait aussi dans un sous-shell. Je viens de tester cela, cependant, en remplaçant la variable par le nom actuel de l'ordinateur et il ne s'est toujours pas exécuté. Je ne pense pas que le problème réside dans la syntaxe, mais plutôt dans l'exécution de netdom. Peut-être que quelque chose de netdom s'appuie sur n'est pas dans le chemin utilisé dans la sous-couche de rubis? Je ne sais vraiment pas ... – Joraff