enableLUA: Windows Script -Benutzerkontensteuerung
Unterschied Windows 2000 / XP zu Windows Vista / 7 / 8 / 10
Ein Administrator Benutzer unter Windows Vista / 7 / 8 / 10 hat bei eingeschalteter Benutzerkontensteuerung nur normale Benutzerrechte, der Benutzer hat aber die Möglichkeit mehr Rechte von einem Programm anzufordern.
Programme verhalten sich mit eingeschalteter Benutzerkontensteuerung so, als würden sie unter einem normalen Benutzer-Kontext ausgeführt werden. Programme können sich, wenn vorgesehen, selbst mehr Rechte verschaffen, sie müssen den Benutzer allerdings um Erlaubnis fragen:
Der Vorgang bei dem einem Skript bzw. Programm mehr Rechte verliehen werden nennt man "Elevation".
Das Skript / Programm bekommt durch diesen Vorgang wirkliche Administratorrechte verliehen, dabei ist kein Kennwort erforderlich: Der Benutzer muss die Warnung nur bestätigen.
Um ein Skript / Programm mit wirklichen Administratorrechten ausführen zu können, gibt es mehrere Möglichkeiten:
Bei .exe Dateien genügt ein einfacher "Rechtsklick" auf die Datei und:
"Als Administrator ausführen"
Hintergrund:
Mit Hilfe des cmd-Befehles whoami /ALL /FO List
wird ersichtlich, dass bei einem richtigen Administratoruser (cmd wurde mit "Als Administrator ausführen" gestartet) sämtliche Berechtigungsinformationen deaktiviert sind, bei normalem Aufruf des Befehles in der cmd sind diese Einschränkungen aktiv.
Skripts mit Zugriff auf ein Netzlaufwerk:
Mal angenommen ein Skript greift auf ein Netzlaufwerk zu und das Netzlaufwerk wurde mit eingeschalteter UAC vom Benutzer verbunden.
Wird das Skript jetzt mit "Als Administrator ausführen" gestartet, kann es nicht mehr auf die Netzwerkressource zugreifen, da das Netzlaufwerk ja unter dem normalen Benutzerkontext verbunden wurde.
Elevation PowerToys for Windows Vista / 7
Bei VBScripts geht "Elevation" beispielsweise nur über Umwege ("Als Administrator ausführen" ist nicht verfügbar)
Eine Möglichkeit VBSkript Dateien oder andere Skripts mit eingeschalteter UAC mehr Rechte zu verleihen, bieten die Elevation PowerToys for Windows Vista:
technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
Durch das Installieren der Elevation PowerToys for Windows Vista erscheint beim Rechtsklick auf die vbscript-Datei ein neuer Eintrag: "Run as Administrator"
UAC deaktivieren
Eine andere Möglichkeit ist es die Benutzerkontensteuerung (UAC) einfach abzuschalten:
Entweder in "Systemsteuerung", "Benutzerkonten", "Einstellungen der Benutzerkontensteuerung ändern" den Schieber auf "Nie benachrichtigen",
oder in der Registrierung: regedit:
unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA auf 0 (im Suchfeld: regedit eingeben, zu dem gewünschten Key navigieren und die Änderung eintragen)
Der Wert kann auch mit einem cmd-Befehl gesetzt werden:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t "REG_DWORD" /d "0" /f
(kann in einer Batch Datei verwendet werden, alles zum Thema Batch / cmd findest du hier: Windows Batch )
Bei dem "reg add" Befehl ist wieder zu beachten, dass die Batchdatei von Haus aus nicht die Rechte hat um den Wert in die Registrierung zu schreiben.
Eine Möglichkeit der Datei die Rechte zu verleihen ist wieder: "Als Administrator ausführen". Dies kann direkt auf die .cmd Datei gemacht werden, oder die Eingabeaufforderung wird mit "Als Administrator ausführen" gestartet und anschließend der Befehl eingegeben.
TweakUAC
UAC kann auch mit dem Tool TweakUAC ausgeschaltet werden:
TweakUAC macht genau das Selbe wie die Windows interne Funktion: "Einstellungen für Benutzerkontensteuerung"
siehe: www.tweak-uac.com
Damit der Computer Änderungen an der UAC übernimmt (egal mit welchem Tool diese gesetzt wurden), muss er neu gestartet werden.
Ist die UAC einmal deaktiviert, können Dateien und Skripte wieder wie von Windows 2000 / XP gewohnt ausgeführt werden. (ist natürlich ein Sicherheitsrisiko, deshalb sollte die UAC normalerweise nicht ausgeschaltet werden)
AutoIt
AutoIt Skripts können dazu gezwungen werden den wirklichen Administrator zu laden (sieht dann ähnlich wie das oben angeführte Beispiel mit "regedit" aus: der Benutzer wird um Erlaubnis gefragt ("Run as Administrator" kann also nicht vergessen werden)
Befehlszeile: #RequireAdmin
Bespielsweise Abschalten der UAC per AutoIt:
#RequireAdmin
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", "0")
mehr zum Thema AutoIt: AutoIt3
Unattended oder Silent Installation bei eingeschalteter UAC mittels Gruppenrichtlinie
Aufgaben bei denen der Benutzer nicht merken soll, dass an seinem Rechner per Skript Änderungen vorgenommen werden, gestalten sich mit eingeschalteter UAC fürs Erste eher schwierig.
Ein möglicher Ansatz ist folgender:
Mittels gpedit.msc kann beim Starten des Rechners ein Skript ausgeführt werden, welche die UAC komplett ignorieren (das Skript wird dann beim Hochfahren des Rechners gestartet und läuft im Hintergrund, auch wenn sich der Benutzer bereits angemeldet hat)
Einzustellen unter: "Computerkonfiguration" "Windows-Einstellungen" "Skripts" "Starten":
Das Starten des Skriptes ist dann in der Registrierung unter: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\x\x\ ... hinterlegt.
Um in diesen Teil der Registrierung schreiben zu können, benötigen wir aber wieder die Zustimmung des Benutzers (bei eingeschalteter UAC).
Ohne Zustimmung geht es, wenn wir die Gruppenrichtlinie am Domaincontroller eintragen. (Gruppenrichtlinienverwaltung)
Zu berücksichtigen: wenn das Skript auf einem Netzlaufwerk liegt, muss der Computer auch ohne Authentifizierung Zugriff auf den Share (Netzwerkfreigabe) haben. Möglich wäre auch ein am Rechner abgelegtes Skript (c: ..) welches mit Hilfe von net use eine Freigabe verbindet und dann das Skript auf dem Share startet. (Grundsätzlich ist das Netzwerk beim Starten des Rechners schon verfügbar; Freigaberechte in einer Domäne beispielsweise: lesen für Domain Computers, dann können User mit dem Share fürs 1te so ohne weiteres nichts anfangen)
UAC für bestimmte Anwendungen deaktivieren
Mit Hilfe der "Microsoft Application Compatibility Toolkits"
ist es auch möglich bestimmten Anwendungen die Erlaubnis zu erteilen ohne UAC zu laufen.
Außerdem kann mit Hilfe des "Microsoft Application Compatibility Toolkits" für bestimmte Programme der Kompatiblitätsmodus voreingestellt werden
siehe auch: www.microsoft.com/Downloads/details.aspx?familyid=24DA89E9-B581-47B0-B45E-492DD6DA2971&displaylang=en
{{percentage}} % positiv
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
User: Fragensteller Gut erklärt, aber was passiert wenn man enableLUA aus regedit löscht ?
User: Raymond @Pe: Für deine Zwecke solltest du eher ein Windows Installation Image (WIM) erstellen. Dazu installierst du EIN mal das Betriebssystem inklusive aller Treiber, Programme, Einstellungen und allem, was du gern immer so hättest. Wenn du davon dann das Image abziehst (geht übrigens auch mit FOG), kannst du dieses Image an alle kompatiblen Rechner verteilen und hast dann sofort alles wie gewünscht. Eine vollständig unbeaufsichtigte (unattended) Installation benötigt dann noch eine autounattend.xml Gruß Ray
User: Pe Ist schon älter ich weiss.. Ich möchte eine unbeaufsichtigte Win7 Installations-CD erstellen, wo direkt nach dem Win Setup einige Programme die man ja immer benötigt installiert werden sollen. Z.B. Firefox. Das klappt soweit auch ganz gut. Habe die Firefox-Installationsdatei auf "ff.exe" umbenannt und dann folgenden Befehl eingegeben: "ff.exe /s" die Installation vom Feuerfuchs klappt einwandfrei, nur muss ich vorab die UAC(?) bejahen. Dat nervt natürlich bei einer unbeaufsichtigten Installation von Windows.... habt ihr da eine Idee?
User: Horst Schlmer Test unter Windows 7: Das Skript funktioniert aber vergesst nicht das #RequireAdmin ;). Windows fragt dann aber nach dem Benutzernamen bzw. Passwort. Für euer Skript solltet Ihr noch eine Prüfung einbauen, ob der Rechner tatsächlich nach der Deaktivierung neugestartet wurde! (Vollständige Deaktivieurng = Nach Reboot).
User: Horst Schlmer RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", "1") Soll wohl 0 heißen ;)
danke, hab ich ausgebessert
Beitrag erstellt von Bernhard
User: hans typo: der Befehl muß "whoami" heißen, nicht whiami :)
danke hab ich ausgebessert
Beitrag erstellt von Bernhard