Code: Select all
&--91;SetupInfo&--93;
Author = Beckmann.Stefan
CreationDate = 10.01.2005
InventoryID =
Description = Führt das Finalizing durch
Method &--40;Diff/MSI/...&--41; = Manuell
Tested on W2k/NT/... =
Dependencies =
Command line options = /S2
Last change =
Build = 1
&--91;Setup&--93;
Version=6.5
ShowCaption=1
BlockInput=0
&--91;VarDefInfo&--93;
; <Variable>, <Type&--58; 0=Computer,1=User>, <Allow NULL values&--58; 0=No, 1=Yes>
; Sind Betriebssystem- Variabeln, und da diese nicht automatisch erstellt werden können, sind hier die Zeilen auskommentiert
; Domain, Ziel- Domain
;OS_ADDomain, ?, 0
; OU, Ziel- OU
;OS_ADOU, ?, 0
&--91;Requirements&--93;
&--91;Application&--93;
ProductName=BASIC_1.0_Finalize_UN
ProductNameShort=BASIC_1.0_Finalize_UN
Version=1.0
VersionDirSuffix=100
Revision=0
ServiceRelease=0
DeveloperName=Common_MDS_0.5
DeveloperNameShort=Common_MDS_0.5
SetupName=%ProductName% %Version% %SetupWizard%
Text1="Finalize", Arial, 30, , 00FFFF, 4, , LEFT BOLD ITALIC
Text2="%DeveloperName%", Arial, 24, , 00FFFF, 4, , LEFT BOLD ITALIC
Text8="%Company%", Arial, 18, , 00FFFF, 4, 15, RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial, 14, , 00FFFF, 4, -14, BOTTOM ITALIC LEFT
BackgroundColor=FF0000,000000
BackgroundPicture=
BackgroundSound=
Logo=
WizardPicture=
CopyDialogRect=0%, 0%, 100%, 100%, HCENTER VCENTER
PrecopyFiles=
UserKeyName=%DeveloperName%\%ProductName%
MachineKeyName=%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=%DeveloperNameShort% %ProductName%
UninstallDisplayName=%ProductName% %Version%
UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%SetupInfDir%\Setup.inf"
ReinstallMode=1
HideUninstall=0
SrcDir=..
ApplicationDir=%INSTALLPATH%
SetupInfDir=%ProgramFilesDir%\%DeveloperName%\%ProductName%\Install
DataDir=%Personal%
DefaultUser=
DefaultCompany=
Prompts=
RunIfInstalled=
Readme=
Execute=
Expand=0
CopyExistingFiles=0
CallTimeOut=3600
AbortAftercallTimeOut=1
AskUninstallOld=1
AskLicence=0
AskInfo=0
AskFromCD=0
AskShared=0
AskMode=0
AskDir=0
AskDataDir=0
AskUser=0
UseCompany=1
UseProductID=0
ProductIDLength=0
UseCheckmarks=2
AutoIniFileMapping=0
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
ShowShellFolder=
LicenceText=
InfoText=
RequirementsText=
UseStringSection=Strings&--58;09
UseSysStringSection=SysStrings&--58;09
PrintServer=
PrintEnvironment=
DateWarning=1
SizeWarning=1
Reboot=0
PreventExternalReboot=0
StartServicesOnReboot=0
ReplaceRunOnce=0
DisableCancelButton=1
ShowEndMessage=1
SetupExtDll=
SetupHookFunc=
&--91;Admin&--93;
AdminSetup=0
ApplicationDir=
AskDir=1
AskOptions=0
ClientSrcDir=Client
UninstallString=%ReinstallString% /U
ReinstallString="%Src%\..\..\..\..\User\Setup.exe" "%Src%\Install\Setup.inf"
&--91;Client&--93;
ClientDir=
AskDir=0
AskOptions=1
UseUninstallStringFromApplication=1
Reboot=0
&--91;Workstation&--93;
AskOptions=0
AdminUninstallLink=0
AdminUninstallLinkName=%ProductName% %Version%
UserSetupLink=0
UserSetupLinkName=%ProductName% %Version%
&--91;Strings&--58;07&--93;
SetupWizard=Installations-Assistent
InstallationFor=Installation für&--58;
Uninstallation=deinstallieren
Disk1=Diskette 1&--58; Installationsdiskette
InstallerName=Installationsprogramm
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
ProductDesc=Aktiviert den RDP
&--91;Strings&--58;09&--93;
SetupWizard=Installation Wizard
InstallationFor=Installation for&--58;
Uninstallation=Uninstallation
Disk1=Diskette 1&--58; Installation disk
InstallerName=Setup program
InstallerDesc=Service program to install single components.
ProductDesc=Aktiviert den RDP
&--91;SysStrings&--58;07&--93;
Users=Benutzer
&--91;SysStrings&--58;09&--93;
Users=Users
&--91;Environment&--93;
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=%SoftwareDepotServerName%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%
V_UserPath=\\%EmpirumServer%\CONFIGURATOR$\USER
V_PlatformPath=%SoftwareDepotServerName%\Platform$
VO_Domain=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,OS_ADDomain%%
VO_OU=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,OS_ADOU%%
&--91;Prompts&--93;
&--91;Services&--93;
&--91;EventSources&--93;
&--91;Encryption&--93;
&--91;Disks&--93;
1=%Disk1%
&--91;UserKeyNames&--93;
&--91;Icons&--93;
Product = %ProductNameShort%.ico, 0, 000000, ICON
&--91;Options&--93;
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product = %ProductName%, COPYALWAYS, Product, "%ProductDesc%"
&--91;OptionDependencies&--93;
&--91;OptionGroups&--93;
&--91;Installer&--93;
1&--58;..\..\..\..\User\Setup.exe, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1&--58;..\..\..\..\User\Setup.hlp, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1&--58;..\..\..\..\User\Setup.cnt, %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1&--58;..\..\..\..\User\Mx42SynSem.dll, %System%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1&--58;Install\Setup.inf, %SetupInfDir%\Setup.inf , NORMAL,
&--91;Product&--93;
ReplaceEnv V_PlatformPath
ReplaceEnv VO_Domain
ReplaceEnv VO_OU
Set VM_DOMAINNBT=%%%V_PlatformPath%\%KundeKuerzel%\%KundePlattform%\%KundePlattformVersion%\AD.ini,%VO_Domain%,DOMAINNBT%%
Set VM_DOMAINFQDN=%%%V_PlatformPath%\%KundeKuerzel%\%KundePlattform%\%KundePlattformVersion%\AD.ini,%VO_Domain%,DOMAINFQDN%%
Set VM_DOMAIN=%%%V_PlatformPath%\%KundeKuerzel%\%KundePlattform%\%KundePlattformVersion%\AD.ini,%VO_Domain%,DOMAIN%%
Set VM_OU=%%%V_PlatformPath%\%KundeKuerzel%\%KundePlattform%\%KundePlattformVersion%\AD.ini,%VO_Domain%,%VO_OU%%%
ReplaceEnv VM_DOMAINNBT
ReplaceEnv VM_DOMAINFQDN
ReplaceEnv VM_DOMAIN
ReplaceEnv VM_OU
--Set&--58;FirstRun
--Set&--58;JoinDomain
;~~~~~~~~~~~~~~~~~~~~~~
; Script kopieren, Variabeln setzen, ev. Autologin setzen und Setup abbrechen
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;FirstRun&--93;
;Prüffen ob das Script schon einmal ausgeführt wurde, um dann an der richtigen Stelle einzusteigen.
Set FirstRunThisSection=%HKLM,"SOFTWARE\T-Systems\MDS","DomainFQDN"%
If "%FirstRunThisSection%"="" Then "Set&--58;FirstRunRun" EndIf
&--91;Set&--58;FirstRunRun&--93;
--Reg&--58;OUandDomain
ErrorLogMsg Registry- Keys für OU und Domäne wurden erstellt
1&--58;joindom.vbs, %INSTALLPATH%\joindom.vbs , Normal, 0
; Beim ersten Login soll das Script prüffen, ob Client in Brig ist, und dementsprechend reagieren.
; Ist er nicht in Brig, soll ein Autologin ausgeführt werden, nach dem der Erste Login vertig ist.
If "%Standort%"<>"Brig" Then "Set&--58;AutologinDomainJoin" EndIf
ErrorLogMsg Das Script wurde absichtlich beendet, damit beim nächsten Login mit dem Domain Join weiter gefahren werden kan!
Abort
&--91;Reg&--58;OUandDomain&--93;
;Schrieben von diversen Werten für die Weiterverwendung
HKLM,"SOFTWARE\T-Systems\MDS","DomainNBT", 0x00000000,"%VM_DOMAINNBT%"
HKLM,"SOFTWARE\T-Systems\MDS","DomainFQDN", 0x00000000,"%VM_DOMAINFQDN%"
HKLM,"SOFTWARE\T-Systems\MDS","DestinationOU", 0x00000000,"%VM_OU%,%VM_DOMAIN%"
;~~~~~~~~~~~~~~~~~~~~~~
; Autologin
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;AutologinDomainJoin&--93;
; Ist der Client nicht in Brig, muss ein Autologin folgen, bei welchem das Finalizing gemacht wird
--Reg&--58;InstallVorOrtAutoLoginOn
ErrorLogMsg Autologin wurde konfiguriert!
&--91;Reg&--58;InstallVorOrtAutoLoginOn&--93;
;Hier wird das Autologin eingeschalten
;Hilfe, um herauszufinden, ob ein Autologing definiert war.
HKLM,"SOFTWARE\T-Systems\MDS","DomainJoinAutoLogin", 0x00000000,"Yes"
;Autologin selbst&--58;
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",AutoAdminLogon,0000000000,"1"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",DefaultDomainName,0000000000,"%ComputerName%"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",DefaultUserName,0000000000,"Administrator"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",DefaultPassword,0000000000,""
;~~~~~~~~~~~~~~~~~~~~~~
; Domain Join
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;JoinDomain&--93;
Set JoinDomainOK=%HKLM,"SOFTWARE\T-Systems\MDS","DomainJoin"%
If "%JoinDomainOK%"="OK" Then "Set&--58;End" EndIf
; Überprüffen ob Client in Brig oder beim Kunden steht
If "%Standort%"="Brig" Then "Set&--58;AbortJoinDomainStandort" Else "Set&--58;JoinDomainRun" EndIf
&--91;Set&--58;JoinDomainRun&--93;
; Durchführen des Domain Joins
Set ErrorLevel = 0
CallHidden cscript.exe %INSTALLPATH%\joindom.vbs
;Prüffen ob alles in Ordnung
If "%errorlevel%" != "0" Then "Set&--58;AbortJoinDomain" Else "Set&--58;RNGNPWDADMIN" EndIf
--Reg&--58;DomainJoin
Set DomainJoinAutoLogin=%HKLM,"SOFTWARE\T-Systems\MDS","DomainJoinAutoLogin"%
If "%DomainJoinAutoLogin%"="Yes" Then "Reg&--58;InstallVorOrtAutoLoginOff" EndIf
;Inventariseren, dammit Daten in der DB stimmen
--Set&--58;Inventory
--Set&--58;RebootDomainJoin
&--91;Reg&--58;DomainJoin&--93;
;Eintragen der Default Domäne für den nächsten Login
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","DefaultDomainName",0x00000000,"%VM_DOMAINNBT%"
;Sprunghilfe, um zu prüffen, ob der Domain Join geklappt hat.
HKLM,"SOFTWARE\T-Systems\MDS","DomainJoin",0x00000000,"OK"
&--91;Reg&--58;InstallVorOrtAutoLoginOff&--93;
;Auschalten des Autologins
-HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",AutoAdminLogon
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",DefaultUserName,0000000000,
-HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon",DefaultPassword
&--91;Set&--58;AbortJoinDomainStandort&--93;
ErrorLogMsg Der Aktuelle Standort ist %Standort%, desshalb kann das Finalize nicht durchgeführt werden.
Abort
&--91;Set&--58;AbortJoinDomain&--93;
ErrorLogMsg Domain Join konnte wegen Fehler "%errorlevel%" nicht erfolgreich ausgeführt werden!
Abort
&--91;Set&--58;RebootDomainJoin&--93;
call cmd /c "start shutdown.exe -r -f -t 2"
ErrorLogMsg Nach dem erfolgreichen Domain Join, wurde nun neu gestartet.
Abort
;~~~~~~~~~~~~~~~~~~~~~~
; Rename Admin, PW setzen
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;RNGNPWDADMIN&--93;
Set ErrorLevel = 0
; Umbenennen des Admins, Passwort setzen
Call %BINPATH%\renuser.exe \\%computername% administrator csst42
Call %BINPATH%\genpwd.exe %computername% csst42
;Prüffen ob alles in Ordnung
If "%errorlevel%" != "0" Then "Set&--58;AbortRNGENPWDAdmin" EndIf
Set ErrorLevel = 0
&--91;Set&--58;AbortRNGENPWDAdmin&--93;
ErrorLogMsg Benutzer konte nicht umbenannt werden oder es konnte kein Passwort gesetzt Werden&--58; ErrorLevel = "%errorlevel%"
Abort
;~~~~~~~~~~~~~~~~~~~~~~
; Inventory
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;Inventory&--93;
;Ausführen des Inventorys
CALL "\\%EmpirumServer%\Configurator$\User\EmpInv.exe" "\\%EmpirumServer%\Configurator$\User\EmpInv.ini" /O"\\%EmpirumServer%\EmpInv$\%ComputerName%.txt" /E /DMI /WMI /V2 /M /T
Sleep 60000
;~~~~~~~~~~~~~~~~~~~~~~
; Ende
;~~~~~~~~~~~~~~~~~~~~~~
&--91;Set&--58;End&--93;
Exit
Wir konfigurieren bei uns DHCP- Options und da auch die Option Standort. Brig ist bei uns ein Staging- Center, wo keine Kunden-Domäne vorhanden ist.
Unter Set:FirstRun wird geprüfft, ob die Rgistry- Kesy für die Domäne schon gesetzt wurd, was ein Indiz dafür ist, dass das Script schon mal ausgeführt wurde. Wenn der Key vorhanden ist wir mit dem Set:JoinDomain weitergefahren.
Wenn der Key also noch nicht gesetzt ist, kommt Set:FirstRunRun. Da werden Registry- Keys gesetzt und geprüft ob der Standort Brig ist, wenn ja bricht das Script ab. Wenn der Standort nicht Brig ist, dann wird der Bereich Set:AutologinDomainJoin ausgeführt. Da werden die Autologin Keys gesetzt. Danach läuft es in ein Abort.
Und hier ist der Hund vergraben, wenn ich nicht Brig habe, läuft das mit Set:JoinDomain weiter!