Andere Helfer: Unterschied zwischen den Versionen
HK (Diskussion | Beiträge) (→Installation) |
HK (Diskussion | Beiträge) (→Installation) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 64: | Zeile 64: | ||
* Das share \\server\wsusoffline zeigt auf wsusoffline\client | * Das share \\server\wsusoffline zeigt auf wsusoffline\client | ||
+ | * mssn.exe und wu.cmd werden auf den Client-PC nach c:\wsusupdate kopiert. | ||
+ | * Aufruf zur Installation des Scriptes wu.cmd als Service. | ||
+ | <br> | ||
+ | OPSI-Paket wsusupdate-installer: setup.ins | ||
+ | |||
+ | <source lang="bash"> | ||
+ | |||
+ | ; Copyright (c) uib gmbh (www.uib.de) | ||
+ | ; This sourcecode is owned by uib | ||
+ | ; and published under the Terms of the General Public License. | ||
+ | ; credits: http://www.opsi.org/en/credits/ | ||
+ | |||
+ | [Actions] | ||
+ | requiredWinstVersion >= "4.11.4.6" | ||
+ | ScriptErrorMessages=off | ||
+ | |||
+ | DefVar $MsiId$ | ||
+ | DefVar $UninstallProgram$ | ||
+ | DefVar $LogDir$ | ||
+ | DefVar $ProductId$ | ||
+ | DefVar $MinimumSpace$ | ||
+ | DefVar $InstallDir$ | ||
+ | DefVar $ExitCode$ | ||
+ | DefVar $myProperty$ | ||
+ | |||
+ | Set $LogDir$ = "%opsiLogDir%" | ||
+ | |||
+ | ; ---------------------------------------------------------------- | ||
+ | ; - Please edit the following values - | ||
+ | ; ---------------------------------------------------------------- | ||
+ | ;$ProductId$ should be the name of the product in opsi | ||
+ | ; therefore please: only lower letters, no umlauts, | ||
+ | ; no white space use '-' as a seperator | ||
+ | Set $ProductId$ = "wsusoffline-installer" | ||
+ | Set $MinimumSpace$ = "5 MB" | ||
+ | ; the path were we find the product after the installation | ||
+ | Set $InstallDir$ = "c:\wsusupdate" | ||
+ | ; ---------------------------------------------------------------- | ||
+ | |||
+ | if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) | ||
+ | LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ | ||
+ | isFatalError "No Space" | ||
+ | ; Stop process and set installation status to failed | ||
+ | else | ||
+ | comment "Show product picture" | ||
+ | ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ | ||
+ | |||
+ | |||
+ | if FileExists("%ScriptPath%\delsub32.opsiscript") | ||
+ | |||
+ | comment "Start uninstall sub section" | ||
+ | Sub "%ScriptPath%\delsub32.opsiscript" | ||
+ | endif | ||
+ | |||
+ | Message "Installing " + $ProductId$ + " ..." | ||
+ | |||
+ | |||
+ | comment "Start setup program" | ||
+ | ChangeDirectory "%SCRIPTPATH%" | ||
+ | |||
+ | comment "Copy files" | ||
+ | Files_install /32Bit | ||
+ | |||
+ | comment "Install service" | ||
+ | DosInAnIcon_setupservice | ||
+ | DosInAnIcon_configservice | ||
+ | DosInAnIcon_startservice | ||
+ | ; comment "Patch Registry" | ||
+ | ; Registry_install /32Bit | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | endif | ||
+ | |||
+ | [Files_install] | ||
+ | ; Example of recursively copying some files into the installation directory: | ||
+ | ; | ||
+ | copy -s "%ScriptPath%\wsusupdate\*.*" "$InstallDir$" | ||
+ | |||
+ | |||
+ | |||
+ | [DosInAnIcon_setupservice] | ||
+ | cd c:\ | ||
+ | c:\wsusupdate\nssm.exe install wsusupdate C:\wsusupdate\wu.cmd | ||
− | + | [DosInAnIcon_configservice] | |
− | + | cd c:\ | |
+ | c:\wsusupdate\nssm.exe set wsusupdate AppExit Default Exit | ||
+ | [DosInAnIcon_startservice] | ||
+ | cd c:\ | ||
+ | c:\wsusupdate\nssm.exe start wsusupdate | ||
+ | |||
+ | [Registry_install] | ||
+ | ; Example of setting some values of an registry key: | ||
+ | ; | ||
+ | ; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$] | ||
+ | ; set "name1" = "some string value" | ||
+ | ; set "name2" = REG_DWORD:0001 | ||
+ | ; set "name3" = REG_BINARY:00 af 99 cd | ||
+ | |||
+ | |||
+ | [Sub_check_exitcode] | ||
+ | comment "Test for installation success via exit code" | ||
+ | set $ExitCode$ = getLastExitCode | ||
+ | ; informations to exit codes see | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx | ||
+ | ; http://msdn.microsoft.com/en-us/library/aa368542.aspx | ||
+ | if ($ExitCode$ = "0") | ||
+ | comment "Looks good: setup program gives exitcode zero" | ||
+ | else | ||
+ | comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ | ||
+ | if ($ExitCode$ = "1605") | ||
+ | comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." | ||
+ | comment "Uninstall of a not installed product failed - no problem" | ||
+ | else | ||
+ | if ($ExitCode$ = "1641") | ||
+ | comment "looks good: setup program gives exitcode 1641" | ||
+ | comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a | ||
+ | else | ||
+ | if ($ExitCode$ = "3010") | ||
+ | comment "looks good: setup program gives exitcode 3010" | ||
+ | comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is | ||
+ | else | ||
+ | logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ | ||
+ | isFatalError | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
+ | endif | ||
− | |||
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
Script wu.cmd | Script wu.cmd |
Aktuelle Version vom 13. Dezember 2015, 13:52 Uhr
Zurück zu OPSI
Inhaltsverzeichnis
Windows updaten
tested and works
Patches herunterladen
- Getestet auf Debian Jessie
- Zip-File von http://download.wsusoffline.net/ herunterladen und entpacken
wsusoffline/sh/DownloadUpdates.sh w61 deu /dotnet /msse
- Windows 7 32 bit Versionen: w61
- Sprache deutsch: deu
- Net herunterladen: /dotnet
- Microsoft Essentials : /msse
Mit OPSI auf den Client-Rechnern installieren
Der Ansatz von dass-it kann meiner Meinung nach nicht funktionieren. Hat er bei meinen Tests auch nicht.
Hintergrund: es soll auf einem Netzlaufwerk ein *.cmd File ausgeführt werden.
UNC-Pfade und cmd geht anscheinend nicht zusammen. Diese Aussage ist der bisher gefundene Konsens im Netz.
Lösung: Die winst-Funktion DosInAnIcon
Vorbereitung:
Das OPSI-Paket nennen wir wsusoffline. Es wird als \\server\wsusoffline exportiert.
OPSI-Paket
Das Verzeichniss client aus wsusoffline (Das aus dem zip-Archiv extrahiert wurde) enthält nach dem oben beschriebenen Download die für den Client notwendigen Patches und Scripte. Das wird nach /var/lib/opsi/depot/wsusoffline kopiert.
Erfolgreich getestet:
DosInAnIcon_connect ; Share mit den Patches einbinden. net use k: \\server\wsusshare geheim /user:server\user /persistent:no DosInAnIcon_update ; Hier wird die Updatefunktion aufgerufen. ;Ob die Optionen aus der Variable ausgelesen werden können, hab ich noch nicht getestet ; Ob Optionen überhaupt funktionieren hab ich nicht getestet. ; ; Wechsel auf das eingehangene Netzlaufwerk k: ; Aufruf des Updatescriptes relativ zu k: cmd\DoUpdate.cmd
DosInAnIcon_disconnect ; aushängen des Netzlaufwerkes net use k: /delete /yes
Nachteil
- OPSI installiert vor dem Einloggen eines Users.
- Das Updaten dauert immer lange, da erst geschaut wird, welche Patches eingespielt werden müssen.
- Solange ist der Rechner blockiert.
Update als Windows Service
Damit der Computerbenutzer auch während eines Updates arbeiten kann, muss eine andere Lösung als OPSI her.
- nssm.exe installiert unter anderem batch-files als Service. (Anscheind kein VBS)
- https://nssm.cc/
- Licence: NSSM is public domain. You may unconditionally use it and/or its source code for any purpose you wish.
- Ausführung erfolgreich getestet.
- Auch die OPSI-Installation des Services.
Installation
- Das share \\server\wsusoffline zeigt auf wsusoffline\client
- mssn.exe und wu.cmd werden auf den Client-PC nach c:\wsusupdate kopiert.
- Aufruf zur Installation des Scriptes wu.cmd als Service.
OPSI-Paket wsusupdate-installer: setup.ins
; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/en/credits/
[Actions]
requiredWinstVersion >= "4.11.4.6"
ScriptErrorMessages=off
DefVar $MsiId$
DefVar $UninstallProgram$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir$
DefVar $ExitCode$
DefVar $myProperty$
Set $LogDir$ = "%opsiLogDir%"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "wsusoffline-installer"
Set $MinimumSpace$ = "5 MB"
; the path were we find the product after the installation
Set $InstallDir$ = "c:\wsusupdate"
; ----------------------------------------------------------------
if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$))
LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$
isFatalError "No Space"
; Stop process and set installation status to failed
else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
if FileExists("%ScriptPath%\delsub32.opsiscript")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub32.opsiscript"
endif
Message "Installing " + $ProductId$ + " ..."
comment "Start setup program"
ChangeDirectory "%SCRIPTPATH%"
comment "Copy files"
Files_install /32Bit
comment "Install service"
DosInAnIcon_setupservice
DosInAnIcon_configservice
DosInAnIcon_startservice
; comment "Patch Registry"
; Registry_install /32Bit
endif
[Files_install]
; Example of recursively copying some files into the installation directory:
;
copy -s "%ScriptPath%\wsusupdate\*.*" "$InstallDir$"
[DosInAnIcon_setupservice]
cd c:\
c:\wsusupdate\nssm.exe install wsusupdate C:\wsusupdate\wu.cmd
[DosInAnIcon_configservice]
cd c:\
c:\wsusupdate\nssm.exe set wsusupdate AppExit Default Exit
[DosInAnIcon_startservice]
cd c:\
c:\wsusupdate\nssm.exe start wsusupdate
[Registry_install]
; Example of setting some values of an registry key:
;
; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
; set "name1" = "some string value"
; set "name2" = REG_DWORD:0001
; set "name3" = REG_BINARY:00 af 99 cd
[Sub_check_exitcode]
comment "Test for installation success via exit code"
set $ExitCode$ = getLastExitCode
; informations to exit codes see
; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
; http://msdn.microsoft.com/en-us/library/aa368542.aspx
if ($ExitCode$ = "0")
comment "Looks good: setup program gives exitcode zero"
else
comment "Setup program gives a exitcode unequal zero: " + $ExitCode$
if ($ExitCode$ = "1605")
comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed."
comment "Uninstall of a not installed product failed - no problem"
else
if ($ExitCode$ = "1641")
comment "looks good: setup program gives exitcode 1641"
comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a
else
if ($ExitCode$ = "3010")
comment "looks good: setup program gives exitcode 3010"
comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is
else
logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$
isFatalError
endif
endif
endif
endif
Script wu.cmd
net use k: \\server\wsusoffline geheim /user:server\userpass /persistent:no k: cmd\DoUpdate.cmd /msse /dotnet4
- Hintergrund: ThrustedInstaller und wahrscheinlich sein svchost.exe ziehen 90% der CPU-Zeit und über 100 MB Ram.
- Nach der Suche nach Updates und ihrer, wenn nötig, Installation, wird der Service für den Rest der PC-Sitzung nicht mehr benötigt.
- Das Netzlaufwerk hängt etwas unschön im Explorer rum. Kann nicht drauf zugegriffen werden (das ist gut) und ist mit einer Fehlermeldung versehen (unschön)
Eintrag Registry. Das muss pro User gemacht werden, vielleicht geht es mit netlogon.cmd
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Schlüssel Explorer muss angelegt werden.
- DWORD(32-Bit)
- Name: nodrive
- Wert: 64 (Für Laufwerk G, K: 1024)
Windows ist soooo einfach!
Betrieb
- Rechner starten
- Service wsusupdate sucht und installiert Updates auf dem Server und beendet sich für den Rest der PC-Sitzung.
- Nach Neustart wieder Suche und , wenn nötig, Installation.
Anscheind besserer Ansatz ohne OPSI
- Commandozeilenargumente
- http://wiki.oppserver.net/index.php/WSUSOFFLINE_INSTALL_FAQ_AUF_DEBIAN_SQUEEZE
hidden.exe nicht gefunden. Installation per login.cmd für einen normalen User nicht möglich. Verstecken einer cmd-shell ist per vbs möglich
Geht nicht
- Repos für RedHat 7 (hoffentlich auch für CentOS 7 => nope. /usr/bin/groupadd fehlt! Symlink nütz nichts
- http://software.opensuse.org/download/package?project=home:dassit:opsi:opsi4&package=wsusoffline
Lösung
Paket als rpm downloaden
yum install epel-release (da gibt es auch openvpn her, doppelt nützlich)
yum install xmlstarlet md5deep
rpm -i wsusoffline-8.0.0.1144-1.1 => klappt immer noch nicht, /usr/bin/groupadd fehlt.
rpm -i wsusoffline-8.0.0.1144-1.1 --nodeps
Scheint trotzdem zu funktionieren.
Windows 7 32bit Updates ziehen
wsus-download-updates.sh w61 deu
Wenn nicht, wsusoffline mit einem Windowsclienten durchführen
http://download.wsusoffline.net/wsusoffline954.zip => oder neuer
- Die Daten in ein OPSI-Packet packen (siehe dass-it), sollte gehen.
- Oder per logon.cmd ausführen.
Links
- Commandozeilenargumente
- http://wiki.oppserver.net/index.php/WSUSOFFLINE_INSTALL_FAQ_AUF_DEBIAN_SQUEEZE
- Interessanter Thread
- http://forums.wsusoffline.net/viewtopic.php?f=9&t=3737
- Wsusoffline Forum
- http://forums.wsusoffline.net/viewforum.php?f=1
Work in Progress
- Ansätze => wsusoffline für OPSI
- http://www.wsusoffline.net/
- http://trac.dass-it.de/pub/wiki/opsi#wsusoffline
BGInfo
- https://technet.microsoft.com/de-de/sysinternals/bb897557.aspx
- Zeigt verschiedenste Daten auf dem Desktopn an
- Hier reduziert auf Hostname und IP
- Die Exe und das configfile liegen im Share tools
- Ein User mit Schreibrechten ruft das Script auf und konfiguriert es. Dazu /timer:NULL weglassen.
- Beispielconfig:
<UserName>@<HostName> IP: <IP Adress>
- /accepteula impliziert die Annahme der EULA.
- Kost nix, darf überall verwendet werden, Download nur bei MS.
- Details: siehe EULA im Download
vim /local/samba/netlogon/logon.cmd
\\<domain-server>\tools\BGInfo \\<domain-server>\tools\conf.bgi /timer:Null /accepteula
- smb.conf Ausschnitt
[tools] comment = Kleine Helfer path = /local/samba/shares/tools guest ok = no writeable = no browseable =no write list = @ntadm
Remote Desktop auf Windows
Software
- Tool der Wahl: nomachine 4
- https://www.nomachine.com/
- Preis: kostenlos
- Desktop sharing möglich
- Verbindungen von einem Clienten zu mehreren Servern gleichzeitig möglich
- Benutzerwechsel wie für Profiländerungen notwendig möglich
- Kein zentraler Server vorhanden / notwendig
- Einschränkungen der "Freie" Version
- Nur eine Verbindung zu einem Server gleichzeitig möglich.
- Vorteile zu Version 3
- Windows als Server möglich, dadurch wird Fernwartung von Windows-Rechnern möglich
Installation
- Download des Binary
nomachine_XXXXXX.exe /verysilent oder /silent => OPSI-Tauglich!
Die Konfig der Server auf den zu erreichenden Maschinen kann per Copy aus dem Opsi-Paket in das Installationsverzeichniss geschehen.
Ist erfolgreich getestet.
Benutzung
Benutzer wechseln
- Auf dem Client-PC den Benutzer ausloggen
- Folgende Tasten drücken "Strg+Alt+0", um NoMachine-Menü zu erreichen
- Unten rechts die "Tasten" anklicken
- "Ctl + Alt * Delete" auswählen
- "Done" anklicken
- Benutzer wie gewohnt wecheln
Todo
--HK 19:08, 28. Jun. 2015 (UTC)
- Test von Verbindungen in ein Schulnetzwerk mit Verbindung
- aus dem Büro
- über Handy (Thetering/ Notebook)