Seite 4 von 5
Re: NET-Framework als .opsi Paket
Verfasst: 18 Aug 2010, 18:07
von COMaction
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
Re: NET-Framework als .opsi Paket
Verfasst: 22 Sep 2010, 10:54
von lenny
Würdest du im Glauben an OpenSpurce dein Installpaket zur Verfügung stellen bzw. Deine Scripte posten?
Re: NET-Framework als .opsi Paket
Verfasst: 07 Okt 2010, 07:18
von COMaction
@lenny
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
Verfasst: 07 Okt 2010, 13:55
von lenny
Meine Installation läuft bereits. Aber sicher haben noch andere das gleiche Problem.
Re: NET-Framework als .opsi Paket
Verfasst: 08 Okt 2010, 07:10
von COMaction
Ja, ich kann das skript online stellen. Mach ich wenn ich in der Firma bin.
Gruß
Michael
Re: NET-Framework als .opsi Paket
Verfasst: 20 Okt 2010, 12:09
von mhaegele
COMaction hat geschrieben:Ja, ich kann das skript online stellen. Mach ich wenn ich in der Firma bin.
Gruß
Michael
Hat da jemand mittlerweile eine Lösung bzw. ein aktuelles Skript.
Wäre nett.
Danke
MH
Re: NET-Framework als .opsi Paket
Verfasst: 18 Nov 2010, 22:05
von joerg.ludwig
Nach zwei Tagen Basteln habe ich folgendes Skript hinbekommen, das auf einem frisch installierten WinXP SP3 das .NET-Framework 4.0 installiert:
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"
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
Re: NET-Framework als .opsi Paket
Verfasst: 19 Nov 2010, 22:56
von joerg.ludwig
Installer für .NET-Framework 4.0 ist fertig. Getestet mit mehreren WinXP SP3:
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$"
remove.ins:
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
Verfasst: 20 Jun 2011, 14:17
von heuft_kdi
Da sieht mein Skript aber komplett anders aus:
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
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.
Re: NET-Framework als .opsi Paket
Verfasst: 08 Nov 2011, 08:59
von Thomas_H
@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