• 締切済み

WshShell.Runでサーバにアクセスできません。

拡張子が「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); } ・ ・ ・ どなたかご教授お願いします。

みんなの回答

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

ええと。回答ではないのですが、一つだけ質問者さんをフォローさせていただきます。 >> #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.aspx ここ最近、JScriptの質問が カテゴリ [JavaScript] に質問を寄せられているようです。 厳密には、[その他(プログラミング)] なのでしょうけれど、 JavaScriptの拡張言語ですから、ここで質問されても仕方ないかな、という気はしています。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

拡張子が「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 "); だけに留めておいて、コマンドプロンプトの状態を確認した方がよいでしょう。

関連するQ&A

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

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • javascriptでのローカルパスの指定の仕方

    javascript(wsh)のローカルパスの記述で質問です いままでファイルを実行する場合に、こんな感じで記述してました。 var WSHShell = new ActiveXObject("WScript.Shell"); WshShell.run("C:\\wsh\\act\\kyoten1.js"); のように実行ファイルを直接指定していました。 今後、ファイルのフルパス名を取得して代入したいのです fullpath = WScript.ScriptFullName; WshShell.run(fullpath); → うまくいきません・・・ どのようにローカルのパス名を記述すればよいのでしょうか? 大変恐縮なのですが、お分かりの方ご教授いただけると幸いです。

  • WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい

    WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • VBAでネットワーク上のバッチジョブを実行したい

    クライアントPCのVBAからサーバなどのネットワーク上のバッチジョブを実行するにはどのようにすればよいでしょうか?   Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\AAAAA\BAT\TEST.bat", , True MsgBox "終了!" Set WshShell = Nothing 上記を参考にしたのですが、どうもうまくいかないのです。 何かが足りないのですか?

  • WSHスクリプトでブラウザ更新

    教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。

  • Runasの指定について

    お世話になります、runasの使用時にパスの指定の仕方について教えてください。 以下のようにパスを指定し、Runas後にスクリプトを実行しようとしていますが、objexeccmdの部分で引っかかってしまい、先に進むことが出来ません。 お手数ですが、よろしくお願いいたします。 objExecCmd = \"runas /user:Bunseki \\\"cscript.exe \\\\server\\\\log.wsf\" \'実行パスを記入 Set WshShell = WScript.CreateObject(\"WScript.Shell\") WshShell.run objExecCmd, 1, true

専門家に質問してみよう