どちら様か、Windows をリブートするスクリプトを既に作っておられないでしょ
うか?。

いま、set_path_for_ruby.rb というスクリプトを作っております。

これは、スクリプトのアイコンを ruby.exe にドロップすれば、ドロップされた 
ruby.exe の所在ディレクトリを環境変数 path に追加するというものです。GUI 
で確認しながら行います。複数のバージョンの Ruby を使い分けたいとか、新規
にインストールした後にパスを設定するときに、便利だと思います。

ここで、ちょいと問題がありまして、レジストリレベルの Environment\path の
設定を変えても、Windows をリブートしないと ENV の環境変数に反映されない
ようなのです。

そこで、次のようなリブートメソッドを作ったのですが、セキュリティが何たら
で自動リブートに失敗してしまいます。

def Win32API::exit_windows_ex(flags,reserved=0)
  raise if 0 == Win32API.new( 'user32' , 'ExitWindowsEx' , %w(N N) , "N" ).
        Call( flags,reserved )
end

def Win32API::reboot
  exit_windows_ex( 2 )
rescue
  say "自動リブートに失敗しました。手動で Windows をリブートしてください。"
  exit
end

ネットで調べたところ、

http://www.yuzuriha.sakura.ne.jp/~way/computer/win_tech2.htm

にC言語で作成した「■Windows 3.1/95/98/NT 全てで使えるコード」というの
がありました。しかし、何やら複雑そうです。

どちら様か、Windows をリブートするスクリプトを既に作っておられないでしょ
うか?。

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武