- ベストアンサー
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 にすると上手くいきました。 たぶん、「\\サーバ名」の「\」の部分がうまくいってないような気がします どなたかご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「パスを""で括る」「"はエスケープする」とこうなります。 WshShell.Run("runas /user:ドメイン名\\administrator \"\\(サーバ名)\(共有フォルダ名)\(途中のフォルダ)\Adobe Reader9をサイレントインストールする.bat\""); ()の中身は実環境に合わせて置き換えてください。ぶっちゃけた話、エクスプローラで見た時のパスをそのままコピーするのが楽です。 > これではうまくいきませんでした。 バッチファイルの名前が違うのですからうまくいかなくて当然でしょう。 質問時の「空白込みのバッチファイル名」が正しいんですよね? ところで、ちゃんと\\サーバ名\共有フォルダ名でアクセスできますか? それは出来ているものとしてここまで回答してますが、出来ていなければまた回答の方向性が変わってくるので……
その他の回答 (3)
- D-Matsu
- ベストアンサー率45% (1080/2394)
あ、もう一つありました。 フォルダ区切りの\もエスケープが必要なので、実際にはこうなります。 WshShell.Run("runas /user:ドメイン名\\administrator \"\\\\(サーバ名)\\(共有フォルダ名)\\(途中のフォルダ)\\Adobe Reader9をサイレントインストールする.bat\""); エクスプローラからコピーペーストした後に\を倍増させる感じですね。
- D-Matsu
- ベストアンサー率45% (1080/2394)
あ、実行パスに空白入ってますね。 パス全体を""で括ってください。 もちろん"のエスケープは忘れずに。
- D-Matsu
- ベストアンサー率45% (1080/2394)
えーと、ファイルサーバ上のバッチファイルを実行したい、という主旨でいいですか? 共有フォルダ名がファイル名の前に入ってないが原因だと思いますが。
補足
共有フォルダ名をいれてもできません。 以上、よろしくお願いします。
補足
すいません。具体的にはどのように記述すればいいんでしょうか? これではうまくいきませんでした。 WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\共有ファイル名\バッチ\Adobe_Reader9をサイレントインストールする.bat"); よろしくおねがいします。