Ich habe mein System so eingerichtet, daß nur der beschränkte User surfen darf
Es ist mir jedoch zu blöde, eine Klick-Orgie zu starten, um dorthin zu wechseln.
(Ich verwende nämlich die klassische Oberfläche..)
..aber dafür habe ich ja AutoIt3!
Das Skript muß den neuen User in den AutoLogOn eintragen und die Firewall starten.
Eine Abbruchmöglichkeit soll vorhanden sein und das Script darf nur für Admins
ausführbar sein. Eine Dreingabe ist, daß der neue Username und sein Kennwort per
Kommandozeile übergeben werden können.
(Wer nicht weiß, wo die Werte in der Registry stehen, oder wer sich nicht traut,
in der der Registry 'rumzuschreiben, möge diese Variante benutzen)
Es ist nicht nur Spielerei, denn ich habe auch ausprobiert, wie ich Services mit
dem ShellApp-Objekt starten kann und das war's, was ich eigentlich wollte..
Hier nun das Ergebnis(
@jonk: Diesmal ohne fileanchor und rar, purer Text..)
Spoiler anzeigen
;<AutoItScript>
;+----------------------------------------------------------------------------+
;| Header: Bestimmen der Übergabeparameter |
;| ( Alles Strings(!!!), bis auf ArgC ) |
;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
Const $Author="LogInUser.au3 ©2006 by ytwinky, MD"; |
;| AutoIt3 v 3.1.1.107 |
;| EMail: [EMAIL]PIII1kSystem-AutoIt3Forum@yahoo.de[/EMAIL] |
;| (Tastenkombination: keine) |
;| |
;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
;| Tab auf 2 setzen wg. Lesbarkeit |
Opt("MustDeclareVars", 1) ;0=no, 1=require pre-declare |
;+----------------------------------------------------------------------------+
If Not IsAdmin() Then
MsgBox(16+0x1000, "**U**", "Sorry, ohne AdminRechte geht hier gar nichts..")
Exit 27
EndIf
Const $RegKey="HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon"
Const $Usr="DefaultUserName", $Kw="DefaultPassword"
Const $MeineFireWall="spf" ;Hier den SERVICENAMEN der FireWall eintragen
Dim $RegUsr, $RegKw, $MBYes=6, $ShellApp
If $CmdLine[0]=0 Then
$RegUsr=RegRead($RegKey &"Always", $Usr &"Neu")
$RegKw=RegRead($RegKey &"Always", $Kw &"Neu")
Else
$RegUsr=$CmdLine[1]
$RegKw=$CmdLine[2]
EndIf
If MsgBox(36, @UserName &" abmelden..", "Nächster Benutzer wird " &$RegUsr)<>$MBYes Then Exit 27
$ShellApp=ObjCreate("shell.application") ;Get/Make a ShellApplicationObject
If Not $ShellApp.IsServiceRunning($MeineFireWall) Then
$MBYes=$ShellApp.ServiceStart($MeineFireWall, True)
If $MBYes=0 Then MsgBox(4096,"Ooops, " &$MeineFireWall, " nicht gestartet..")
EndIf
RegWrite($RegKey, $Usr, "REG_SZ", $RegUsr)
RegWrite($RegKey, $Kw, "REG_SZ", $RegKw)
ShutDown(0) ; so, jetzt noch abmelden --> zum neuen User..
Exit 0
;</AutoItScript>
Alles anzeigen
Möge dieses Skript auch Anderen nutzen..
Gruß
ytwinky