Windows Server
Anleitung zur Installation von Passwork auf dem Betriebssystem:
- Windows Server 2019
- Windows Server 2022
- Windows Server 2025
1. Minimale Systemanforderungen
Passwork stellt keine hohen Anforderungen an die Systemressourcen, und die erforderliche Anzahl von Servern hängt von der Anzahl der aktiven Benutzer, dem Volumen der gespeicherten Daten und den Anforderungen an die Fehlertoleranz des Systems ab.
Bitte lesen Sie die vollständigen Systemanforderungen.
2. Grundlegende Aktionen vor der Installation
Über das Start-Kontextmenü
- Klicken Sie mit der rechten Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
- Wählen Sie „Windows PowerShell (Administrator)" aus dem Kontextmenü.
Über das Startmenü
- Klicken Sie mit der linken Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
- Geben Sie
powershellein. - Öffnen Sie PowerShell als „Administrator" mit der Tastenkombination —
Ctrl + Shift + Enter
Erstellen Sie ein temporäres Verzeichnis zum Herunterladen von Paketen und Archiven:
- PowerShell
New-Item -Path "C:\Windows\Temp\passwork_install" -ItemType Directory
Ermitteln Sie die Namen der Benutzergruppen mithilfe der SID:
- PowerShell
$userGroupSid = "S-1-5-32-545"
$userSecurityIdentifier = New-Object System.Security.Principal.SecurityIdentifier($userGroupSid)
$userGroupName = $userSecurityIdentifier.Translate([System.Security.Principal.NTAccount]).Value
$userGroupName = $userGroupName.Split("\")[1]
$iis_iusrsGroupSid = "S-1-5-32-568"
$iis_iusrsSecurityIdentifier = New-Object System.Security.Principal.SecurityIdentifier($iis_iusrsGroupSid)
$iis_iusrsGroupName = $iis_iusrsSecurityIdentifier.Translate([System.Security.Principal.NTAccount]).Value
$iis_iusrsGroupName = $iis_iusrsGroupName.Split("\")[1]
Installieren Sie die IIS-Rolle mit dem Modul:
- PowerShell
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-CGI -IncludeManagementTools
3. PHP installieren
Laden Sie das PHP-Archiv herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/windows_packages/php_build/83/php_latest.zip", "C:\Windows\Temp\passwork_install\php_latest.zip")
Im Fehlerfall laden Sie das Archiv manuell herunter
Entpacken Sie den Inhalt nach Program Files:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\php_latest.zip" `
-DestinationPath "$env:ProgramFiles\"
Fügen Sie die PHP-Dienstprogramme zur Umgebungsvariable PATH hinzu:
- PowerShell
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine) + ";C:\Program Files\php8.3", [System.EnvironmentVariableTarget]::Machine)
$env:Path = [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine)
Setzen Sie die Berechtigungen für die Gruppe Users im PHP-Verzeichnis:
- PowerShell
Invoke-Expression "icacls '$env:ProgramFiles\php8.3' /grant '${userGroupName}:(OI)(CI)`M'"
4. MongoDB-Datenbank installieren
Laden Sie das MongoDB-Installationsprogramm herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/windows_packages/mongodb_database_latest.msi", "C:\Windows\Temp\passwork_install\mongodb_database_latest.msi")
Im Fehlerfall laden Sie das Installationsprogramm manuell herunter
Installieren Sie MongoDB mit den Standardeinstellungen:
- PowerShell
Start-Process -FilePath "msiexec.exe" -ArgumentList "/l*v", "C:\Windows\Temp\mdbinstall.log", "/qb", "/i", "C:\Windows\Temp\passwork_install\mongodb_database_latest.msi", "SHOULD_INSTALL_COMPASS=0", "ADDLOCAL=Router,ServerService" -Wait
Um MongoDB auf einem anderen Laufwerk zu installieren, fügen Sie "INSTALLLOCATION=A:\MongoDB" hinzu.
Erstellen Sie ein Verzeichnis für MongoDB-Administrationsprogramme:
- PowerShell
New-Item -ItemType Directory -Force -Path "$env:ProgramFiles\MongoDB\Tools\"
Laden Sie die Administrationsprogramme herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/windows_packages/database_tools_latest.zip", "C:\Windows\Temp\passwork_install\database_tools_latest.zip")
Im Fehlerfall laden Sie die Dienstprogramme manuell herunter
Entpacken Sie den Inhalt:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\database_tools_latest.zip" `
-DestinationPath "$env:ProgramFiles\MongoDB\Tools\"
Fügen Sie die Administrationsprogramme zur Umgebungsvariable PATH hinzu:
- PowerShell
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine) + ";C:\Program Files\MongoDB\Tools", [System.EnvironmentVariableTarget]::Machine)
$env:Path = [System.Environment]::GetEnvironmentVariable("PATH", [System.EnvironmentVariableTarget]::Machine)
5. Module für IIS installieren
Laden Sie das Archiv mit den Modulen herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/windows_packages/iis_package_latest.zip", "C:\Windows\Temp\passwork_install\iis_package_latest.zip")
Im Fehlerfall laden Sie die Module manuell herunter
Entpacken Sie die IIS-Module:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\iis_package_latest.zip" `
-DestinationPath "$env:SystemDrive\Windows\Temp\passwork_install\"
Installieren Sie Visual C++:
- PowerShell
Start-Process `
-FilePath "$env:SystemDrive\Windows\Temp\passwork_install\VC_redist.x64.exe" `
-ArgumentList "/q" -Wait -ErrorAction Stop
Installieren Sie PHP Manager:
- PowerShell
Start-Process -FilePath "msiexec.exe" `
-ArgumentList "/i $env:SystemDrive\Windows\Temp\passwork_install\PHPManagerForIIS_x64.msi /quiet /norestart" `
-Wait -ErrorAction Stop
Installieren Sie URL Rewrite:
- PowerShell
Start-Process -FilePath "msiexec.exe" `
-ArgumentList "/i $env:SystemDrive\Windows\Temp\passwork_install\rewrite_amd64_en-US.msi /quiet /norestart" `
-Wait -ErrorAction Stop
6. Passwork beschaffen
Erstellen Sie ein Verzeichnis für Passwork:
- PowerShell
New-Item -ItemType Directory -Force -Path "C:\inetpub\wwwroot\passwork"
Gehen Sie zum Passwork-Kundenportal und kopieren Sie den API-Schlüssel:

Erstellen Sie die Variable API_KEY:
- PowerShell
$API_KEY = "your_api_key"
Überprüfen Sie die verfügbare Passwork-Version im Kundenportal:
- PowerShell
Invoke-RestMethod -Uri "https://portal.passwork.pro/api/version?apikey=$API_KEY" -Method Get
Korrekte Ausgabe
- PowerShell
response
--------
@{last-available-version=xxxxxxxx}
Laden Sie Passwork über die Anfrage herunter:
- PowerShell
(New-Object System.Net.WebClient).DownloadFile("https://portal.passwork.pro/api/download?apikey=$API_KEY", "C:\Windows\Temp\passwork_install\passwork.zip")
Löschen Sie die Variable API_KEY:
- PowerShell
Remove-Variable API_KEY
Entpacken Sie das heruntergeladene Archiv:
- PowerShell
Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\passwork.zip" `
-DestinationPath "$env:SystemDrive\inetpub\wwwroot\passwork\"
Laden Sie die Datei web.config herunter und legen Sie diese in C:\inetpub\wwwroot\passwork\public\ für die Umleitungsregeln ab:
Setzen Sie die Berechtigungen für den physischen Speicherort von Passwork:
- PowerShell
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant '${userGroupName}:(OI)(CI)`M'"
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant '${$iis_iusrsGroupName}:(OI)(CI)`M'"
Invoke-Expression "icacls '$env:SystemDrive\inetpub\wwwroot' /grant 'IUSR:(OI)(CI)`M'"
7. Website mit PHP-Verbindung erstellen
Wichtig: Um den korrekten Betrieb von Passwork zu gewährleisten, müssen Sie das HTTPS-Protokoll verwenden.
Laden Sie Module in PowerShell für die IIS-Verwaltung:
- PowerShell
Import-Module IISAdministration
Import-Module WebAdministration
Add-PsSnapin PHPManagerSnapin
Entsperren Sie die handlers-Konfiguration in IIS:
- PowerShell
Invoke-Expression "$env:windir\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers"
Erstellen Sie eine Website mit dem Namen Passwork Web Site:
- PowerShell
New-WebSite -Name "Passwork Web Site" -Port "5353" -PhysicalPath "C:\inetpub\wwwroot\passwork\public" -Force
Registrieren Sie die PHP-Version für die Website:
- PowerShell
New-PHPVersion -ScriptProcessor "$env:ProgramFiles\php8.3\php-cgi.exe" -SiteName "Passwork Web Site" -VirtualPath "/"
Aktivieren Sie Treiber und Erweiterungen für die Website:
- PowerShell
$extensions = @(
"php_curl.dll",
"php_gd.dll",
"php_gettext.dll",
"php_intl.dll",
"php_ldap.dll",
"php_mbstring.dll",
"php_mongodb.dll",
"php_mysqli.dll",
"php_openssl.dll",
"php_pdo_pgsql.dll",
"php_pdo_sqlite.dll",
"php_pgsql.dll",
"php_soap.dll",
"php_zip.dll",
"php_fileinfo.dll"
)
foreach ($extension in $extensions) {
Write-Host "PHP extension activated: $extension"
Set-PHPExtension -Name $extension -Status Enabled -SiteName "Passwork Web Site" -VirtualPath "/"
}
Speichern Sie die PHP-Versionsnummer in einer Variablen:
- PowerShell
$phpVersion = (Get-PHPConfiguration -SiteName "Passwork Web Site" -VirtualPath "/").version
Aktualisieren Sie die Liste der erlaubten HTTP-Methoden für den PHP-Handler:
- PowerShell
Set-WebConfigurationProperty -PSPath "IIS:\Sites\Passwork Web Site" -Filter "system.webServer/handlers/add[@name='php-$phpVersion']" -Name "verb" -Value "GET,HEAD,POST,PUT,DELETE,PATCH"
8. Webserver für das HTTPS-Protokoll konfigurieren
Für den korrekten Betrieb muss das HTTPS-Protokoll verwendet werden. Die Verwendung von HTTP führt zu Fehlern.
8.1 Selbstsigniertes SSL-Zertifikat generieren
Erstellen Sie ein selbstsigniertes SSL-Zertifikat mit dem Wert des Servernamens:
- PowerShell
$dnsName = "$env:COMPUTERNAME"
$newCert = New-SelfSignedCertificate -DnsName $dnsName -CertStoreLocation cert:\LocalMachine\My
8.2 IIS-Bindung für HTTPS-Zugriff erstellen
Erstellen Sie eine HTTPS-Bindung auf der Passwork-Website:
- PowerShell
New-WebBinding -Name "Passwork Web Site" -IPAddress "*" -Port "443" -Protocol "https"
Rufen Sie die aktuelle Bindung der Passwork-Website ab:
- PowerShell
$binding = Get-WebBinding -Name "Passwork Web Site" -Protocol "https"
Binden Sie das zuvor erstellte selbstsignierte SSL-Zertifikat an das HTTPS-Protokoll der Website:
- PowerShell
$binding.AddSslCertificate($newCert.GetCertHashString(), "my")
Starten Sie den IIS-Webserver neu:
- PowerShell
Restart-Service -Name "W3SVC"
9. Checkliste durchführen
Beim erstmaligen Verbinden mit Passwork müssen Sie die Parameter-Checkliste durchlaufen, wobei Folgendes durchgeführt wird:
- Überprüfung der erforderlichen Parameter
- Verbindung zur MongoDB-Datenbank
- Auswahl des Datenverschlüsselungsmodus
- Zufällig generierter Schlüssel zur Verschlüsselung der Daten in MongoDB
- Überprüfung des Lizenzschlüssels
Nach dem Durchlaufen der Checkliste werden Sie aufgefordert, den ersten Benutzer in Passwork zu erstellen, wobei Sie Login, Passwort und E-Mail-Adresse für den Versand von Benachrichtigungen angeben müssen.
Zusätzliche Komponentenparameter, Sicherheitseinstellungen und Passwork-Systemkonfiguration sind im Abschnitt Erweiterte Einstellungen verfügbar.
10. Hintergrundaufgaben konfigurieren
Hintergrundaufgaben sind Aufgaben, die nach einem Zeitplan im Hintergrund ausgeführt werden. Erfahren Sie, wie Sie Hintergrundaufgaben konfigurieren.
Hintergrundaufgaben sind für den korrekten Betrieb einiger Passwork-Funktionen obligatorisch, wie z.B.:
- LDAP-Operationen;
- Versand von E-Mail-Benachrichtigungen;
- Herunterladen von Favicons;
- Bereinigung der session-Sammlung in der Passwork-Datenbank.