simple wsus offline

opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

simple wsus offline

Beitrag von opsibeginner »

Siehe unten... ;)
Zuletzt geändert von opsibeginner am 24 Jun 2010, 12:23, insgesamt 1-mal geändert.
COMaction
Beiträge: 130
Registriert: 10 Aug 2009, 19:33

Re: wininst -> net use?

Beitrag von COMaction »

Hi,

Also Wininst installiert meines Wissens mit dem User pcpatch.
Was ich nicht verstehe ist warum Du ein weiteres Laufwerk mappst? Leg doch die .bat Datei in Dein Produkt mit rein. Über p:\install\<produkt> hast du doch Zugriff drauf. Oder muß es Z sein?


Gruß
Michael
opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

Re: wininst -> net use?

Beitrag von opsibeginner »

Hallo.

Das geht leider nicht, da die .bat Datei von einer anderen W32 Applikation erstellt wird, welche unter Linux gar nicht funktioniert. Und da dies regelmässig und vollautomatisch passiert wäre es unnötiger Zusatzaufwand (müssten ja auch in der .bat Datei, welche einige Zeilen hat sämtliche Pfade anpassen..). Deshalb möchte ich für die Installation ja einen anderen Server benutzen, welchen ich wie gesagt als Laufwerk Z: Mappe.
Der Laufwerksbuchstabe ist übrigens nicht zwingend, haben einfach Z gewählt da dies im Netz generell noch frei war und auch nicht mit GPO / Loginscript kollidiert...

Hmm, also wenn pcpatch der lokale Winuser ist dann müsste eigentlich das Script gehen - komisch. Werde mich dementsprechend mal an die Fehlersuche machen.
opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

Re: wininst -> net use?

Beitrag von opsibeginner »

Problem gelöst.
lenny
Beiträge: 167
Registriert: 20 Mai 2009, 09:57

Re: wininst -> net use?

Beitrag von lenny »

teilst Du uns auch mit wie?
opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

Re: wininst -> net use?

Beitrag von opsibeginner »

update.exe
#include <GuiConstantsEx.au3>

GuiCreate("Schule Wallisellen - Updater", 390, 100)

GuiCtrlCreateLabel("Schule Wallisellen Updater: start.bat", 10, 22, 350, 140)
GUISetState(@SW_SHOW)

RunWait ("\\SERVERNAME\opt_pcbin\install\PAKETNAMEN\start.bat","", @SW_MINIMIZE)

sleep (6000)

GuiCtrlCreateLabel("Schule Wallisellen Updater: DoUpdate.cmd", 10, 22, 350, 140)
GUISetState(@SW_SHOW)

RunWait ("Z:\updates\cmd\DoUpdate.cmd %*","", @SW_MINIMIZE)



exit
start.bat
@echo off
Title Windows und Office update
echo .
echo PC: %COMPUTERNAME%
echo .
echo Schule Wallisellen - Updateservice
echo ==========================================
echo .

echo Mapping Networkdevice
net use z: \\WSUSSERVER\wsus$ "PASSWORT" /user:USER@DOMAIN.ch /Persistent:No
echo .
echo Verifiziere Verbindung...
if not exist Z:\updates\checkfile.cmd goto :missing
echo .
echo Verbindung Erfolgreich
echo .
echo .
echo Initialisierung abgeschlossen
echo .
echo .

goto :exit

:missing
echo .
echo ACHTUNG: SETUP ABGEBROCHEN
echo ===================================
echo .
echo Installationsdateien konnten nicht gefunden werden!
echo .
echo Netzwerkverbindung und Dateisystem checken!
echo .
pause
goto :exit

:exit

Ziel des ganzen: WSUS Offline Update der Maschine. Start.bat mapt kurz das Netzwerklaufwerk, DoUpdate.cmd ist von WSUS selber. WSUS wurde via GUI (von WSUS Offline (http://www.wsusoffline.net)) Installiert, wobei als USB-Stick Verzeichnis der Ordner: C:\wsus\update gewählt wurde, welcher als wsus$ freigegeben ist. Checkfile.cmd ist ein leeres File, einfach zum Prüfen ob der Server überhaupt gefunden wird.

Funktioniert soweit probemlos.. :)

Start.bat, wsus.ins und irgend ein icon.bmp gehören auf den OPSI-Server in das Paket hinein, welches in meinem Fall updater heisst..


wsus.ins

[Initial]
Message=Updateprozedur
LogLevel=2
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off

[Aktionen]
;Variablen fuer BetriebssystemsVersion (OS)-Test
DefVar $OS$
DefVar $MinorOS$
set $OS$ = GetOS
set $MinorOS$ = GetNTVersion

if ( $OS$ = "Windows_NT" )
ShowBitmap /3 "%scriptpath%\icon.bmp" "Update"
WinBatch_install

endif

[WinBatch_install]
%SCRIPTPATH%\updater.exe


Zugegeben, das ganze ist zusammengeklaut und etwas gebastelt aber es läuft ohne Probleme. Die DOS Datei von WSUS wird ja auch jeweils immer schön aktualisiert, somit bleibt nicht viel zu tun ausser WSUS zu Updaten und das Paket bei wichtigen Updates oder jeweils, wie bei uns auf das Wocheende, auf Setup zu setzten.
lenny
Beiträge: 167
Registriert: 20 Mai 2009, 09:57

Re: simple wsus offline

Beitrag von lenny »

Entschuldige die Blöde Frage aber warum das ganze? Wenn du eh nen WSUS am laufen hast warum willst du deine User mit der OPSI Installation gängeln? die Updates werden doch zb via GPO im Hintergrund installiert?!
opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

Re: simple wsus offline

Beitrag von opsibeginner »

Weil wir schon zuviele Dinge in der GPO haben, diese gerade noch verschiedenen Änderungen ausgesetzt sind und wir nicht MS WSUS sondern WSUS Offline einsetzten.

User nerven ist im übrigen ein Hobby von uns ;) Desweiteren können wir so nachprüfen, wann welches Update durchläuft und wir das ganze besser unter Kontrolle halten können. Es gibt hier auch viele Kisten die nichtmal in der Domain sind oder nur per VPN zu unserem Standort verbunden sind, da diese nur mit einer ~2MB ADSL Leitung haben, ist der Speed halt entsprechend mies... somit wäre eine direkte Aktualisierung via GPO für diese Maschinen sowieso undenkbar.
lenny
Beiträge: 167
Registriert: 20 Mai 2009, 09:57

Re: simple wsus offline

Beitrag von lenny »

hmm da smit den GPOs lass ich ned gelten kannst die Regkeys auch einmalig setzen lassen und die GPO dann löschen bzw wg. mir auch nur den Regkey importieren oder per OPSI setzen lassen. Dann klappts auch mit Rechnern die nicht in der Domain sind und für Standorte mit VPN gibts ja Replikatserver des WSUS :D.Und die Updateinstallation wird in der Ereignisanzeige protokolliert :-) Aber da das hier das Opsi Forum ist und nicht WSUS.de werde ich es dabei belassen :D

Sonnigen Mittwoch wünsche ich
opsibeginner
Beiträge: 37
Registriert: 31 Mai 2010, 13:44

Re: simple wsus offline

Beitrag von opsibeginner »

Auf Wunsch hier das Ganze etwas detailierter erklärt.

1.) Neues OPSi-Produkt mit dem Namen updater erstellen, als Setupdatei wsus.ins angeben.

2.) Auf einem beliebigen Server WSUS Offline installieren ( http://www.wsusoffline.net ), bzw das Zip-File in irgend einen Ordner entpacken. Auf einem Serverlaufwerk einen Share, welcher für einen Updateuser oder einen Admin zugänglich ist erstellen sowie darin einen Subfolder mit dem Namen: updates. Anschliessend UpdaterGenerator.exe aus dem entpackten Ordner ausführen, gewünschte Downloadoptionen wählen und im unteren Teil unter dem Punkt USB-Stick die zuvor erstellte Freigabe mit dem Unterodner updates angeben.

3.) Das untenstehende Script entsprechend den Pfaden (SERVERNAME durch den effektiven Servernamen ersetzten) und Texten nach Wunsch anpassen, anschliessend via AutoIt3 ( http://www.autoitscript.com/autoit3 ) compilieren. Es handelt sich um ein au3 Script. Sobald updater.exe erstellt wurde muss die Datei in den CLIENT_DATA-Ordner des neuen Produktes kopiert werden.


update.exe (bzw update.au3, welches Compiliert wird zu update.exe)

Code: Alles auswählen

#include <GuiConstantsEx.au3>

GuiCreate("Schule Wallisellen - Updater", 390, 100)

   GuiCtrlCreateLabel("Schule Wallisellen Updater: start.bat", 10, 22, 350, 140)
   GUISetState(@SW_SHOW)

RunWait ("\\SERVERNAME\opt_pcbin\install\updater\start.bat","", @SW_MINIMIZE)

sleep (6000)

   GuiCtrlCreateLabel("Schule Wallisellen Updater: DoUpdate.cmd", 10, 22, 350, 140)
   GUISetState(@SW_SHOW)

RunWait ("Z:\updates\cmd\DoUpdate.cmd %*","", @SW_MINIMIZE)



exit
4.) start.bat erstellen / anpassen. Via Notepad -> Speichern Unter eine neue .bat Datei mit dem untenstehenden Inhalt erstellen. Anschliessend den "net use" Teil entsprechend dem Benutzer, Passwort und Sharenamen anpassen. Ich habe den Ordner als wsus$ freigegeben, und im zweiten Punkt einen AD User mit dem Namen updateusr erstellt, welcher über ausreichend Rechte für den Share verfügt, da ich ungern sowas als Admin durchführe. Sobald start.bat erstellt wurde muss die Datei in den CLIENT_DATA-Ordner des neuen Produktes kopiert werden


start.bat

Code: Alles auswählen

@echo off
Title Windows und Office update
echo .
echo   PC: %COMPUTERNAME%
echo .
echo 	Updateservice
echo ==========================================
echo .

echo   Mapping Networkdevice
net use z: \\SERVERNAME\SHARENAME$ "PASSWORT" /user:BENUTZERNAME@FULLDOMAINNAME.de /Persistent:No
echo .
echo   Verifiziere Verbindung...
if not exist Z:\updates\Update.cmd goto :missing
echo .
echo   Verbindung Erfolgreich
echo .
echo .
echo   Initialisierung abgeschlossen
echo .
echo . 

goto :exit

:missing
echo .
echo 	ACHTUNG: SETUP ABGEBROCHEN
echo ===================================
echo .
echo Installationsdateien konnten nicht gefunden werden!
echo .
echo Netzwerkverbindung und Dateisystem checken!
echo .
pause
goto :exit

:exit

5.) wsus.ins Datei wie unten erstellen, diese benötigt keine weitere Anpassung. Sobald wsus.ins erstellt wurde muss die Datei in den CLIENT_DATA-Ordner des neuen Produktes (updater) kopiert werden.


wsus.ins

Code: Alles auswählen

[Initial]
Message=Updateprozedur
LogLevel=2
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off

[Aktionen]
;Variablen fuer BetriebssystemsVersion (OS)-Test
DefVar $OS$
DefVar $MinorOS$
set $OS$ = GetOS
set $MinorOS$ = GetNTVersion

if ( $OS$ = "Windows_NT" )
ShowBitmap /3 "%scriptpath%\icon.bmp" "Update"
WinBatch_install

endif

[WinBatch_install]
%SCRIPTPATH%\updater.exe
6.) Produkt gemäss Opsi-Anleitung vervollständigen (opsi-makeproductfile, opsi-package-manger -i ..). Fertig!

==================

Bekannte Probleme:
- Win Vista Servicepack: Das SP von Windows Vista bedarf eines zwingend neustartes, welcher zwar gemacht wird, jedoch ist nicht klar ob dannach das Setup erneut ausgeführt wird, theoretisch sollte es direkt nach dem Neustart weitermachen, doch ob wirklich so ist kann ich leider nicht prüfen, da wir kein Vista im Einsatz haben.
Antworten