Neu JTL Wawi mit Windows Domain - Netzwerkinstallation - Verteilung von Updates automatisieren

Garten-Nutzer

Sehr aktives Mitglied
3. Juni 2019
124
45
Hallo Leute,

leider habe ich bei der Suche nur sehr alte Themen gefunden, aber keine mit einer "Lösung" die nicht mal eben 700+ Euro kostet.

Wir benötigen für unsere kleine Firma einen Tipp, Ratschlag wie wir JTL-Wawi Updates am besten automatisiert einspielen können.

Zum aktuellen Aufbau:
1 x Server mit: SQL-Datenbank, Domain Controller und sonstige Testprojekte
1 x File Sever für Daten, Benutzerprofile usw.
9 x Arbeits-PCs die dank Corona nicht alle besetzt sind. Alle mit Windows 10 Pro und auch in der Domain registriert.

Die Verteilung von Updates, anderen Programmen und sogar der Drucker erfolgt zentral über den Server.

Jetzt kommen wir leider zum Problem mit JTL-Wawi. Diese kommt ja als exe-Datei und nicht als MSI-Datei. Leider meckert / zickt die Domainverwaltung und will nur eine msi-Datei haben. Warum? Weil Windows.

Der Vorteil den wir hier sehen ist aber folgender: Das Setup von JTL-Wawi ist mit bestimmten Parametern selbstständig in der Lage ein Update zu installieren. Parameter: "/SILENT /SUPRESSMSGBOXES /NOCANCEL" man kann das "/SILENT" noch gegen ein "/VERYSILENT" tauschen, dann sieht man aber keinen Fortschritt mehr. Also Daumen hoch, dass es geht.

Jetzt meine Frage: Hat JTL hier eventuell eine Super Idee, wie wir die Wawi in einer Firmenumgebung deployen können? Besonders frage ich mich hier, wie ich am besten Überprüfen kann ob die Version die auf dem Netzwerk liegt ein Update ist oder nicht.
Mit etwas "herumspielen" kann ich die Wawi zwar installieren lassen, aber das macht er dann jedes mal beim einloggen.

Ich wäre also für etwas Hilfe sehr dankbar, weil ich behaupte mal, ich bin nicht der einzige mit dem Problem.

Edit:
@JTL Wo steht denn in der Registry die aktuell installierte Version der Wawi? Die muss ja theoretisch da vermerkt werden. Ich habe nur verschiedene Schlüssel unter "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Record\" gefunden. Weil dann könnte ein Skript diese Version abfragen und entsprechend prüfen.
Edit2:
Der Registry Key für die aktuell installierte Wawi-Version befindet sich wohl hier: "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\JTL-Wawi_is1".
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Esel

Esel

Gut bekanntes Mitglied
10. April 2014
100
11
Mahlzeit,
hab ne Lösung, bitte teste die Mal:

Du Brauchst das Programm Windows Installer Wrapper Wizard (z.B. von itnninja download).

Das Programm erstellt dir eine msi Datei.

Wenn du jetzt beim erstellen vorher das Setup neu benennst in z.B. setup.exe brauchst du die Datei nie mehr ändern.
Ansonsten:

Programm starten

1604490588353.png

Speicherort der fertigen MSI Datei festlegen inkl. Namen der Datei
1604490649825.png
Add klicken
1604490702518.png
SourceDir wählen für Setup.exe im selben Ordner wie die MSI

Paramter eintragen

Uninstall brauchst du nur, wenn du per Script deinstallieren willst, das Setup macht dies aber bei Neuinstallation onehin

letzte Seit kannst du leer lassen.

Die MSI muss nun nur im Ordner der EXE liegen, dann sollte es klappen, ich verteile noch keine Pakete, daher noch kein Test möglich.
 
  • Gefällt mir
Reaktionen: Garten-Nutzer

Garten-Nutzer

Sehr aktives Mitglied
3. Juni 2019
124
45
Hallo Esel,

vielen herzlichen Dank für deine Anleitung. Leider habe ich dann das Problem, dass ich bei Updates diese trotzdem manuell anstoßen muss oder nicht?

Ich habe jetzt auch nach ganz viel hin und her eine brauchbare Lösung gefunden.
Was benötigt wird:
- Eine Windows Domain (egal ob Windows Server oder Linux). Ohne diese müsst ihr die Aufgabe an jedem PC einmalig hinterlegen.
- Eine Netzwerkadresse die für alle Zugänglich ist (also alle Nutzer inkl. Systemnutzer)
- Wenn ihr eine Domain habt, die RSAT-Tools (gibt es als Download oder in den optimalen Funktionen bei Windows 10)
- etwas Ahnung in PowerShell und den Domain-Tools
- Das JTL-Setup

Ein paar Wörter der Warnung vorab:
Das Skript wurde von mir zusammengestellt und sollte soweit fehlerfrei funktionieren. Ich übernehme keine Haftung für Fehler oder dergleichen. Ich möchte hier nur anderen Leuten helfen, die eventuell das selbe Problem haben.
Das Skript wurde für ein Windows in der 64-Bit Version erstellt und funktioniert nicht mit einem 32-Bit System.
Da alle unsere PCs mit einer normalen SSD ausgestattet sind ist die Installation der JTL-Wawi innerhalb von 10-15 Sekunden erledigt. Ich kann mangels PCs leider nicht sagen ob das Skript auch bei einer HDD zuverlässig arbeitet. Ich denke aber schon.

Zuerst mal das Setup und das Skript an den richtigen Ort schieben:

Ich habe hierfür auf dem File-Server einen Share / Ordner wo nur die zu installierenden Programme rein kommen. Dieser ist auch "ausgeblendet".
In diesem Share gibt es dann einen Ordner "jtl-install" und darin liegen dann die beiden Dateien.
Ordner.JPG
Wie man sieht ist das JTL-Wawi-Setup schon umbenannt und heißt einfach nur "setup". Ihr könnt das natürlich auch anders benennen, aber dann muss das Skript auch angepasst werden.

Kommen wir jetzt zum wichtigsten: dem PowerShell Skript:
Für komplette Neulinge, die PowerShell-Skript-Datei ist nichts anderes als ein Textdokument mit der Endung ".ps1". Windows 10 liefert mit der "PowerShell ISE" sogar einen Editor mit, wenn man nicht mit dem normalen Editor oder "Notepad++" arbeiten möchte.
Der Quellcode des Skriptes (WARNUNG: Es ist für ein 64-Bit Windows. Bei einem 32-Bit Windows wird das Skript nicht funktionieren!!):
Code:
function Check_Program_Installed {
    [CmdletBinding()]
    Param(
        [Parameter(Position = 0, Mandatory=$true, ValueFromPipeline = $true)]
        $Name
    )
    
$remoteinstaller = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("\\<Pfad zum Setup>\setup.exe").FileVersion
    
$installedVersion = (Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select DisplayName, DisplayVersion | Where-Object {$_.DisplayName -eq "$Name"}).DisplayVersion

    If ($remoteinstaller -match $installedVersion)    {
echo "ok"        
    }
    else{
Start-Process -FilePath "\\<Pfad zum Setup>\setup.exe" -ArgumentList "/SILENT /SUPRESSMSGBOXES /NOCANCEL"
    }
    
}

Check_Program_Installed "JTL-Wawi"

Hier ist es ganz wichtig die richtigen Pfade zum Setup anzugeben.

Das Skipt macht folgendes:
Es holt sich von dem auf dem Netzwerklaufwerk befindlichen JTL-Setup die Version (sprich die Version die als Update dienen soll).
Außerdem holt es sich von dem aktuell installierten JTL-Wawi die Version.
Stimmen beide Versionen überein wird die Konsole ein "ok" ausgeben und fertig.
Stimmen die Versionen nicht überein so wird das Skript das auf dem Netzwerk befindliche JTL-Setup ausführen und installieren.
ACHTUNG: Es erfolgt hier keine Prüfung ob die Version im JTL-Setup höher ist, sondern nur ob sie mit der installierten Version übereinstimmt. Da wir nur Updates installieren und auch nur dann das Setup tauschen ist es für uns so ausreichend.

Wenn Ihr die Pfade nun angepasst habt und das Setup + PowerShell-Skript da liegen habt, könnt ihr es ja testen indem Ihr das Skript mittels rechtsklick anklickt und "Mit Powershell ausführen" anwählt.


Jetzt kommen wir zu den Schritten bei der Domain / Aufgabenplanung:

Die Gruppenrichtlinienverwaltung aufrufen und ein extra Gruppenrichtlinienobjekt für JTL erstellen.
In dieser geht ihr dann zu "Computerkonfiguration" -> Einstellungen -> Systemsteuerungseinstellungen -> Geplante Aufgaben.
Hier legt ihr über einen Rechtsklick "Neu" eine "Geplante Aufgabe (mindestens windows 7) aus.
Hier in der Maske dann den Namen und die Beschreibung frei wählen.
Aufgabe erstellen.JPG
Bei "Aktion:" diese auf "Aktualisieren" lassen bzw. stellen, denn damit wird die Aufgabe wenn nicht vorhanden angelegt und falls doch auf die neuste Version gebracht.
Bei den Sicherheitsoptionen am besten folgendes Benutzerkonto nutzen: "NT-AUTORITÄT\System". Das Konto ist ein immer vorhandenes Admin Konto und somit wird die Wawi auch installiert ohne das der Nutzer irgendwas bestätigen muss.
Den Hacken bei "Mit höchsten Berechtigungen ausführen" habe ich mal mit rein genommen, damit da nix schief gehen kann.
Bei "Konfigurieren für:" kann man nur bis Windows 7 auswählen, aber das ist ok, auf Windows 10 funktioniert das auch.
Fertig mit dem Basis-Setup.
Jetzt wechseln wir auf den Reiter "Trigger" und erstellen einen neuen über die Schaltfläche "Neu...".
Ich habe für unsere Firma den Start für jede Anmeldung festgelegt. Das ganze sieht dann so aus:
Trigger.JPG
Achtung: Da hier "Jeder Benutzer" steht heißt das auch, dass ein eventuelles Update auch automatisch installiert wird, wenn ihr als Admin an den SQL-Server geht. Da unser SQL-Server permanent aktiv ist (da eine VM) muss sich hier auch nicht angemeldet werden. Die Anmeldung erfolgt über die VM-Übersicht.
Wenn ihr dann alles erledigt habt, den Trigger mittels "OK" anlegen.

Weiter geht es zu "Aktionen":
Hier wie gewohnt auf "Neu..." klicken.
Aktionen.JPG
Auch wenn es verlockend klingt, das PowerShell-Skript kommt hier nicht in "Programm/Skript" sondern der Pfad zur PowerShell:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
Bei den Argumenten sagt ihr dann der PowerShell, welches Skript ihr laden möchtet:
"-command \\<Pfad zum Skript>\jtl-wawi.ps1"
Bitte den Pfad richtig anpassen.
Wenn das erledigt ist wieder mit "OK" raus.

Bei den anderen Reitern habe ich nichts verändert.

Jetzt könnt ihr die Aufgabe abspeichern und sie ist hinterlegt.

In dem "Gruppenrichtlinienverwaltungs-Editor" müsst ihr jetzt noch folgende Einstellung setzen, damit das Skript auch laufen darf:
- Computerkonfiguration -> Administrative Vorlagen -> Windows-Kompomenten -> Windows PowerShell -> Skriptausführung aktivieren -> "Aktivieren" und auf "Lokale Skripts und remote signierte Skripts zulassen" stellen.
- Benutzerkonfiguration -> Administrative Vorlagen -> Windows-Kompomenten -> Windows PowerShell -> Skriptausführung aktivieren -> "Aktivieren" und auf "Lokale Skripts und remote signierte Skripts zulassen" stellen.

Damit ist alles erledigt.
Nach einem Neustart sollte die Aufgabe auch laufen.

Hier noch ein paar Hinweise:
- Das Skript läuft automatisch und ihr werdet davon nichts sehen.
- Wenn das Skript die Wawi installiert wird das Desktop-Symbol von der aktuellen Wawi entfernt und taucht dann automatisch wieder auf.


Ich würde mich über Feedback freuen und hoffe das ich auch jemandem helfen konnte, der das selbe Problem hat.
 

Esel

Gut bekanntes Mitglied
10. April 2014
100
11
Hi,

ich habsj jetzt mal mim Gratis tool aus meinen zweiten Beitrag gebaut, das funkitoniert.
Beim Update hast du kein Problem, die Wawi löscht sich sowieso selber vor Installation.

Zusätzlich findet das 2te auch die Version in der Registry. Sollte also klappen, nach dem nächsten Wawi Update wissen wir mehr, das Update auf die 1.5.33.0 hat mit der Lösung mal geklappt.

Ich hab ein Netzlaufwerk am Server, read only reicht ja für alle (ist Standard), damit klappt das, wenn du die GPO richtig setzt, also nicht nur die für die Software Installation,
er muss auch Wartzeit für Richtlinienverwlatung beim Systemstart angeben, auf 120 Sekunden, dann klappt es.

Bei Bedarf, mach ich gerne Bilder von den Einstellungen.
 

David_M

Aktives Mitglied
4. Januar 2011
99
17
@Garten-Nutzer danke für deine coole Anleitung! Damit hast du mir echt geholfen :) Ich hoffe JTL sieht und schätzt deine Arbeit!

Ich habe den Code noch etwas erweitert. Er prüft nun ob die JTL überhaupt installiert ist, wenn nein, dann installiert er die eben.

Vielleicht als Hinweis: Man muss beim Setup ggf. noch unter Eigenschaften sagen, dass die Datei "ungefährlich" ist. Bei mir hat kam dann immer ein unnötiges Fenster was ma noch bestätigen musste. (Wir arbeiten in einer AD)

LG
David
 

jober

Neues Mitglied
24. März 2022
10
2
Hallo,

habe gerade diesen Post gelesen und bin dabei wieder über dieses Thema gestolpert, was mir ich den letzten Monaten noch so als To-do im Kopf rumgegangen ist.

Habe mich schon immer geägert, dass die Updates als EXE-Datei zur Verfügung gestellt werden.

Frage mal an JTL --> Warum nicht direkt als MSI-Paket?????

In einer Standard Windows Domänen-Umgebung (seit Windows 2000) gibt es Gruppenrichtlinien, mit denen ich sehr komfortabel Software (neu, Aktualisieren,Deinstallieren) verteilen kann.

Soll heißen, dass ich das mit ganz normalen Bordmitteln umsetzen kann - Aber halt nur mit MSI-Installationspaket!

RSAT Tools brauche ich nicht unbedingt - Ich kann direkt per RDP auf den Server und starte dort die Gruppenrichtlinienverwaltung
Power-Shell brauche ich nicht - das wird direkt über die Gruppenrichtlinie verteilt (Built-in Funktion jedes Domänen-Contrllers)

Beispiel:
Zuerst MSI-Paket erstellen, wie im Post von Esel weiter oben beschrieben.
Danach auf den Server einloggen.
Server Manager --> Tools --> Gruppenrichtlinienverwaltung
Hier ein neues Gruppenrichtlinienobjekt anlegen und Namen Vergeben, z.B. JTL-Deploy
Dann per rechten Mausklick auf diese Gruppenrichtlinie --> bearbeiten
Hier dann unter Benutzerkonfiguration --> Richtlinien --> Softwareeinstellungen --> Softwareinstallation im rechten Fenster (Mausklick rechts) auf Neu--> Paket gehen
Danach öffnet sich ein Explorer-Fenster - Hier brauche ich nur noch die MSI-Datei auswählen.

Jetzt nur noch per Mausklick rechts auf die Eigenschaften des Pakets gehen. Den Reiter "Bereitstellung von Software" wählen und den Haken bei Anwendung bei Anmeldung installieren setzen und mit OK bestätigen.

Der Vorteil hier ist, dass ich genau meine Ziele (nämlich alle Benutzer, die die Wawi benutzen) adressiere. Alle anderen bleiben von dieser Softwareverteilung unberührt.
Ausserdem werden die Gruppenrichtlinien zum Verteilen von Software immer mit höchsten Rechten ausgeführt.

Das ist der erste Teil.

Jetzt muss die neu erstellt Gruppenrichtlinie nur noch mit den Benutzern, bzw. mit einer Benutzergruppe verknüpft werden.
Das hängt natürlich stark davon ab, wie Eure Benutzer und Gruppen im Active-Directory angelegt und organisiert sind.

Ich persönlich arbeite immer gerne mit Gruppen, die ich als Funktionsgruppe definiere.
So z.B. Gruppenname F_JTL-WaWi - da packe ich dann alle Benutzer rein, die mit der JTL arbeiten.

Die Gruppenrichtlinie zur Software-Verteilung verknüpfe ich dann mit dieser Benutzergruppe - Fertig.

Hinweis: Was der Anwender bei der Verteilung einer neuen Software merkt, ist das die Anmeldung jetzt etwas dauert - eben weil die Software im Hintergrund installiezt/aktualisiert wird.

Ich hoffe, Euch mit diesen Infos einen brauchbaren Weg zur automatischen Software-Verteilung gezeigt zu haben.
 
  • Gefällt mir
Reaktionen: Tsuc

Verkäuferlein

Sehr aktives Mitglied
29. April 2012
2.343
838
Frage mal an JTL --> Warum nicht direkt als MSI-Paket?????
Bin zwar nicht JTL, aber das Ticket dazu ist ja gerade mal 5 Jahre jung, da ist an einer Umsetzung noch lange nicht zu denken :D :p:
https://issues.jtl-software.de/issues/BOARD-166

Und da man groß denkt, muss erstmal eine Business Intelligence her, bevor man sich mit solchen Alltagsproblemen beschäftigt, deren Lösung den Nutzern helfen würde und Grundlagen für die tägliche Arbeitserleichterung schaffen würde. :p ;)
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Wechsel WAWI Hosting von JTL mit RDP auf ecomDATA User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL Wawi Bild-Upload unvollständig oder nur als mit meinem PC hochgeladen zu sehen User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Wawi mit Shopware/Magnalister User helfen Usern - Fragen zu JTL-Wawi 3
Anfanger mit JTL Wawi JTL-Wawi 1.7 13
Neu JTL Wawi Warenwirtschaft mit Gambio Cloud-Shop Gambio-Connector 0
Neu PAngV (PreisAngabenVerordnung) vom 28.05.2022 mit JTL-Wawi und JTL-Shop - bzgl. "Läuft JTL Wawi stabil?" Smalltalk 1
Abbruch bei Abgleich Shopware 6 mit JTL Wawi Shopware-Connector 0
Neu Datenabgleich POS mit JTL Wawi failed to connect Einrichtung / Updates von JTL-POS 1
Neu Update des JTL shops aus der Wawi funktioniert nicht Allgemeine Fragen zu JTL-Shop 1
Neu Email Versand in JTL Wawi einstellen User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL-Wawi Logdatei Speicherort JTL-Wawi - Fehler und Bugs 6
In Diskussion JTL POS Kundennummer wird nicht an JTL Wawi übertragen JTL-POS - Fehler und Bugs 2
Tablet Empfehlung für JTL-WaWi APP? JTL-Wawi App 0
Neu Kompatibilitätsliste JTL Shop & JTL Wawi Installation / Updates von JTL-Shop 2
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
JTL Wawi Update 1.7.15.5 - Worker hat keinen Zugriff auf DB JTL-Wawi 1.7 6
I have faced an issue while the JTL Shop order has synchronized to the JTL WAWI 1.8 version. JTL-Wawi 1.8 0
Fehler beim Datenbank - JTL WAWI Connector WooCommerce-Connector 1
JTL WAWI 1.8.11.1 / JTL CONNECTOR / Shopware 6 JTL-Wawi 1.8 4
Neu Erstinstallation JTL WaWi 1.8.12 - heruntergeladen wird SQL Express 2017 _statt_ der empfohlenen 2022 Version Installation von JTL-Wawi 8
In Bearbeitung JTL POS in der JTL-WaWi-Cloud Allgemeine Fragen zu JTL-POS 2
Artikel wurden über Weclapp über FFN-Connect an JTL FFN übermittelt jedoch leider nicht an Wawi & WMS JTL-Wawi 1.8 0
Neu JTL Wawi Deployment Installation von JTL-Wawi 0
[JTL-WAWI API] Wie funktioniert die Item-Image API? JTL-Wawi 1.8 0
Neu jtl wawi Versanddatenexport Originalmeldung: In der Sendung trat mindestens ein harter Fehler auf. Code: 1101 Schnittstellen Import / Export 2
[JTL-WAWI API] CaseSensitiv in der Create Sales Order JTL-Wawi 1.8 0
Neu Übertrag Daten in eine neu erstellte JTL Wawi JTL-Wawi 1.7 1
Händlerrabatte sind nach Bestellung in JTL Wawi nicht ersichtlich JTL-Wawi 1.8 0
Neu JTL Shop und WAWI komplett testen vor Shop-Release Gelöste Themen in diesem Bereich 8
[JTL-WAWI API] Rechtschreibfehler in Item-Schnittstelle JTL-Wawi 1.8 0
[JTL-WAWI API] Nettopreise werden nicht gespeichert JTL-Wawi 1.8 0
Neu JTL POS übernimmt Attribute nicht aus WaWi Einrichtung / Updates von JTL-POS 2
Neu JTL WAWI 1.6.44.2 Lager auf Lieferschein Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Release JTL-Wawi 1.8.11.2 Downloadlink zeigt 1.8.11.1 JTL-Wawi 1.8 1
JTL Wawi S/MIME ungültig (die Nachricht wurde möglicherweise verändert) JTL-Wawi 1.8 4
[JTL-WAWI API] Gewicht (ItemWeight) wird nicht gespeichert JTL-Wawi 1.8 2
JTL-WaWi eBay Angebotsvorlage Versand/Zahlung fehlerhaft JTL-Wawi 1.8 0
Unterstützt JTL Wawi 1,8 weiterhin die Varianten? JTL-Wawi 1.8 3
[JTL-WAWI API] Versandposition in Auftrag erstellen? JTL-Wawi 1.8 3
Neu erster JTL Shop - Artikelbilder aus Cloudspeicher - aber nicht in die Wawi eazybuisiness DB Allgemeine Fragen zu JTL-Shop 0
JTL Wawi APP als "Selbstentnahme - Scanner" JTL-Wawi App 0
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Neu E-Mail Versandbenachrichtigung aus JTL Wawi 1.8.10.0 wird doppelt versendet User helfen Usern 0
Neu Läuft JTL Wawi stabil? User helfen Usern - Fragen zu JTL-Wawi 20
Neu JTL WAWI – Carrier Versandlabel von externem Label Provider nutzen Schnittstellen Import / Export 0
Neu Amicron Faktura zu JTL Wawi? Starten mit JTL: Projektabwicklung & Migration 8
Wichtig 👉 Wichtiger Hinweis: Abkündigungsfristen JTL-Wawi 1.5 / MSQL-Server 2014 / JTL-POS für Android 7 / JTL-Connector für Shopware 5 News, Events und Umfragen 2
In Bearbeitung Unterschiedliche Datumsangaben zwischen JTL Wawi und JTL POS Allgemeine Fragen zu JTL-POS 1
JTL-WAWI Cloud testen? JTL-Wawi 1.8 1
Neu Lager nach Gewicht erstellen JTL-Wawi 1.8 Gelöste Themen in diesem Bereich 6

Ähnliche Themen