重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

拡張子が「js」のファイルでWshShell.Runでサーバにアクセスできません。

var WshShell= new ActiveXObject("WScript.Shell");
WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat");
while(!WshShell.AppActivate("runas.exe")){
WScript.Sleep(100);
}



WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名…



WshShell.Run("runas /user:ドメイン名\\administrator cmd

にすると上手くいきました。

たぶん、「\\サーバ名」の「\」の部分がうまくいってないような気がします
どなたかご教授お願いします。

A 回答 (4件)

「パスを""で括る」「"はエスケープする」とこうなります。



WshShell.Run("runas /user:ドメイン名\\administrator \"\\(サーバ名)\(共有フォルダ名)\(途中のフォルダ)\Adobe Reader9をサイレントインストールする.bat\"");

()の中身は実環境に合わせて置き換えてください。ぶっちゃけた話、エクスプローラで見た時のパスをそのままコピーするのが楽です。

> これではうまくいきませんでした。

バッチファイルの名前が違うのですからうまくいかなくて当然でしょう。
質問時の「空白込みのバッチファイル名」が正しいんですよね?

ところで、ちゃんと\\サーバ名\共有フォルダ名でアクセスできますか?
それは出来ているものとしてここまで回答してますが、出来ていなければまた回答の方向性が変わってくるので……
    • good
    • 0

あ、もう一つありました。



フォルダ区切りの\もエスケープが必要なので、実際にはこうなります。
WshShell.Run("runas /user:ドメイン名\\administrator \"\\\\(サーバ名)\\(共有フォルダ名)\\(途中のフォルダ)\\Adobe Reader9をサイレントインストールする.bat\"");

エクスプローラからコピーペーストした後に\を倍増させる感じですね。
    • good
    • 0

あ、実行パスに空白入ってますね。


パス全体を""で括ってください。
もちろん"のエスケープは忘れずに。

この回答への補足

すいません。具体的にはどのように記述すればいいんでしょうか?

これではうまくいきませんでした。

WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\共有ファイル名\バッチ\Adobe_Reader9をサイレントインストールする.bat");

よろしくおねがいします。

補足日時:2009/06/24 11:27
    • good
    • 0

えーと、ファイルサーバ上のバッチファイルを実行したい、という主旨でいいですか?


共有フォルダ名がファイル名の前に入ってないが原因だと思いますが。

この回答への補足

共有フォルダ名をいれてもできません。


以上、よろしくお願いします。

補足日時:2009/06/24 10:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!