Automatische Anmeldung

  • Hi,

    wir haben in der Firma 20 PCs (Windows2000 )an einer Domäne. Ich habe vor, die Systeme nachts per WakeOnLan automatisch hoch zufahren, um Software zu installieren bzw. upzudaten. Das Problem ist, dass bei den PCs die automatische Anmeldung deaktiviert ist, so dass um Installationsscripte durchführen zu können, erstmal das Anmeldefenster bedient werden muss.

    Es gibt einen anderen Beitrag zu dem Thema (Windows Anmeldebildschirm ausfüllen?), leider ohne ein brauchbares Ergebnis für mich. Mein Vorhaben Schritt für Schritt:

    1. Der User (kein Admin) meldet sich ab und schaltet den PC aus.

    2. Ich lasse den PC hochfahren, die Software mit Admin-Recht installieren und den PC wieder runterfahren.

    3. Der User findet am nächsten Tag nach dem Hochfahren das Anmeldefenster vor, wo er sich ganz normal wieder anmeldet und mit der frisch installierten Software arbeitet.

    Gruß, Milko

    PS.: Ich habe mir überlegt, im Abmeldescript des PCs die erforderlichen Einträge für Autologin-Funktion in die Registry einzutragen, um nach dem automatischen Einschalten mit dem Script loszulegen und nach der Beendigung der Arbeit die Einträge wieder löschen. Das Problem ist nur, wenn der User den PC zwischendurch neu starten muss.

    PS2. Sorry für den langen Beitrag

    • Offizieller Beitrag

    Hallo!

    So könnte man das ganze lösen!

    Folgendes Script anpassen, kompilieren und auf jeden Rechner nach %SystemRoot%\System32\GroupPolicy\Machine\Scripts\Startup\ kopieren. Danach mit gpedit.msc unter "Computerkonfiguration -> Windows-Einstellungen -> Scripts (Starten/Herunterfahren) -> Starten" die EXE hinzufügen.

    Das Script sorgt dafür das beim Starten des Rechners, im Zeitraum zwischen 23:00 Uhr und 02:00 Uhr, eine automatische Anmeldung, mit den angegeben Benutzerinformationen, durchgeführt wird und von 02:01 Uhr bis 22:59 Uhr wieder der Anmeldedialog angezeigt wird.

    Spoiler anzeigen
    [autoit]

    ;~ StartUp.au3

    [/autoit] [autoit][/autoit] [autoit]

    ; Anmeldeinformationen
    Const $szUser = "Benutzername"
    Const $szPasswd = "Anmeldepasswort"
    Const $szDomain = "Anmeldedomain"

    [/autoit] [autoit][/autoit] [autoit]

    ; Zwischen 23:00 Uhr und 02:00 Uhr automatisch anmelden
    Const $szALStart = "23:00"
    Const $szALEnd = "02:00"

    [/autoit] [autoit][/autoit] [autoit]

    $szCurrentTime = @HOUR & ":" & @MIN
    $szAutoLogon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon")
    If ($szCurrentTime >= $szALStart) Or ($szCurrentTime <= $szALEnd) Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", 1)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ", $szUser)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", $szPasswd)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultDomainName", "REG_SZ", $szDomain)
    If $szAutoLogon = "0" Or $szAutoLogon = "" Then
    Shutdown(6)
    Else
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultDomainName")
    EndIf
    Else
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultDomainName")
    If $szAutoLogon = "1" Then
    sleep(30000)
    Shutdown(4)
    EndIf
    EndIf

    [/autoit]

    Die Zeitspanne für die automatische Anmeldung sollte natürlich so kurz wie möglich gehalten werden, da ja nicht unterschieden werden kann ob der Rechner über WOL oder vom Nutzer gestartet wurde. Sicherer wäre es wenn man nur einen Nutzer einträgt der nur Domäenbenutzerrechte verfügt und die Programme mit RunAs als Administrator ausführt!

    Edit:
    Script etwas abgeändert da die Anmeldeinformation immer erst nach einem Neustart ausgewertet werden!

  • Ich sage nur eins: Genial!
    Mir hat auch die Idee mit "Autologon mit Domäenbenutzerrechte" sehr gut gefallen.

    Vielen Dank Bernd.

    Viele Grüße, Milko
    -------------------------------------------------------
    Basierend auf Bernds Vorschlag habe ich es folgendermaßen realisiert:
    Domain Controller-> Startupscript für Computer:

    Spoiler anzeigen
    [autoit]


    ;~ StartUp.au3

    [/autoit] [autoit][/autoit] [autoit]

    ; Anmeldeinformationen
    Const $szUser = "UserX"
    Const $szPasswd = "UserXpasswort"
    Const $szDomain = "Domainame"
    ; Zwischen Startzeit (Uhr) und Stopzeit (Uhr) automatisch anmelden
    $ini_file = @ScriptDir & "\Autologon.ini"
    $szALStart = IniRead($ini_file, "SETTINGS", "Start_time", "01:00")
    $szALEnd = IniRead($ini_file, "SETTINGS", "Stop_time", "04:00")
    $szCurrentTime = @HOUR & ":" & @MIN
    $szAutoLogon = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon")

    [/autoit] [autoit][/autoit] [autoit]

    If ($szCurrentTime >= $szALStart) And ($szCurrentTime <= $szALEnd) Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", 1)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ", $szUser)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", $szPasswd)
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultDomainName", "REG_SZ", $szDomain)
    If $szAutoLogon = "0" Or $szAutoLogon = "" Then
    Shutdown(6)
    EndIf
    EndIf

    [/autoit]

    Domain Controller-> Logonscript für User:

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    If Not IsAdmin() Then
    RunAsSet("Adminname","Domainname","Adminpasswort")
    Run(@ScriptFullPath, @ScriptDir, @SW_HIDE)
    RunAsSet()
    Exit
    EndIf
    RunAsSet()

    [/autoit] [autoit][/autoit] [autoit]

    $Defaultusername = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon")
    if $Defaultusername="UserX" then RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName")
    RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword")

    [/autoit]

    Sonst hätte die automatische Anmeldung nicht geklappt (Windows2000).

    Einmal editiert, zuletzt von milko (22. Juni 2007 um 21:43)

  • Hallo.

    Das dieses Thema gerade nochmals angesprochen wurde folgende Frage.

    Was ist wenn der PC in keiner Domaine ist?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Es sollte auch ohne Domäne funktionieren, einfach bei Domainname den Computernamen einsetzen.

  • Hallo Bernd.

    Arbeitet wirklich mit dem Computernamen stattd er Domain.

    Vielen Dank !

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl