• ベストアンサー

jscriptの質問

拡張子が「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 にすると上手くいきました。 たぶん、「\\サーバ名」の「\」の部分がうまくいってないような気がします どなたかご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

「パスを""で括る」「"はエスケープする」とこうなります。 WshShell.Run("runas /user:ドメイン名\\administrator \"\\(サーバ名)\(共有フォルダ名)\(途中のフォルダ)\Adobe Reader9をサイレントインストールする.bat\""); ()の中身は実環境に合わせて置き換えてください。ぶっちゃけた話、エクスプローラで見た時のパスをそのままコピーするのが楽です。 > これではうまくいきませんでした。 バッチファイルの名前が違うのですからうまくいかなくて当然でしょう。 質問時の「空白込みのバッチファイル名」が正しいんですよね? ところで、ちゃんと\\サーバ名\共有フォルダ名でアクセスできますか? それは出来ているものとしてここまで回答してますが、出来ていなければまた回答の方向性が変わってくるので……

その他の回答 (3)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.4

あ、もう一つありました。 フォルダ区切りの\もエスケープが必要なので、実際にはこうなります。 WshShell.Run("runas /user:ドメイン名\\administrator \"\\\\(サーバ名)\\(共有フォルダ名)\\(途中のフォルダ)\\Adobe Reader9をサイレントインストールする.bat\""); エクスプローラからコピーペーストした後に\を倍増させる感じですね。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

あ、実行パスに空白入ってますね。 パス全体を""で括ってください。 もちろん"のエスケープは忘れずに。

tuyo1980
質問者

補足

すいません。具体的にはどのように記述すればいいんでしょうか? これではうまくいきませんでした。 WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\共有ファイル名\バッチ\Adobe_Reader9をサイレントインストールする.bat"); よろしくおねがいします。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

えーと、ファイルサーバ上のバッチファイルを実行したい、という主旨でいいですか? 共有フォルダ名がファイル名の前に入ってないが原因だと思いますが。

tuyo1980
質問者

補足

共有フォルダ名をいれてもできません。 以上、よろしくお願いします。

関連するQ&A

専門家に質問してみよう