• ベストアンサー

WSHでシャットダウン

WSH(JScript)でシャットダウンする方法を教えてください。 OSは2000とXPです。 XPだけなら以下の方法で出来るようですが、 2000で実行するとエラーになってしまいます。 var ws = new ActiveXObject("WScript.Shell"); ws.Run("shutdown -s -f");

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__desktop_management.asp に指定したコンピュータ名のPCをシャットダウンさせる例が書いてあります。 JScript で書き直すとこんな感じ WMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\\\.\\root\\cimv2"); ObjClass = WMIService.InstancesOf("Win32_OperatingSystem"); for(e = new Enumerator(ObjClass) ; !e.atEnd() ; e.moveNext()) { oW32OS = e.item(); oW32OS.Shutdown(); } こちらは、自PC(.)に直してあります。 参考URL: Win32Shutdown メソッドを使うと、ログオフとかリブートなども可能です。 //http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32shutdown_method_in_class_win32_operatingsystem.asp

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4847/10258)
回答No.1

関連するQ&A

  • WSH オブジェクト作成時の違い

    JScriptです。 var obj = WScript.CreateObject("WScript.Shell"); と var obj = new ActiveXObject("WScript.Shell"); 等で振る舞いが変わってくる事はあるでしょうか? またどちらを使うべきでしょうか?

  • WSHのエラー対策

    いつも参考にさせて頂いております。 当方環境: OS WinXP WSH Version 5.7 現在、WSH+JScript でFTPによるファイル転送のプログラムを作成しております。 ところが、実行させてみると、FTPコマンド実行のところでエラーが発生します。 (IPやコマンドファイルはスクリプト内で取得しています) var ws = WScript.CreateObject("WScript.Shell"); var errCode = ws.Run("ftp -i -s:"+cf+" "+ip_add,0,true); エラーメッセージ:「処理を待つことができません。」 MicrosoftのHPで検索したら、以下の事が分かりました。 「通常このエラーは、あるプロセス (ショートカット リンクの実行など) が完了するまでスクリプトが待機しているときに、そのプロセスが値を返さない場合に発生します。」 色々なHP見ても、大体皆さんFTPコマンドはこのように実行されているんですが、どこが違うのでしょうか? また、このエラーへの対処方法をご存知の方がいらっしゃいましたら、 ご教授下さい。

  • WSHでスクロールの制御をしたいと考えています。

    WSHでスクロールの制御をしたいと考えています。 いつも開いているフォルダがあるのですが、そのフォルダで利用するものは一番下の方にあるため、フォルダを開いてフォルダの一番下までスクロールするという動作を自動化したいと考えています。 取り敢えず、フォルダを開くところまでは、 var objWShell = new ActiveXObject("WScript.Shell") objWShell.Run("H:\\") として、出来るようになりました。 後は、End keyのような動作かスクロールさせる動作をさせたいのですが検索しても見つかりません。 どなたか宜しくお願いします。

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

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

  • WSHで他のバッチを呼びその終了を待つ方法

    WSHでプログラミングをしています。 WSHを使う理由はWin上から簡単にメールを送信できるのでとりあえず選択しました。 で、WSHのバッチから、普通のDOSコマンドで記述したバッチを呼んで、そのバッチの結果出力されたログファイルをWSHのバッチでメールに添付して送信したいなどと思っています。 今は var ws = WScript.CreateObject("Wscript.Shell"); ws.run("tmp.bat"); こんな感じで「tmp.bat」という名のDOSコマンドのバッチを呼び出しているのですが、このコマンドは命令発行したらその命令が終了するのを待たず次の命令に進んでしまうようです。 なので、ログ作成とメール送信のタイミングが合わない状態です。 処理待ちする方法を教えてください。よろしくお願いします。

  • HTMLにWSHを組み込む

    HTMLにWSHのコードを書く事は可能ですか? たとえば、ページ開くとNotePad.EXEが起動するようにしたいのですが 以下のような書き方をすると WScriptが宣言されていません。 とエラーになります。 <HTML> <HEAD> <TITLE>起動のテスト</TITLE> </HEAD> <meta http-equiv="Content-Script-Type" content="text/JavaScript"> <BODY> <SCRIPT LANGUAGE="JavaScript"> var title = "メモ帳"; var wsh = WScript.CreateObject("WScript.Shell"); wsh.Run( "NotePad.EXE" ); </SCRIPT> </BODY> </HTML> いい案がある方教えてください。

    • ベストアンサー
    • HTML
  • WSH動作しない!!(WScript.SleepとSendKeys?)

    WSHが動作しなくて困っています。 動作するコードとしないコードは次のとおりです。 いずれも@ITに掲載されているサンプルコードをそのままです。 動作しないコードについても,notepadの起動まではできます。 どうやら,sleepとsendkeysが動いてくれないようです。 <正常に動作するコード> Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" objShell.Run "notepad.exe" http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_02.html <動作しないコード> Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello" http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html ■動作環境 Win XP Pro IE 6.0 ちなみに,WSHファイルに対する実行権限はあります(フルコントロールです)。 以上なのですが,何か点検するべき事項などありましたらご教示ください。

  • あるページを開いた際、常にそのページの一番下まで改ページする。

    あるページを開いた際、常にそのページの一番下まで改ページする。 お世話になっております。 <script language="JavaScript"> <!-- var wsh = new ActiveXObject("WScript.Shell"); wsh.SendKeys("{END}"); wsh=null; // --> </script> のような感じで、 あるページを開いた際に、常にそのページの最下部を表示させたいのですが、 うまくいきません。 どうかご教授ください。よろしくお願いします。  

  • wshからexcel操作で,ChDirを使いたい

    はじめて質問をします。  monnomestと申します。 vbaのマクロを実行して、シートを作成するwsh(by jscript)を作成しました。そのシートを保存する際にchrdirで保存場所を明示したいのですが、指定の仕方が分かりません。(wshを置いておくdirectoryにしたい。) ChDirは、エクセルのmethodではないため、以下のようでは、エラーになりますし、 var objXL = WScript.CreateObject("Excel.Application"); objXL.Visible = true; with(objXL){ var tar=workbooks.Open(scriptpath+vba); try{ Run("'"+vba+"'!'"+command+"'"); }catch(e){ } tar.Close(); ChDir("xxxxxxx"); ←  とは出来ない。 } もちろん、wshを使わず、vbaをそのまま立ち上げればこんなことする必要はないのですが、 諸々の事情がありまして、wshで行えれば都合がよいのです。 objectが何なのかが分かれば解決でしょうか。 どなたかご教示いただけますでしょうか。

  • WSHでファイルを読み込まない。。。

    WSHで2個以上のtxtファイルの中身を連結して1つのファイルにして 掃き出すというプログラムを作りました。 いったんは正常に動作をしたのですが、最近PCの乗り換えを行い、 それ以降まったく動作しなくなりました。。。 仕事で使うプログラムの一部なので困っています。 どなたかご教授ください!! OSはPCの乗り換えをする前も後もXPのSP2です。 var objArgs = WScript.Arguments; var xmldc = new ActiveXObject("Microsoft.XMLDOM"); xmldc.async = false; //読み込んだファイルの数が2個以上か数える。 if (objArgs.Count() < 2) {//1個の場合・・・ WScript.Echo("txtファイルを2つ以上選択してください"); } else { //2個以上のときの処理 } 上記のプログラムで、2個以上のファイルをドラッグアンドドロップ で読み込ませようとしても必ず、 "txtファイルを2つ以上選択してください" と表示されます。 なぜでしょう??

専門家に質問してみよう