プロが教える店舗&オフィスのセキュリティ対策術

拡張子が「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);
}




どなたかご教授お願いします。

A 回答 (2件)

拡張子が「js」のファイルで...


とありますが、まさかそのxxx.jsファイルを直接クリックしたり、IEのアドレス欄に打ち込んだりしても、なんらかの拡張子の関連付けがないとまず動きません。
xxx.jsはスクリプトですから、普通
<script src="./xxx.js" type="text/javascript" charset="Shift-jis">
としてWebページに組み込んでますよね。
こんな感じ(ファイル名はrunas.htmとかにしておく)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-jis">
<title>RunAs Exec</title>
</head>
<body>
<script src="./runas.js" type="text/javascript" charset="Shift-jis">
</script>
</body>
</html>

それでも、このスクリプトはhtmlファイルだとWebサイトから動かないはずです。(実際IE7だとWshShell.Runが無視されるみたいです)
htmファイルをローカルにおいて、IEでそのhtmを読み込むと動きます。
(※セキュリティ確認のポップアップが何回かでますが)
どうしても、Webサイトに置きたかったら、拡張子を.htaにしておきます。
そうすると、IEでそのhtaを要求すると、ダウンロードしてじっこうしてよいかどうかのポップアップが出るので、はいを答えていけば実行されます。
こんな感じ(ファイル名はrunas.htaとかにしておく中身は同じでよい)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift-jis">
<title>RunAs Exec</title>
</head>
<body>
<script src="./runas.js" type="text/javascript" charset="Shift-jis">
</script>
</body>
</html>
スクリプトの方はファイル名をrunas.jsとして
var WshShell= new ActiveXObject("WScript.Shell");
WshShell.Run("runas /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat");
while(!WshShell.AppActivate("runas.exe")){
WScript.Sleep(100);
}
ですかねえ、これだとパスワードの投入が出来ないので、
一回、別途コマンドプロンプトで
runas /savecred /user:ドメイン名\\administrator cmd.exe
を実行して、パスワードを覚えさせた後なら、
WshShell.Run("runas /savecred /user:ドメイン名\\administrator \\サーバ名\Adobe Reader9をサイレントインストールする.bat");
で呼び出せば、パスワードを聞かれないはずです。
バッチファイル実行なら、
WshShell.Run("runas /savecred /user:ドメイン名\\administrator cmd.exe /c \\サーバ名\Adobe Reader9をサイレントインストールする.bat");
の方が確実かもしれません。
テストする時は、実行させるプログラムを
WshShell.Run("runas /savecred /user:ドメイン名\\administrator cmd.exe ");
だけに留めておいて、コマンドプロンプトの状態を確認した方がよいでしょう。
    • good
    • 0

ええと。

回答ではないのですが、一つだけ質問者さんをフォローさせていただきます。

>> #1さん
> まさかそのxxx.jsファイルを直接クリックしたり、IEのアドレス欄に打ち込んだりしても、
> なんらかの拡張子の関連付けがないとまず動きません。
Windowsの場合、xxx.js は「JScript File」に関連付けされます。
例えば、下記コードを test.js で保存して実行すると「メモ帳」が立ち上がります。

---
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.exec('%SystemRoot%\\system32\\notepad.exe');
---

JScript
http://msdn.microsoft.com/ja-jp/library/cc427807 …

ここ最近、JScriptの質問が カテゴリ [JavaScript] に質問を寄せられているようです。
厳密には、[その他(プログラミング)] なのでしょうけれど、
JavaScriptの拡張言語ですから、ここで質問されても仕方ないかな、という気はしています。
    • good
    • 0

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