Führen Sie automatisch ein Skript aus, wenn Sie sich bei Windows anmelden

124473
Hallgrim

Wie kann ich automatisch ein Skript ausführen, wenn ich mich bei Windows anmelde?

Ich möchte etwas ausführen, wenn ich mich an meinem Computer anmelde:

echo %USERNAME% logged on at %DATE% %TIME% >> log.txt 

Ein Bonus wäre, dass Sie immer das gleiche Skript ausführen können, wenn ich den Bildschirmschoner freischalte.

25
Die angefügte Antwort ist sehr hoch Oktan - mit Ihrem Einliner biete ich etwas bescheideneres (aber effektiveres) an ... ;-) Jeff vor 9 Jahren 0

6 Antworten auf die Frage

22
Ivo Flipse

Wenn Sie bereits ein Skript haben:

So weisen Sie einem Benutzer oder einer Gruppe ein Anmeldeskript zu

  • Öffnen Sie die Computerverwaltung.
  • Klicken Sie in der Konsolenstruktur auf Benutzer.

Woher? Systemprogramme / Lokale Benutzer und Gruppen / Benutzer

  • Doppelklicken Sie auf den Benutzer, dem Sie ein Anmeldeskript zuweisen möchten.
  • Klicken Sie auf die Registerkarte Profil.
  • Geben Sie im Feld Anmeldeskript den Pfad und den Namen des Anmeldeskripts ein, das Sie diesem Benutzer zuweisen möchten, und klicken Sie dann auf OK.

Ansonsten ist hier ein praktisches "HowTo" von Microsoft

Anmeldeskripte erstellen

Sie können Anmeldeskripts verwenden, um Aufgaben zuzuweisen, die ausgeführt werden, wenn sich ein Benutzer an einem bestimmten Computer anmeldet. Die Skripts können Betriebssystembefehle ausführen, Systemumgebungsvariablen festlegen und andere Skripts oder ausführbare Programme aufrufen. Die Windows Server 2003-Produktfamilie unterstützt zwei Skriptumgebungen: Der Befehlsprozessor führt Dateien mit Batch-Sprachbefehlen aus, und Windows Script Host (WSH) führt Dateien mit Microsoft Visual Basic Scripting Edition (VBScript) - oder Jscript-Befehlen aus. Sie können einen Texteditor verwenden, um Anmeldeskripts zu erstellen. Einige Aufgaben, die normalerweise von Anmeldeskripts ausgeführt werden, sind:

  • Netzlaufwerke zuordnen.
  • Standarddrucker eines Benutzers installieren und einstellen.
  • Computersysteminformationen sammeln.
  • Aktualisieren von Virensignaturen.
  • Software aktualisieren.
  • Das folgende Beispielanmeldeskript enthält VBScript-Befehle, die Active Directory verwenden
  • Service Interfaces (ADSI) zum Ausführen von drei allgemeinen Aufgaben basierend auf der Gruppenmitgliedschaft eines Benutzers:

Es ordnet das Laufwerk H: dem Ausgangsverzeichnis des Benutzers zu, indem es die MapNetworkDrive-Methode des WSH Network-Objekts in Kombination mit der UserName-Eigenschaft des WSH Network-Objekts aufruft. Es verwendet das ADSI-Objekt IADsADSystemInfo, um den definierten Namen des aktuellen Benutzers abzurufen, der wiederum für die Verbindung mit dem entsprechenden Benutzerobjekt in Active Directory verwendet wird. Sobald die Verbindung hergestellt ist, wird die Liste der Gruppen, in denen der Benutzer Mitglied ist, mithilfe des Attributs memberOf des Benutzers abgerufen. Die mehrwertige Liste der Gruppennamen wird mithilfe der Join-Funktion von VBScript zu einer einzelnen Zeichenfolge zusammengefügt, um die Suche nach Zielgruppennamen zu erleichtern.

Wenn der aktuelle Benutzer Mitglied einer der drei Gruppen ist, die oben im Skript definiert wurden, ordnet das Skript das Laufwerk G: des Benutzers dem gemeinsam genutzten Laufwerk der Gruppe zu und legt den Standarddrucker des Benutzers als Gruppendrucker fest. So erstellen Sie ein Beispielanmeldeskript

  • Öffnen Sie den Editor.
  • Kopieren und fügen Sie Folgendes ein oder geben Sie Folgendes ein:

    Const ENGINEERING_GROUP = "cn=engineering" Const FINANCE_GROUP = "cn=finance" Const HUMAN_RESOURCES_GROUP = "cn=human resources"  Set wshNetwork = CreateObject("WScript.Network") wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.UserName  Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf))  If InStr(strGroups, ENGINEERING_GROUP) Then  wshNetwork.MapNetworkDrive "g:", "\\FileServer\Engineering\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\EngLaser" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\Plotter" wshNetWork.SetDefaultPrinter "\\PrintServer\EngLaser"  ElseIf InStr(strGroups, FINANCE_GROUP) Then  wshNetwork.MapNetworkDrive "g:", "\\FileServer\Finance\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\FinLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\FinLaser"  ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then  wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\" wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser" wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser"  End If 
  • Klicken Sie im Menü Datei auf Speichern unter.

  • Klicken Sie unter Speichern in auf das Verzeichnis, das dem freigegebenen Ordner Netlogon des Domänencontrollers entspricht (normalerweise SystemRoot \ SYSVOL \ Sysvol \ DomainName \ Scripts, wobei Domänenname der vollständig qualifizierte Domänenname der Domäne ist).
  • Klicken Sie unter Dateityp auf Alle Dateien.
  • Geben Sie unter Dateiname einen Dateinamen gefolgt von .vbs ein, und klicken Sie dann auf Speichern. WSH verwendet die Erweiterung .vbs, um Dateien zu identifizieren, die VBScript-Befehle enthalten.
Es war immer schön zu sehen, dass jemand die Antwort mochte :-D Ivo Flipse vor 14 Jahren 0
Ich möchte fast diesen CW drehen und ihn markieren [faq] :) quack quixote vor 14 Jahren 0
Sei mein Gast @quack ;-) FAQ für was eigentlich? Ivo Flipse vor 14 Jahren 0
16
Jeff

Sie können eine geplante Aufgabe erstellen, die ausgeführt wird, wenn Ihr Computer entsperrt ist:

  1. Start> Verwaltung> Taskplaner
  2. linker Bereich: Wählen Sie Taskplaner-Bibliothek
  3. Rechter Bereich: Klicken Sie auf Task erstellen ... (HINWEIS: Nur so erhalten Sie den richtigen Auslöser.)
  4. im Dialogfeld "Aufgabe erstellen":
    • Registerkarte Allgemein - Geben Sie einen Namen für Ihre Aufgabe an
    • Registerkarte "Trigger" - Klicken Sie auf "Neu" und wählen Sie "Auf Workstation entsperren"
    • Registerkarte Aktion - Klicken Sie auf Neu ... und klicken Sie auf Durchsuchen ..., um Ihr Skript zu finden
    • Registerkarte "Bedingungen" - Deaktivieren Sie das Kontrollkästchen "Task starten" nur, wenn der Computer mit Strom versorgt wird

Außerdem habe ich den Pfad im Skript angepasst, um ihn zu lesen

echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt 
14
Bruce McLeod

Der einfachste Weg, den ich mir vorstellen kann, wäre, dies in einer .bat-Datei in Ihrem Startordner abzulegen.

Ein komplizierterer Weg wäre das Hinzufügen der Batchdatei zur Registrierung in der

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 

Registrierungsschlüssel.

Wenn Sie dies ausführen möchten, wenn sich ** ein ** Benutzer anmeldet, müssen Sie ihn in den Startordner All Users (*% allusersprofile% / Startmenü \ Programme \ Startup *) stellen oder einen Eintrag im Abschnitt Ausführen vornehmen des LocalMachine-Verzeichnisses: * HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run *) Treb vor 14 Jahren 8
Ich führe eine .exe-Datei durch, aber gibt es eine Möglichkeit, sie ruhig auszuführen? Ohne Cmd zu öffnen und offen zu halten? bzupnick vor 9 Jahren 0
2
Axxmasterr

Eine gute alternative Methode ist das Erstellen einer Batchdatei mit den Befehlen, die Sie ausführen möchten. Als Nächstes legen Sie im Richtlinieneditor auf dem Computer fest, dass ein Anmeldeskript als Teil des Anmeldeprozesses ausgeführt wird. Ein kurzer Hinweis ist, dass diese Option nur in XP Pro verfügbar ist und nicht in der Home-Version.

Lernprogramm für Gruppenrichtlinien-Editor hier

2
Tomas Tintera

Weiß jemand, ob dies zum Ausführen verwendet werden kann, wenn der Bildschirm ebenfalls gesperrt / entsperrt ist?

Es gibt eine Möglichkeit für Windows 7 und / oder Windows Server 2008.

Verwenden Sie den Taskplaner, erstellen Sie eine neue grundlegende Task, da der Auslöser "Beim Anmelden" verwendet.

Sie können keine Basisaufgabe verwenden, wenn der Auslöser "Auf Workstation entsperren" sein soll. Jeff vor 9 Jahren 0
1
Aryeh Leib Taurog

Das ist nicht nötig! Windows verfügt bereits über einen Mechanismus, um dies im Ereignisprotokoll für Sie zu protokollieren. Die Ereignis-ID lautet 4624 (528 bei Systemen vor Vista).