So mein 1. Script angefertigt durch zahlreiche Hilfe von Usern hier und natürlich mich ![]()
Danke Danke
schwierig für euch es ist sehr an meine Bedürfnisse angepasst, also ausprobieren wird schwer.
Vlt können sich ja einige neue User einige Anregungen holen. Auf jedenfall bin ich jetzt ein wenig vertraut damit und werde AutoIt weiterhin nutzen, weil es einfach fetzt ![]()
Zum Script:
1. vlt fallen euch ja einige verbesserungsvorschläge ein
2. die automatische ummeldung von lokal auf die domaine funktioniert nicht ![]()
3. self delete funktioniert noch nicht
hier das Script ![]()
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.1
Author: Tobias Plewka
Script Function:
Startscript nach einem neuen Image und einem neu angelegtem Benutzer
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit];#RequireAdmin
#include <Process.au3>
#include <AD.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
If FileExists(@ScriptDir & "\status.ini") Then
$wert = IniRead(@ScriptDir & "\status.ini", "aktion", "key", "")
Else
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "2")
$wert = 1
EndIf
Switch $wert
Case 1
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ", "xxx")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", "xxx")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", "1")
;Computernamen ändern
SplashTextOn("Fortschritt","Installationsschritt 1/5" & @CRLF & @CRLF &"Computername wird geändert...","500","400", @DesktopWidth -500,@DesktopHeight -400,35,"",16)
#Region ### START Koda GUI section ### Form=D:\Scripte\Startscript\PCNamenchange.kxf
$Form1 = GUICreate("Namen ändern...", 243, 88, 342, 248)
$Label1 = GUICtrlCreateLabel("Computernamen eingeben:", 8, 8, 197, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$edPcname2 = GUICtrlCreateInput("", 8, 32, 225, 21)
GUICtrlSetLimit(-1, 15)
$Button1 = GUICtrlCreateButton("Computernamen ändern!", 8, 56, 227, 25)
GUISetState(@SW_SHOW)
$hMenu = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form1, "int", 0) ;Deaktiviert das schließen des Fensters
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu[0], "int", 0xF060, "int", 0x1);Deaktiviert das schließen des Fensters
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$pcname2 = GuiCtrlRead($edPcname2)
GuiSetState(@SW_Hide)
ExitLoop
EndSwitch
WEnd
ShellExecute("C:\Windows\System32\sysdm.cpl")
WinWait("Systemeigenschaften")
ControlClick("Systemeigenschaften", "", "Button2")
Send("!n")
ControlSend("Ändern des Computernamens bzw. der Domäne","",1002,$pcname2)
Send("{ENTER}")
Sleep(10000)
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "2")
MsgBox(48,"Neustart","Der Computer wird in 5sek neugestartet",5)
SplashOff()
_RunDOS("shutdown -r")
Case 2
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
SplashTextOn("Fortschritt","Installationsschritt 2/5" & @CRLF & @CRLF &"Computername wird zur Domäne hinzugefügt...","500","400", @DesktopWidth -500,@DesktopHeight -400,35,"",16)
#Region ### START Koda GUI section ### Form=form1.kxf
$Form1_1 = GUICreate("Anmeldung", 263, 129, 214, 180, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP))
$txtPCName = GUICtrlCreateLabel("Domain Authentifizierung:", 5, 6, 187, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$edADMUser = GUICtrlCreateInput("", 72, 36, 185, 21)
$btnSend = GUICtrlCreateButton("Login!", 8, 96, 251, 25)
$edADMPw = GUICtrlCreateInput("", 72, 68, 185, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Label1 = GUICtrlCreateLabel("Username:", 4, 36, 70, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Passwort:", 4, 68, 62, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
$hMenu = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $Form1_1, "int", 0) ;Deaktiviert das schließen des Fensters
DllCall("user32.dll", "hwnd", "EnableMenuItem", "hwnd", $hMenu[0], "int", 0xF060, "int", 0x1);Deaktiviert das schließen des Fensters
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $edADMUser
Case $edADMPw
Case $btnSend
$ADMUser = GuiCtrlRead($edADMUser)
$ADMPw = GuiCtrlRead($edADMPw)
GuiSetState(@SW_Hide)
ExitLoop
EndSwitch
WEnd
ShellExecute("C:\Windows\System32\sysdm.cpl")
WinWait("Systemeigenschaften")
ControlClick("Systemeigenschaften", "", "Button2")
Send("!n")
ControlClick("Ändern des Computernamens bzw. der Domäne", "",1008)
ControlSend("Ändern des Computernamens bzw. der Domäne","",116,"siv")
ControlClick("Ändern des Computernamens bzw. der Domäne", "",1)
WinWaitActive("Windows-Sicherheit")
ControlSend("Windows-Sicherheit","",116,"siv")
ControlSend("Windows-Sicherheit","","[CLASSNN:Edit1; INSTANCE:1]",$ADMUser)
Sleep(1000)
Send("{TAB}")
Sleep(1000)
ControlSend("Windows-Sicherheit","","[CLASSNN:Edit2; INSTANCE:2]",$ADMPw)
Sleep(1000)
Send("{ENTER}")
#cs
$iAD_Debug = 2
_AD_Open("","","DC=siv,DC=de","ads01.siv.de","CN=Configuration,DC=siv,DC=de")
_AD_CreateComputer(
_AD_JoinDomain($pcname)
MsgBox(0,"Fehlermeldung:","Error Code: "& @error)
_AD_Close()
#ce
Sleep(5000)
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 2/5" & @CRLF & @CRLF & "Adminrechte werden vergeben")
$name = @ComputerName
$nameneu = StringTrimRight($name, 5)
$sCmdGroups = ("net localgroup Administratoren " & $nameneu & " /add")
_RunDOS($sCmdGroups)
Sleep(5000)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ", $nameneu)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", "xxx")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultDomainName", "REG_SZ", "siv")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", "1")
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "3")
MsgBox(48,"Neustart","Der Computer wird in 5 Sekunden neugestartet",5)
SplashOff()
_RunDOS("shutdown -r")
Case 3
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
;zu lokalen Gruppen hinzufügen(Adminrechte)
if @UserName = "superich" Then
#Region ### START Koda GUI section ### Form=C:\Users\superich\Desktop\FehlerSuperIch.kxf
$Form1 = GUICreate("Fehlermeldung", 491, 186, 192, 124)
GUISetBkColor(0xFF0000)
$Label1 = GUICtrlCreateLabel("!!!Sie sind im Moment als Superich angemeldet!!!", 16, 8, 462, 28)
GUICtrlSetFont(-1, 15, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Bitte abmelden und als neu registrierter User anmelden", 21, 59, 447, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Abmelden", 40, 104, 395, 57)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_RunDos("shutdown /l")
EndSwitch
WEnd
EndIf
SplashTextOn("Fortschritt","Installationsschritt 3/5" & @CRLF & @CRLF &"Benutzerrechte werden angepasst...","500","400", @DesktopWidth -500,@DesktopHeight -400,35,"",16)
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 3/5" & @CRLF & @CRLF & "Hauptbenutzerrechte werden vergeben")
$sCmdGroups = ("net localgroup Hauptbenutzer " & @Username & " /add")
_RunDOS($sCmdGroups)
Sleep(5000)
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 3/5" & @CRLF & @CRLF & "Netzwerkkonfigurationsrechte werden vergeben")
$sCmdGroups = ("net localgroup Netzwerkkonfigurations-Operatoren " & @Username & " /add")
_RunDOS($sCmdGroups)
Sleep(5000)
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 3/5" & @CRLF & @CRLF & "Remotedesktoprechte werden vergeben")
$sCmdGroups = ("net localgroup Remotedesktopbenutzer " & @Username & " /add")
_RunDOS($sCmdGroups)
Sleep(5000)
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "4")
MsgBox(48,"Abmelden","Sie werden in 5 Sekunden vom Computer abgemeldet!",5)
SplashOff()
_RunDOS("shutdown /l")
Case 4
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
if @UserName = "superich" Then
#Region ### START Koda GUI section ### Form=C:\Users\superich\Desktop\FehlerSuperIch.kxf
$Form1 = GUICreate("Fehlermeldung", 491, 186, 192, 124)
GUISetBkColor(0xFF0000)
$Label1 = GUICtrlCreateLabel("!!!Sie sind im Moment als Superich angemeldet!!!", 16, 8, 462, 28)
GUICtrlSetFont(-1, 15, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Bitte abmelden und als neu registrierter User anmelden", 21, 59, 447, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Abmelden", 40, 104, 395, 57)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_RunDos("shutdown /l")
EndSwitch
WEnd
EndIf
SplashTextOn("Fortschritt","Installationsschritt 4/5" & @CRLF & @CRLF & "Netzlaufwerke werden verbunden...","500","400", @DesktopWidth -500,@DesktopHeight -400,35,"",16)
;###################sämtliche Benutzereinstellungen###################
;Netzlaufwerke verbinden
Dim $nwdrive [14][2]
$nwdrive [0][0] = "G:"
$nwdrive [0][1] = "\\filer\gf"
$nwdrive [1][0] = "I:"
$nwdrive [1][1] = "\\filer\CCT"
$nwdrive [2][0] = "K:"
$nwdrive [2][1] = "\\filer\kunden.abi"
$nwdrive [3][0] = "L:"
$nwdrive [3][1] = "\\filer\appl"
$nwdrive [4][0] = "M:"
$nwdrive [4][1] = "\\filer\appl"
$nwdrive [5][0] = "Q:"
$nwdrive [5][1] = "\\filer\appl"
$nwdrive [6][0] = "R:"
$nwdrive [6][1] = "\\filer\appl"
$nwdrive [7][0] = "S:"
$nwdrive [7][1] = "\\filer\appl"
$nwdrive [8][0] = "T:"
$nwdrive [8][1] = "\\filer\appl"
$nwdrive [9][0] = "V:"
$nwdrive [9][1] = "\\filer\appl"
$nwdrive [10][0] = "W:"
$nwdrive [10][1] = "\\filer\appl"
$nwdrive [11][0] = "X:"
$nwdrive [11][1] = "\\filer\appl"
$nwdrive [12][0] = "Y:"
$nwdrive [12][1] = "\\filer\appl"
$nwdrive [13][0] = "Z:"
$nwdrive [13][1] = "\\filer\users\" & @UserName
For $i = 0 To (Ubound($nwdrive) - 1) Step +1 ;durchlaufe das Array von 0 bis max. Anzahl von Arrayinhalten(Programme)
if DriveMapGet($nwdrive[$i][0]) <> (@error = 1) Then
DriveMapAdd($nwdrive[$i][0], $nwdrive[$i][1])
EndIf
Next
FileCopy("C:\Benutzer_Sachen\ocspaket7\ocs-service-update", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\",1)
[/autoit] [autoit][/autoit] [autoit];Drucker einrichten
[/autoit] [autoit][/autoit] [autoit];Programme mit Adminrechten ausführen
Dim $programs[14][3]
$programs[0][0] = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" ;Pfad zum Programm
$programs[0][1] = "" ;Parameter zum ausführen "" = standard
$programs[0][2] = "firefox.exe" ;Prozessname zum schließen
$programs[1][0] = "C:\Program Files (x86)\FreeCommander\FreeCommander.exe"
$programs[1][1] = ""
$programs[1][2] = "FreeCommander.exe"
$programs[2][0] = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
$programs[2][1] = ""
$programs[2][2] = "AcroRd32.exe"
$programs[3][0] = "C:\Program Files (x86)\HC_Software\infoBoard_Client\infoBoard.exe"
$programs[3][1] = ""
$programs[3][2] = "infoBoard.exe"
$programs[4][0] = "C:\Program Files (x86)\Citrix\ICA Client\pn.exe"
$programs[4][1] = ""
$programs[4][2] = "pn.exe"
$programs[5][0] = "C:\Program Files (x86)\Internet Explorer\iexplore.exe"
$programs[5][1] = ""
$programs[5][2] = "iexplorer.exe"
$programs[6][0] = "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
$programs[6][1] = ""
$programs[6][2] = "EXCEL.EXE"
$programs[7][0] = "C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE"
$programs[7][1] = ""
$programs[7][2] = "WINWORD.EXE"
$programs[8][0] = "C:\Program Files (x86)\Microsoft Office\Office12\POWERPNT.EXE"
$programs[8][1] = ""
$programs[8][2] = "POWERPNT.EXE"
$programs[9][0] = "C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE"
$programs[9][1] = ""
$programs[9][2] = "OUTLOOK.EXE"
$programs[10][0] = "C:\Program Files (x86)\Notepad++\notepad++.exe"
$programs[10][1] = ""
$programs[10][2] = "notepad++.exe"
$programs[11][0] = "C:\Program Files\PSQL\plsqldev.exe"
$programs[11][1] = ""
$programs[11][2] = "plsqldev.exe"
$programs[12][0] = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SIV.Applikationen\TeamViewerQS.exe"
$programs[12][1] = ""
$programs[12][2] = "TeamViewer.exe"
$programs[13][0] = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SIV.Applikationen\OCS-Paket-Update.exe"
$programs[13][1] = ""
$programs[13][2] = "OCS-Paket-Update.exe"
$ausgabe =""
For $i = 0 To (UBound($programs) - 1) Step +1 ;durchlaufe das Array von 0 bis max. Anzahl von Arrayinhalten(Programme)
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 4/5" & @CRLF & @CRLF & $programs[$i][2])
ShellExecute($programs[$i][0], $programs[$i][1]) ;ausführen des Programs
If ProcessExists($programs[$i][2]) Then
Sleep(10000)
ProcessClose($programs[$i][2]) ;schließe das Programm
EndIf
ProcessWaitClose($programs[$i][2])
Next
;Systemsteuerung -> Java -> temp. Internetdateien -> Speicher auf 50 MB setzen
[/autoit] [autoit][/autoit] [autoit];Outlook einrichten
[/autoit] [autoit][/autoit] [autoit];FileCopy("C:\Users\superich\Virtual Machines\Windows XP Mode.vmcx","@UserProfileDir\Virtual Machines\Windows XP Mode.vmcx",1) ;kopiert die VM
[/autoit] [autoit][/autoit] [autoit];automatische Installation von FirePassF5
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 4/5" & @CRLF & @CRLF & "Firepass wird installiert")
Run(@COMSPEC & " /c " & "msiexec /i C:\Benutzer_Sachen\GatewayF5\FirePassComponentInstaller.msi" )
WinWaitActive("[CLASS:#32770]","")
WinActivate("[TITLE:Datei öffnen - Sicherheitswarnung]")
Send ("!u")
WinWaitActive("[CLASS:MsiDialogCloseClass]","","")
Send ("!i")
WinWaitActive("[CLASS:MsiDialogCloseClass]","&Finish","")
Send("!f")
ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 4/5" & @CRLF & @CRLF & "Zertifikate werden hinzugefügt")
$sCommand = ('certutil -addstore root "C:\Benutzer_Sachen\Zertifikate\cert_ca.crt"')
_RunDOS($sCommand)
$sCommand = ('certutil -addstore root "C:\Benutzer_Sachen\Zertifikate\cert_ca_gateway.crt"')
_RunDOS($sCommand)
$sCommand = ('certutil -addstore root "C:\Benutzer_Sachen\Zertifikate\rootsiv.cer"')
_RunDOS($sCommand)
;WLAN Passwort setzen
[/autoit] [autoit][/autoit] [autoit]ControlSetText("Fortschritt","","[CLASS:Static; INSTANCE:1]","Installationsschritt 4/5" & @CRLF & @CRLF & "Adminrechte werden entzogen")
$sCmdGroups = ("net localgroup Administratoren " & @Username & " /delete")
_RunDOS($sCmdGroups)
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "5")
MsgBox(48,"Neustart","Der Computer wird in 5 Sekunden neugestartet",5)
SplashOff()
_RunDOS("shutdown -r")
Case 5
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
SplashTextOn("Fortschritt","Installationsschritt 5/5" & @CRLF & @CRLF & "Startscript beendet!","500","400", @DesktopWidth -500,@DesktopHeight -400,35,"",16)
;auflisten von aufgetretenden Fehlern
IniWrite(@ScriptDir & "\status.ini", "aktion", "key", "6")
SplashOff()
Case 6
sleep(1000)
WinSetState("status.ini","",@SW_HIDE)
sleep(1000)
FileDelete(@ScriptDir & "\status.ini")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ", "")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", "")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", "0")
_SelfDelete()
EndSwitch
Func _SelfDelete($iDelay = 0)
Local $sCmdFile
FileDelete(@TempDir & "\scratch.bat")
$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
& ':loop' & @CRLF _
& 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
& 'del ' & @TempDir & '\scratch.bat'
FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
EndFunc ;==>_SelfDelete