Po wprowadzeniu Kontroli konta użytkownika (UAC) w systemie Windows Vista zwykle otwiera się podniesione Wiersz polecenia w celu uruchomienia plików wsadowych i skryptów wymagających uprawnień administratora. Aplikacje mogą korzystać z plików manifestu (przy użyciu flagi RequireAdministrator ) w celu automatycznego uruchamiania z podwyższonym poziomem uprawnień .
W przypadku skryptów ten artykuł zawiera kilka ciekawych sztuczek, za pomocą których można automatycznie podwyższyć za pomocą parametru „runas” ShellExecute.
( Zobacz także Jak automatycznie podnieść plik wsadowy, aby uruchomić go jako administrator?, Aby poznać inną metodę automatycznego podniesienia poziomu).
Uruchom podniesiony skrypt Vbscript
Podziękowania dla Jima Barry'ego za poinformowanie mnie o argumencie using runas w metodzie ShellExecute obiektu Shell.Application. Korzystając z sugestii Jima, mój oryginalny scenariusz został bardzo skrócony. Użyj jednej z tych metod, aby uruchomić podniesione skrypty VBScript.
Metoda 1
Oto przykładowy skrypt, który uruchamia się ponownie jako administrator (podniesiony) przy użyciu parametru runas, jeśli skrypt nie przekazał argumentów wiersza polecenia. Podczas ponownego uruchamiania skryptu jako administrator, po prostu przekaż fałszywy argument, aby skrypt nie działał w cyklicznej pętli.
Jeśli WScript.Arguments.length = 0 Następnie ustaw objShell = CreateObject („Shell.Application”) „Przekaż fałszywy argument, powiedz [uac] objShell.ShellExecute„ wscript.exe ”, Chr (34) i _ WScript.ScriptFullName & Chr (34) i „uac”, „”, „runas”, 1 Else „Dodaj swój kod tutaj End If
Metoda 2
Ta metoda wykorzystuje skrypt uruchamiający, który uruchamia główny podniesiony VBScript za pomocą czasownika runas .
Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If
Zobaczysz okno dialogowe wysokości UAC.
Gdy użytkownik kliknie Kontynuuj, aby zatwierdzić, skrypt główny jest uruchamiany jako administrator.
POWIĄZANE: Jak automatycznie podnieść plik wsadowy, aby uruchomić go jako administrator?