Abmeldeskripts in Windows 7

943
chrsblck

Ich habe öffentliche Maschinen, die zum Ausführen von Abmeldeskripts erforderlich sind, die sich in Perl befinden. Ich möchte, dass das Skript für einen Standardbenutzer ausgeführt wird. Es scheint, dass die UAC dies verhindert. Also habe ich das UAC-Level so eingestellt, dass es "nie benachrichtigt" wird, was den UAC zu deaktivieren scheint. Aber immer noch keine Würfel. Diese Skripte müssen beim Abmelden ausgeführt werden!

2
Wenn Sie dieses Skript ausführen, während Sie als Benutzer ohne Administratorberechtigung angemeldet sind, werden Sie von der Benutzerkontensteuerung zur Erhöhung aufgefordert. Wie laufen Sie mit diesem Skript? Durch Gruppenrichtlinien uSlackr vor 12 Jahren 0
@ uSlacker- Ja, ich führe dieses über GPO als Abmeldeskript aus chrsblck vor 12 Jahren 0
Die Benutzerkontensteuerung ist nicht deaktiviert, wenn Sie "Keine Benachrichtigung" festlegen. Es gibt eine andere Methode, die Sie verwenden müssen, um sie vollständig zu deaktivieren. vor 12 Jahren 0
@ Randolph- Wie auf der Microsoft Tech Net-Seite ist dies das Update, das sie zum "Deaktivieren der Benutzerkontensteuerung" geben. Wenn ich die Benutzerkontensteuerung nicht ausschalte, wissen Sie wie? chrsblck vor 12 Jahren 0
Anscheinend habe ich an Windows Vista gedacht, nicht an Windows 7. Ich entschuldige mich für die Verwirrung. Vista hat eine explizite Option zum Ausschalten, auf die Sie klicken können. vor 12 Jahren 0

2 Antworten auf die Frage

0
Ganesh R.

UAC blockiert Programme, die Administratorzugriff benötigen.

Wenn Ihre Perl-Skripts nach einer Erhöhung fragen, fordert Windows für einen Standardbenutzer, auch wenn die Benutzerkontensteuerung deaktiviert ist, den Administratorzugriff an (Verhalten ähnlich wie Windows XP).

Was macht das Abmeldeskript? Wenn etwas ausgeführt werden muss, für das Administratorrechte erforderlich sind, müssen Sie möglicherweise eine geplante Aufgabe oder einen Windows-Dienst schreiben, der im Administratorkonto ausgeführt wird, um dies für Sie auszuführen.

Das Perl-Skript führt einige Dinge aus. Es löscht alle TIFs, speichert ein paar Dir's für den Benutzer und führt einige Systemaufrufe aus, um Formulardaten usw. zu entfernen. Ich habe auch versucht, eine Batchdatei zu schreiben, um das Perl-Skript zu erhöhen. Die .bat-Datei wird jedoch ebenfalls nicht ausgeführt. Mit XP hat meine Methode gut funktioniert chrsblck vor 12 Jahren 0
0
bzsparks

Ihrer Beschreibung nach scheint das Skript Administratorrechte zur Ausführung zu benötigen. Wenn das Skript nicht von einem Prozess mit einem Admin-Token gestartet wird, werden Sie durch die Benutzerkontensteuerung aufgefordert, Ihre Berechtigungen zu erhöhen.

Sie können diese Einschränkung mit einem einfachen Windows-Dienst umgehen, der als LOCAL SYSTEM-Benutzer ausgeführt wird und die OnCustomCommand () -Methode implementiert.

Aus dem Abmeldeskript stammt eine ausführbare Datei, die die ExecuteCommand () -Methode aufruft, die ein vorbestimmtes int übergeben, das als Auslöser für den Dienst fungiert, um die Befehle auszuführen, die Administratorrechte erfordern.

private enum CustomCommands { RunAsAdmin = 128 }; ServiceController srvc = new ServiceController("SimpleService"); srvc.ExecuteCommand((int)CustomCommands.RunAsAdmin); 

ServiceBase.OnCustomCommand-Methode

@ bzsparks- Also muss ich eine VB-Datei erstellen, die mein Perl-Skript aufruft? Ich habe diese Idee mit einer Batch-Datei ausprobiert, die eine ausführbare Datei als Admin ausführen kann, aber kein Glück. Also, ich habe noch nie etwas geschrieben, VB, kannst du hier helfen? chrsblck vor 12 Jahren 0