NET-Framework als .opsi Paket
Re: NET-Framework als .opsi Paket
Hallo,
Das Problem bei allen NetFrame Produkten ab Version 2.0 SP1 glaube ich ist. Bei der manuellen Installation geht das Setup Programm hin und installiert rgb9rast, WIC und msxml6 nach, sofern es nicht auf dem PC installiert ist. Das ist das ganze Hauptproblem.
Ich hab es einfach so gemacht:
1. dotnetfx35.exe entpacken
2. Dateien msxml6 und rgb9rast suchen im VZ. Liegen unter dotnetfx35\wcu\dotNetFramework\dotNetFX30 und x86 sowie x64.
3. 3 neue Produkte erstellt und in Abhängigkeit gesetzt.
4. Framenetwork in Abhängigkeit zu den 3 anderen Produkten gesetzt.
Wenn ich jetzt Framework 3.5 oder 4.0 auf SETUP setzte püft OPSI ob die anderen Produkte schon installiert sind. Wenn NEIN dann werden diese auch auf SETUP gesetzt. Fertig.
Gruß
Michael
Das Problem bei allen NetFrame Produkten ab Version 2.0 SP1 glaube ich ist. Bei der manuellen Installation geht das Setup Programm hin und installiert rgb9rast, WIC und msxml6 nach, sofern es nicht auf dem PC installiert ist. Das ist das ganze Hauptproblem.
Ich hab es einfach so gemacht:
1. dotnetfx35.exe entpacken
2. Dateien msxml6 und rgb9rast suchen im VZ. Liegen unter dotnetfx35\wcu\dotNetFramework\dotNetFX30 und x86 sowie x64.
3. 3 neue Produkte erstellt und in Abhängigkeit gesetzt.
4. Framenetwork in Abhängigkeit zu den 3 anderen Produkten gesetzt.
Wenn ich jetzt Framework 3.5 oder 4.0 auf SETUP setzte püft OPSI ob die anderen Produkte schon installiert sind. Wenn NEIN dann werden diese auch auf SETUP gesetzt. Fertig.
Gruß
Michael
Re: NET-Framework als .opsi Paket
Würdest du im Glauben an OpenSpurce dein Installpaket zur Verfügung stellen bzw. Deine Scripte posten?
Re: NET-Framework als .opsi Paket
@lenny
Meinst Du mich? Sorry hatte viel Stress die letzten Wochen und bin heute erst wieder mal hier vobeigeschneit.
Gruß
Michael
Meinst Du mich? Sorry hatte viel Stress die letzten Wochen und bin heute erst wieder mal hier vobeigeschneit.
Gruß
Michael
Re: NET-Framework als .opsi Paket
Meine Installation läuft bereits. Aber sicher haben noch andere das gleiche Problem.
Re: NET-Framework als .opsi Paket
Ja, ich kann das skript online stellen. Mach ich wenn ich in der Firma bin.
Gruß
Michael
Gruß
Michael
Re: NET-Framework als .opsi Paket
Hat da jemand mittlerweile eine Lösung bzw. ein aktuelles Skript.COMaction hat geschrieben:Ja, ich kann das skript online stellen. Mach ich wenn ich in der Firma bin.
Gruß
Michael
Wäre nett.
Danke
MH
-
- Beiträge: 3
- Registriert: 11 Jun 2010, 15:29
Re: NET-Framework als .opsi Paket
Nach zwei Tagen Basteln habe ich folgendes Skript hinbekommen, das auf einem frisch installierten WinXP SP3 das .NET-Framework 4.0 installiert:
AutoIt3.exe ist die neuste Version von AutoIt, dotNetFx40_Full_x86_x64.exe kann man bei MS herunterladen.
Das einzige Problem ist noch, dass das Administrator-Passwort im Klartext ins das Script eingetragen werden muss. Ich probiere morgen mal (wie beim local admin) im Script einen neuen Admin-Benutzer mit Zufallspasswort anzulegen und die Installation damit auszuführen.
Ansonsten wäre es natürlich praktisch, wenn OPSI selbst eine RunAs-Funktion hätte oder wenn mir jemand verraten kann, wie man das runas von Windows automatisiert.
Viele Grüße,
Jörg Ludwig
Code: Alles auswählen
[Aktionen]
FilesSetup
ExecWithSetup "%ScriptPath%\AutoIt3.exe" WINST
FilesDelete
if not(FileExists("%systemroot%\Microsoft.NET\Framework\v4.0.30319"))
LogError "Fatal: Framework not found!"
IsFatalError
endif
[ExecWithSetup]
RunAsWait("Administrator", @ComputerName, "nopass", 1, _
'"\tmp\dotNetFx40_Full_x86_x64.exe" /passive')
[FilesSetup]
copy "%ScriptPath%\dotNetFx40_Full_x86_x64.exe" "%SystemDrive%\tmp"
[FilesDelete]
delete "%SystemDrive%\tmp\dotNetFx40_Full_x86_x64.exe"
Das einzige Problem ist noch, dass das Administrator-Passwort im Klartext ins das Script eingetragen werden muss. Ich probiere morgen mal (wie beim local admin) im Script einen neuen Admin-Benutzer mit Zufallspasswort anzulegen und die Installation damit auszuführen.
Ansonsten wäre es natürlich praktisch, wenn OPSI selbst eine RunAs-Funktion hätte oder wenn mir jemand verraten kann, wie man das runas von Windows automatisiert.
Viele Grüße,
Jörg Ludwig
-
- Beiträge: 3
- Registriert: 11 Jun 2010, 15:29
Re: NET-Framework als .opsi Paket
Installer für .NET-Framework 4.0 ist fertig. Getestet mit mehreren WinXP SP3:
install.ins:
remove.ins:
install.ins:
Code: Alles auswählen
[Initial]
Message=Installiere Microsoft .NET-Framework...
[Aktionen]
ShowBitmap "%ScriptPath%\logo.png" ".NET-Framework"
DefVar $act$
DefVar $pwd$
Set $act$ = "opsiSetupAdmin"
Set $pwd$ = randomstr
DefVar $dir$
DefVar $fn$
Set $dir$ = "%SystemDrive%\tmp"
Set $fn$ = $dir$ + "\dotNetFx40_Full_x86_x64.exe"
FilesCopy
DosBatchUserdel
DosBatchUseradd
DefStringList $res$
Set $res$ = getOutStreamFromSection("ExecWithSetup '%ScriptPath%\AutoIt3.exe' WINST")
if count($res$) = "1"
DefVar $e$
Set $e$ = takeString(0, $res$)
Comment "setup exit code: " + $e$
if ($e$ = "1614") or ($e$ = "3010")
ExitWindows /Reboot
endif
else
LogError "Fatal: Setup did not return exit code!"
IsFatalError
endif
DosBatchUserdel
FilesDelete
if not(FileExists("%systemroot%\Microsoft.NET\Framework\v4.0.30319"))
LogError "Fatal: Framework not found!"
IsFatalError
endif
[DosBatchUseradd]
net user "$act$" "$pwd$" /add
net localgroup Administratoren /add "$act$"
[FilesCopy]
copy "%ScriptPath%\dotNetFx40_Full_x86_x64.exe" "$dir$"
[ExecWithSetup]
; http://msdn.microsoft.com/library/ee942965%28v=VS.100%29.aspx
; return exit code via stdout as winst cannot read exit codes from ExecWith
$exitcode = RunAsWait("$act$", @ComputerName, "$pwd$", 1, _
'"$fn$" /passive /norestart')
if not @error then
ConsoleWrite($exitcode)
endif
[FilesDelete]
delete "$fn$"
[DosBatchUserdel]
net user "$act$" /delete
rmdir /s /q "%ProfileDir%\$act$"
Code: Alles auswählen
[Initial]
Message=Deinstalliere Microsoft .NET-Framework...
[Aktionen]
ShowBitmap "%ScriptPath%\logo.png" ".NET-Framework"
WinBatchUninstall
if FileExists("%systemroot%\Microsoft.NET\Framework\v4.0.30319")
LogError "Fatal: Framework still there!"
endif
[WinBatchUninstall]
; Microsoft .NET Framework 4 Extended
MsiExec.exe /passive /X{0A0CADCF-78DA-33C4-A350-CD51849B9702}
; Microsoft .NET Framework 4 Client Profile
MsiExec.exe /passive /X{3C3901C5-3455-3E0A-A214-0B093A5070A6}
Re: NET-Framework als .opsi Paket
Da sieht mein Skript aber komplett anders aus:
Ich bin allerdings (wie man sieht) hingegangen und habe die EXEs entpackt. Außerdem installiere ich nur den Core (Der Rest würde aber auch nicht mehr arbeit machen).
Mein Update Skript (für die Sicherheitsupdates) muss ich gerade überarbeiten. Das ist aktuell zwei Wochen alt.
Code: Alles auswählen
;# .NET Framework 4.0
;#
;# Letzte Skript Update: 2011-05-27, kdi
;# Skript Version: 1
;# Changelog (Version 11)
;# - Erste Version des Skriptes
;# - Installatrion .Net 4.0 Client
;# - installation Sicherheitsupdate MS11-028 (KB2446708)
[Initial]
SetLogLevel=5
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off
StayOnTop=false
[Aktionen]
DefVar $OS$
set $OS$ = GetOS
DefVar $NTVer$
set $NTVer$ = GetNTVersion
DefVar $sys_arch$
if ( GetSystemType = "64 Bit System" )
set $sys_arch$="x64"
else
set $sys_arch$="x86"
endif
DefVar $systemdir$
set $systemdir$ = "%System%"
DefVar $basedir$
set $basedir$ = "%SCRIPTPATH%"
DefVar $instErr$
DefVar $Reboot$
; is this a win32 system ?
if ( $OS$ = "Windows_NT" )
ShowBitmap /1 $basedir$ + "\dot_net4.png"
;# Prüfen auf Windows XP
if ( $NTVer$ = "WinXP" )
;# Prüfen ob SP3 installiert ist
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion] CSDVersion") = "Service Pack 3")
logError "Fehler: Bei Windows XP wird SP3 benötigt. Abbruch!!!")
isFatalError
endif
;# Windows Installer 4.5 V2 (KB893803-V2)
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB942288-v3] Installed") = "1" )
Message=installiere Windows Installer 4.5 (4.5.6001.22159)
ShowBitmap /1 $basedir$ + "\dot_net4.png" "Bitte Warten"
winbatch_install_KB942288
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix\KB942288-v3] Installed") = "1" )
logError "Fehler: Windows Installer 4.5 wurde nicht installiert. Abbruch!!!")
isFatalError
else
set $Reboot$ = "yes"
endif
Message=
ShowBitmap /1 $basedir$ + "\dot_net4.png"
endif
endif
;# Installiere .NET Framework 4.0 Client, wenn nicht schon installiert
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client] Install") = "1" )
;# Überprüfen, ob genug festplattenplatz zur Verfügung steht
if ( $sys_arch$="x86" ) and (not (HasMinimumSpace ("%SYSTEMDRIVE%", "600 MB")) )
logError "Fehler: Nicht genügend Platz auf C: 600 MB auf C: für MS .NET Framework 4.0 SP2 auf x86 Systemen benötigt"
isFatalError
endif
if ( $sys_arch$="x64" ) and (not (HasMinimumSpace ("%SYSTEMDRIVE%", "1500 MB")) )
logError "Fehler: Nicht genügend Platz auf C: 1500 MB auf C: für MS .NET Framework 4.0 SP2 auf x64 Systemen benötigt"
isFatalError
endif
ShowBitmap /1 $basedir$ + "\dot_net4.png" "Bitte Warten"
Message=installiere MS .NET Framework 4.0 ...
winbatch_dotnet40_install
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client] Version") = "4.0.30319" )
logError "Fehler: .NET Framework 4.0 wurde nicht korrekt installiert.")
set $instErr$ = "yes"
endif
Message=
ShowBitmap /1 $basedir$ + "\dot_net4.png"
endif
;# Sprachpakete
;# Prüfen, ob .NET Framework 4.0 SP2 installiert ist
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client] Version") = "" )
;# Installiere .NET Framework 4.0 Deutsches Sprachpaket, wenn nicht schon installiert
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1031] Install") = "1" )
ShowBitmap /1 $basedir$ + "\dot_net4.png" "Bitte Warten"
Message=installiere MS .NET Framework 4.0 SP2 Sprachpaket (deutsch)...
winbatch_dotnet40_langpack_install
if not ( GetRegistryStringValue("[HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1031] Install") = "1" )
logError "Fehler: .NET Framework 4.0 Sprachpaket Deutsch wurde nicht installiert.")
set $instErr$ = "yes"
endif
Message=
ShowBitmap /1 $basedir$ + "\dot_net4.png"
endif
endif
;# Bei fehler, Skript auf Fehler
if ( $instErr$ = "yes" )
isFatalError
endif
;# Bei Installation, Reboot nach WINST antriggern
if ( $Reboot$ = "yes" )
ExitWindows /RebootWanted
endif
else
logError "Fehler: ms_dotnet4 ist nur für Windows NT oder Höher Betriebssysteme"
endif
[winbatch_install_KB942288]
$basedir$\other_files\KB942288\update\update.exe /u /n /z /q
[winbatch_dotnet40_install]
msiexec /qb!- /i "$basedir$\main_files\dotNet4_client\netfx_Core_$sys_arch$.msi" EXTUI=1 USING_EXUIH=1 REBOOT=ReallySuppress /l* %Systemroot%\netfx40_$sys_arch$.log
[winbatch_dotnet40_langpack_install]
msiexec /qb!- /i "$basedir$\main_files\dotNet4_lang\netfx_CoreLP_$sys_arch$.msi" EXTUI=1 USING_EXUIH=1 REBOOT=ReallySuppress /l* %Systemroot%\netfx40_$sys_arch$.log
Mein Update Skript (für die Sicherheitsupdates) muss ich gerade überarbeiten. Das ist aktuell zwei Wochen alt.
Mit freundlichen Gruß
Kai Dietrich
Kai Dietrich
Re: NET-Framework als .opsi Paket
@joerg.ludwig
Vielen Dank auch. Deine Lösung hat mir sehr weitergeholfen. Mein .Net FX4 installierte sich nur nach Lust und Laune. Auch das war nicht erklärbar. Auf jeden Fall funzte es NICHT bei einer Neuinstallation eines Rechners.
Ich hoffe, dass es nun funktioniert. Auf jeden Fall lief es reibungslos durch auf einem Rechner, der sich vehement gewehrt hat...
Gruß
Thomas_H
Vielen Dank auch. Deine Lösung hat mir sehr weitergeholfen. Mein .Net FX4 installierte sich nur nach Lust und Laune. Auch das war nicht erklärbar. Auf jeden Fall funzte es NICHT bei einer Neuinstallation eines Rechners.
Ich hoffe, dass es nun funktioniert. Auf jeden Fall lief es reibungslos durch auf einem Rechner, der sich vehement gewehrt hat...
Gruß
Thomas_H
Kennst Du schon die WIKI für OPSI-Scripte? Fertige Installationsscripte bekommen und ablegen unter OPSI-Wiki
Aus dem Glashaus : UIB bietet auch Schulungen und Supportverträge für Opsi an.
Aus dem Glashaus : UIB bietet auch Schulungen und Supportverträge für Opsi an.