Zum Hauptinhalt springen

Windows Server

info

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ü
  1. Klicken Sie mit der rechten Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
  2. Wählen Sie „Windows PowerShell (Administrator)" aus dem Kontextmenü.
Über das Startmenü
  1. Klicken Sie mit der linken Maustaste auf das Start-Symbol in der unteren linken Ecke des Bildschirms.
  2. Geben Sie powershell ein.
  3. Öffnen Sie PowerShell als „Administrator" mit der Tastenkombination — Ctrl + Shift + Enter

Erstellen Sie ein temporäres Verzeichnis zum Herunterladen von Paketen und Archiven:

New-Item -Path "C:\Windows\Temp\passwork_install" -ItemType Directory

Ermitteln Sie die Namen der Benutzergruppen mithilfe der SID:

$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:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature -Name Web-CGI -IncludeManagementTools

3. PHP installieren

Laden Sie das PHP-Archiv herunter:

(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")

Entpacken Sie den Inhalt nach Program Files:

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:

[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:

Invoke-Expression "icacls '$env:ProgramFiles\php8.3' /grant '${userGroupName}:(OI)(CI)`M'"

4. MongoDB-Datenbank installieren

Laden Sie das MongoDB-Installationsprogramm herunter:

(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")

Installieren Sie MongoDB mit den Standardeinstellungen:

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
info

Um MongoDB auf einem anderen Laufwerk zu installieren, fügen Sie "INSTALLLOCATION=A:\MongoDB" hinzu.

Erstellen Sie ein Verzeichnis für MongoDB-Administrationsprogramme:

New-Item -ItemType Directory -Force -Path "$env:ProgramFiles\MongoDB\Tools\"

Laden Sie die Administrationsprogramme herunter:

(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")

Entpacken Sie den Inhalt:

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:

[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:

(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")

Entpacken Sie die IIS-Module:

Expand-Archive `
-Path "$env:SystemDrive\Windows\Temp\passwork_install\iis_package_latest.zip" `
-DestinationPath "$env:SystemDrive\Windows\Temp\passwork_install\"

Installieren Sie Visual C++:

Start-Process `
-FilePath "$env:SystemDrive\Windows\Temp\passwork_install\VC_redist.x64.exe" `
-ArgumentList "/q" -Wait -ErrorAction Stop

Installieren Sie PHP Manager:

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:

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:

New-Item -ItemType Directory -Force -Path "C:\inetpub\wwwroot\passwork"

Gehen Sie zum Passwork-Kundenportal und kopieren Sie den API-Schlüssel:

Speicherort des API-Schlüssels im Kundenportal

Erstellen Sie die Variable API_KEY:

$API_KEY = "your_api_key"

Überprüfen Sie die verfügbare Passwork-Version im Kundenportal:

Invoke-RestMethod -Uri "https://portal.passwork.pro/api/version?apikey=$API_KEY" -Method Get
Korrekte Ausgabe
response
--------
@{last-available-version=xxxxxxxx}

Laden Sie Passwork über die Anfrage herunter:

(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:

Remove-Variable API_KEY

Entpacken Sie das heruntergeladene Archiv:

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:

web.config

Setzen Sie die Berechtigungen für den physischen Speicherort von Passwork:

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

gefahr

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:

Import-Module IISAdministration
Import-Module WebAdministration
Add-PsSnapin PHPManagerSnapin

Entsperren Sie die handlers-Konfiguration in IIS:

Invoke-Expression "$env:windir\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers"

Erstellen Sie eine Website mit dem Namen Passwork Web Site:

New-WebSite -Name "Passwork Web Site" -Port "5353" -PhysicalPath "C:\inetpub\wwwroot\passwork\public" -Force

Registrieren Sie die PHP-Version für die Website:

New-PHPVersion -ScriptProcessor "$env:ProgramFiles\php8.3\php-cgi.exe" -SiteName "Passwork Web Site" -VirtualPath "/"

Aktivieren Sie Treiber und Erweiterungen für die Website:

$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:

$phpVersion = (Get-PHPConfiguration -SiteName "Passwork Web Site" -VirtualPath "/").version

Aktualisieren Sie die Liste der erlaubten HTTP-Methoden für den PHP-Handler:

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

info

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:

$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:

New-WebBinding -Name "Passwork Web Site" -IPAddress "*" -Port "443" -Protocol "https"

Rufen Sie die aktuelle Bindung der Passwork-Website ab:

$binding = Get-WebBinding -Name "Passwork Web Site" -Protocol "https"

Binden Sie das zuvor erstellte selbstsignierte SSL-Zertifikat an das HTTPS-Protokoll der Website:

$binding.AddSslCertificate($newCert.GetCertHashString(), "my")

Starten Sie den IIS-Webserver neu:

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.

info

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.

gefahr

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.