# Installation

# FileStarter unter Windows installieren und manuell aktualisieren

Diese Anleitung beschreibt die Installation für einen Benutzer, die systemweite Installation auf einem Terminalserver und die manuelle Aktualisierung durch die Administration.

## FileStarter herunterladen

<p class="callout info">Der manuelle Download ist für die Erstinstallation und gegebenenfalls für eine Reparatur erforderlich. Im normalen Betrieb prüft der FileStarter nach einem Aufruf aus Procurat automatisch auf Aktualisierungen.</p>

Sie können die EXE-Datei direkt über die Procurat-5-Schulsoftware herunterladen:

1. Öffnen Sie das **Hilfe-Center**. Verwenden Sie dazu den Button unten links oder das Benutzermenü oben rechts.
    
    [![Benutzermenü mit dem Eintrag „Hilfe-Center“](https://docs.alpha-np.de/uploads/images/gallery/2025-06/scaled-1680-/screenshot-2025-06-04-at-10-58-17.png)](https://docs.alpha-np.de/uploads/images/gallery/2025-06/screenshot-2025-06-04-at-10-58-17.png)
2. Öffnen Sie die **Schnell-Administration**.
    
    [![Hilfe-Center mit dem Button „Schnell-Administration“](https://docs.alpha-np.de/uploads/images/gallery/2025-06/scaled-1680-/screenshot-2025-06-04-at-10-58-25.png)](https://docs.alpha-np.de/uploads/images/gallery/2025-06/screenshot-2025-06-04-at-10-58-25.png)
3. Wählen Sie **FileStarter herunterladen**.
    
    [![Schnell-Administration mit dem Button „FileStarter herunterladen“](https://docs.alpha-np.de/uploads/images/gallery/2025-06/scaled-1680-/screenshot-2025-06-04-at-10-58-30.png)](https://docs.alpha-np.de/uploads/images/gallery/2025-06/screenshot-2025-06-04-at-10-58-30.png)

## Installationsparameter

<table id="bkmrk-parameter-beschreibu"><thead><tr><th>Parameter</th><th>Beschreibung</th><th>Standardwert</th></tr></thead><tbody><tr><td>`--mode`</td><td>Installationsmodus: `user` registriert das URL-Protokoll unter `HKEY_CURRENT_USER`; `system` registriert es unter `HKEY_LOCAL_MACHINE`. Die Werte müssen kleingeschrieben werden.</td><td>`user`</td></tr><tr><td>`--location`</td><td>Ordner, in dem der FileStarter installiert wird.</td><td>`C:\FileStarter`</td></tr></tbody></table>

Unabhängig vom Namen der heruntergeladenen Datei wird die installierte Datei als `filestarter.exe` gespeichert.

## Systemweite Installation auf einem Terminalserver

<p class="callout warning">Für den Modus `system` benötigen Sie Administrationsberechtigungen. Das gilt auch für den Schreibzugriff auf geschützte Installationsordner.</p>

Öffnen Sie PowerShell oder CMD als Administrator. Passen Sie den Pfad an, wenn die Datei nicht im Ordner `Downloads` liegt.

### PowerShell

Standardverzeichnis `C:\FileStarter`:

```powershell
& "$env:USERPROFILE\Downloads\filestarter.exe" --mode system

```

Eigenes Installationsverzeichnis:

```powershell
& "$env:USERPROFILE\Downloads\filestarter.exe" `
  --mode system `
  --location "C:\Install\SomeLocation"

```

### CMD

Standardverzeichnis `C:\FileStarter`:

```bat
"%USERPROFILE%\Downloads\filestarter.exe" --mode system

```

Eigenes Installationsverzeichnis:

```bat
"%USERPROFILE%\Downloads\filestarter.exe" --mode system --location "C:\Install\SomeLocation"

```

Nach einer erfolgreichen Installation befinden sich:

- die ausführbare Datei unter `C:\FileStarter\filestarter.exe` oder im angegebenen Verzeichnis;
- die systemweite Protokollregistrierung unter `HKEY_LOCAL_MACHINE\Software\Classes\filestarter`.

## Installation für einen Benutzer

<p class="callout success">Die Registrierung unter `HKEY_CURRENT_USER` benötigt keine Administrationsberechtigungen. Sie benötigen jedoch Schreibzugriff auf das Installationsverzeichnis.</p>

Doppelklicken Sie auf `filestarter.exe`, um die Standardinstallation zu starten. Dabei gelten diese Standardwerte:

- Modus: `user`
- Verzeichnis: `C:\FileStarter`

Wenn Sie ein eigenes Verzeichnis verwenden möchten, führen Sie einen der folgenden Befehle aus.

PowerShell:

```powershell
& "$env:USERPROFILE\Downloads\filestarter.exe" `
  --mode user `
  --location "$env:LOCALAPPDATA\FileStarter"

```

CMD:

```bat
"%USERPROFILE%\Downloads\filestarter.exe" --mode user --location "%LOCALAPPDATA%\FileStarter"

```

Nach einer erfolgreichen Installation befinden sich:

- die ausführbare Datei im ausgewählten Verzeichnis;
- die benutzerspezifische Protokollregistrierung unter `HKEY_CURRENT_USER\Software\Classes\filestarter`.

## Nach der Installation

Nach einer erfolgreichen Installation:

- liegt die Anwendung als `filestarter.exe` im ausgewählten Installationsverzeichnis;
- ist das URL-Protokoll `filestarter://` für den Benutzer oder das System registriert;
- schließt sich das Installationsprogramm ohne weitere Bestätigung.

Die Registrierung enthält einen Befehl nach diesem Muster:

```text
"C:\FileStarter\filestarter.exe" "%1"

```

Eine benutzerspezifische Registrierung hat für den betreffenden Benutzer Vorrang vor einer systemweiten Registrierung.

<p class="callout warning">Prüfen Sie die Registrierung, wenn Sie den Installationsmodus oder das Installationsverzeichnis einer vorhandenen Installation ändern. Eine vorhandene EXE-Datei kann verhindern, dass der FileStarter die Registrierung erneut anlegt.</p>

## Automatische Aktualisierung

Der FileStarter prüft nach einem Aufruf aus Procurat automatisch auf Aktualisierungen. Er führt keine regelmäßige Hintergrundprüfung aus.

Wenn der Procurat-Server eine andere Version bereitstellt, lädt der FileStarter diese herunter. Die neue Version wird beim nächsten Aufruf aus Procurat verwendet.

## Manuelle Aktualisierung durch die Administration

Verwenden Sie die manuelle Aktualisierung, wenn die automatische Aktualisierung nicht möglich ist oder eine Installation repariert werden muss.

<p class="callout warning">Laden Sie die Datei ausschließlich über die HTTPS-Adresse des zuständigen Procurat-Servers herunter. Prüfen Sie die digitale Signatur, bevor Sie die installierte Datei ersetzen.</p>

### 1. Registrierten Pfad ermitteln

Führen Sie die Abfrage im Kontext des betroffenen Benutzers aus. Die zusammengeführte, für diesen Benutzer wirksame Registrierung können Sie so anzeigen:

```bat
reg query "HKCR\filestarter\shell\open\command" /ve

```

Prüfen Sie bei Unklarheiten beide möglichen Registrierungen:

```bat
reg query "HKCU\Software\Classes\filestarter\shell\open\command" /ve
reg query "HKLM\Software\Classes\filestarter\shell\open\command" /ve

```

Die Ausgabe enthält beispielsweise:

```text
(Default)    REG_SZ    "C:\FileStarter\filestarter.exe" "%1"

```

Der erste Pfad ist die zu aktualisierende EXE-Datei. Ändern Sie bei einer manuellen Aktualisierung nicht den registrierten Pfad.

<p class="callout info">Wenn Sie die Aktualisierung mit einem anderen Administratorkonto ausführen, zeigt `HKEY_CURRENT_USER` die Registrierung dieses Administratorkontos. Ermitteln Sie eine benutzerspezifische Registrierung deshalb zuerst im Konto des betroffenen Benutzers. Verwenden Sie andernfalls die systemweite Registrierung.</p>

### 2. Serverversion prüfen und herunterladen

Die Procurat-URL ist die Adresse, unter der Sie die Anwendung erreichen, beispielsweise `https://example.com:8443/procurat`. Die Update-Endpunkte liegen relativ zu dieser Adresse:

```text
GET <Procurat-URL>/api/v1/filestarter/update/info
GET <Procurat-URL>/api/v1/filestarter/update/download?os=windows

```

Beispiel:

```text
https://example.com:8443/procurat/api/v1/filestarter/update/info
https://example.com:8443/procurat/api/v1/filestarter/update/download?os=windows

```

Der Info-Endpunkt zeigt die vom Server bereitgestellte Version. Der Download-Endpunkt liefert die dazugehörige EXE-Datei.

Laden Sie die Datei zunächst in ein temporäres Verzeichnis. Schreiben Sie den Download nicht direkt über die installierte Datei.

```powershell
$ProcuratUrl = "https://example.com:8443/procurat"
$DownloadPath = Join-Path $env:TEMP "filestarter-update.exe"

Invoke-WebRequest `
  -Uri "$ProcuratUrl/api/v1/filestarter/update/download?os=windows" `
  -OutFile $DownloadPath

```

### 3. Signatur prüfen

Führen Sie die folgende Prüfung in demselben PowerShell-Fenster aus:

```powershell
& {
    $ErrorActionPreference = "Stop"
    $DownloadPath = "./filestarter.exe"

    if (-not (Test-Path -LiteralPath $DownloadPath -PathType Leaf)) {
        throw "Die heruntergeladene Datei wurde nicht gefunden: $DownloadPath"
    }

    $ExpectedEkus = @(
        "1.3.6.1.5.5.7.3.3"
        "1.3.6.1.4.1.311.97.1.0"
        "1.3.6.1.4.1.311.97.860032498.345654778.713979207.345507606"
    )

    $Signature = Get-AuthenticodeSignature -LiteralPath $DownloadPath
    if ($Signature.Status -ne "Valid" -or $null -eq $Signature.SignerCertificate) {
        throw "Die FileStarter-Signatur ist ungültig. Installieren Sie die Datei nicht."
    }

    $ActualEkus = @(
        $Signature.SignerCertificate.Extensions |
            Where-Object { $_.Oid.Value -eq "2.5.29.37" } |
            ForEach-Object { $_.EnhancedKeyUsages.Value }
    )
    $MissingEkus = @($ExpectedEkus | Where-Object { $ActualEkus -notcontains $_ })

    if ($MissingEkus.Count -gt 0) {
        throw "Die Datei stammt nicht vom freigegebenen ProtoSoft-Herausgeber."
    }

    Write-Host "Signatur und ProtoSoft-Herausgeber sind gültig."
}

```

Setzen Sie die Aktualisierung nur fort, wenn die letzte Zeile `Signatur und ProtoSoft-Herausgeber sind gültig.` lautet. Löschen Sie die heruntergeladene Datei und wenden Sie sich an den ProtoSoft-Support, wenn die Prüfung fehlschlägt.

### 4. Installierte Datei sichern und ersetzen

Setzen Sie den zuvor ermittelten Installationspfad ein. Das Skript legt die neue Datei zunächst unter einem anderen Namen im Installationsverzeichnis ab. Wenn das Umbenennen fehlschlägt, versucht es, die bisherige Datei wiederherzustellen.

```powershell
$InstallPath = "C:\FileStarter\filestarter.exe"
$InstallDirectory = Split-Path $InstallPath
$CandidatePath = Join-Path $InstallDirectory "filestarter_manual_update.exe"
$BackupPath = Join-Path $InstallDirectory "filestarter_manual_backup.exe"

if (Test-Path $BackupPath) {
    throw "Die Sicherungsdatei $BackupPath ist bereits vorhanden. Prüfen Sie sie, bevor Sie fortfahren."
}

Copy-Item $DownloadPath $CandidatePath
Move-Item $InstallPath $BackupPath

try {
    Move-Item $CandidatePath $InstallPath
} catch {
    Move-Item $BackupPath $InstallPath
    throw
}

```

Für ein systemweites oder anderweitig geschütztes Verzeichnis müssen Sie PowerShell als Administrator ausführen.

### 5. Aktualisierung prüfen

Starten Sie anschließend einen Datei- oder Ordnerzugriff aus Procurat. Wenn der Aufruf fehlschlägt, benennen Sie die fehlerhafte Datei um und stellen Sie die Sicherung wieder her:

```powershell
$InstallPath = "C:\FileStarter\filestarter.exe"
$InstallDirectory = Split-Path $InstallPath
$BackupPath = Join-Path $InstallDirectory "filestarter_manual_backup.exe"
$FailedPath = Join-Path $InstallDirectory "filestarter_manual_failed.exe"

Move-Item $InstallPath $FailedPath
Move-Item $BackupPath $InstallPath

```

Löschen Sie die Sicherung erst, nachdem ein Aufruf aus Procurat erfolgreich war.

## Fehlerbehebung

### Installation endet ohne sichtbare Meldung

Der FileStarter ist eine Anwendung ohne Konsolenfenster. Eine erfolgreiche Installation zeigt deshalb derzeit keine Bestätigung an. Prüfen Sie die installierte Datei und die Registrierung wie oben beschrieben.

### Zugriff verweigert

- Starten Sie die systemweite Installation als Administrator.
- Prüfen Sie die Schreibberechtigungen des Installationsverzeichnisses.
- Verwenden Sie für eine Benutzerinstallation bei Bedarf `%LOCALAPPDATA%\FileStarter`.
- Prüfen Sie, ob `filestarter.exe` noch ausgeführt wird.

### Falscher oder alter Installationspfad

Prüfen Sie `HKEY_CURRENT_USER` und `HKEY_LOCAL_MACHINE`. Eine benutzerspezifische Registrierung kann eine korrekte systemweite Registrierung überlagern.