Windows8のUACを強制的にオフにする

会社のパソコンなんだが、Windows8のパソコンを1台購入してテストしてみた。

Metroアプリを動かすにはUACをオンにする必要があるが、UACをオンにすると、
プログラムの自動インストールが出来なかったり、HOSTSファイルを自動で変更できなかったり
いろいろと問題が出ることがわかった。

なので、Windows8ではUACをオフにして、metroアプリは使わないしようと思っている。

そこで、誤ってUACをオンにしてしまっても、自動的にUACをオフにして、再起動するVBScriptを書いたので
メモっておきます

Dim WMI, OS, Value, Shell
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
'VBSを管理者権限で実行する
    Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
    For Each Value in OS
     if left(Value.Version, 3) < 6.0 then exit do
    Next
    Set Shell = CreateObject("Shell.Application")
    Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
    WScript.Quit
loop

Dim objWshShell,num
Set objWshShell = WScript.CreateObject("WScript.Shell")

num = objWshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA")

if num = 0 then
  WScript.Quit
end if

objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", 0, "REG_DWORD"

WScript.Sleep(3000)
'WScript.Echo "再起動します"

strCmdLine = "shutdown -r -f -t 10"
objWshShell.Run(strCmdLine)

2013/05/27追記

先日、Windows8はUACをオフにして、metroアプリは使用しないと書いたが、VBScriptを管理者権限で実行できれば
自分が問題としていたことは解決すると気付いた。 馬鹿だね... トホホです。

参考にさせていただいたサイトは下記です。

VBScript – VBScriptを管理者として実行する

このスクリプトを先頭で実行すれば、ソフトの自動インストールや、HOSTSファイルなどのコピーも可能なので、
Windows8はUACをオフにするのはやめることにした。

あとは、各種の自動化スクリプトをコツコツ修正するだけ... でも、めんどくさいなあー

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です