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をオフにするのはやめることにした。
あとは、各種の自動化スクリプトをコツコツ修正するだけ... でも、めんどくさいなあー