Mehrbenutzerdienst umziehen

nosignon

Neues Mitglied
Teammitglied
OL 6.0. Wie den Clients beibringen, dass der Mehrbenutzerdienst jetzt auf einem anderen Server läuft ?
 
Wenn es die Funktion in der Version schon gab, dann über die Sagede.OfficeLine.ClientAdmin.exe im Shared-Verzeichnis der OL.
 
@m.becker

Hallo,
Gibt es die Möglichkeit die genannte 'Sagede.OfficeLine.ClientAdmin.exe' per CMD aufzurufen und die neue Adresse zu übergeben ?
Ideal wäre es für uns wenn wir ein Script anlegen könnten.

- Wenn Mehrbenutzerdienst nicht XY ist
- Setze Mehrbenutzerdienst auf XY

Andernfalls sind wir als Administrator gezwungen alle unsere Clients manuell einzustellen, ich hoffe das zu vermeiden.

Vielen Dank

mit freundlichen Grüßen
Müller Mathias
 
Das sehe ich leider keine Chance, das müssten Sie pro Client machen. Ich würde es allerdings nach Wechsel des Mehrbenutzerdienstes über die Systemsteuerung Programme Sage 100 machen und dort pro Client den Mehrbenutzer Deinstallieren um anschließend über die Änderung den neuen Dienst über das Setup zu installieren. Damit habe ich bessere Erfahrungen als mit dem ClientAdmin.exe.
 
Für Jeden der Eventuell vor der selben Problematik steht.

Nachdem ich analysiert habe was die "Sagede.OfficeLine.ClientAdmin.exe" auf dem Rechner tatsächlich macht.
Stellte sich heraus das sie lediglich die Server-Adresse in einer Config-Datei (C:\ProgrammData\Sage\Office Line\9.0\Office Line.Config ) ändert, kein Registry-Eintrag oder ähnliches.

also hab ich mir mit ChatGPT einfach ein PowerShell Skript erzeugen lassen. (sicher kann man da noch viel optimieren) In Verbindung mit einem Verteiler Service oder Gruppen Richtlinien kann das dann an alle Client Geräte verteilt werden und ausgeführt werden.

Bisher traten danach keine Probleme auf.

Code:
param (
    [string]$filePath = 'C:\ProgramData\Sage\Office Line\9.0\Office Line.Config',  # Standardpfad zur Datei
    [string]$stringA = '\\DerSageServer'  # Standardwert für value
)

if (Test-Path $filePath) {
    $content = Get-Content -Path $filePath -Raw -Encoding UTF8  # UTF-8 für korrektes Lesen

    $regex = '<server>[\s\S]*?<add[^>]*?value="([^"]+)"[^>]*?>[\s\S]*?</server>'
    $match = [regex]::Match($content, $regex)

    if ($match.Success) {
        $stringB = $match.Groups[1].Value
        Write-Host "Gefundener Wert: $stringB"

        if ($stringB -ne $stringA) {                       
            $newContent = $content -ireplace [regex]::Escape($stringB), $stringA                       
            
            # Speichern mit expliziter UTF-8-Kodierung ohne BOM, um Zeichenprobleme zu vermeiden
            [System.IO.File]::WriteAllText($filePath, $newContent, [System.Text.Encoding]::UTF8)

            Write-Host 'Der Value-Wert wurde aktualisiert.'
        } else {
            Write-Host 'Der Value-Wert ist bereits korrekt. Keine Änderungen vorgenommen.'
        }
    } else {
        Write-Host 'Kein <server>-Tag mit Value-Attribut in der Datei gefunden.'
    }
} else {
    Write-Host "Die Datei existiert nicht: $filePath"
}

Im Grunde sucht das den Part des Servers aus der Datei, und ersetzt den alten Servernamen mit dem neuen.

Vielleicht hillft es ja jemanden.
 
Zurück
Oben