# RDP - IntuneWin Pakke > Denne pakke installerer og signerer RDP-genveje på skrivebordet via et selvsigneret certifikat, så brugerne ikke får en sikkerhedsadvarsel ved åbning. > Som standard arbejder alle scripts mod det **offentlige skrivebord** (`C:\Users\Public\Desktop`). > Brug `-AllUsers` switchen for at køre mod alle brugeres individuelle skriveborde i stedet. --- ## Indhold - [Pakkens indhold](#pakkens-indhold) - [Intune App Konfiguration](#intune-app-konfiguration) - [Hvad Install.ps1 gør](#hvad-installps1-gør) - [Sådan opsætter du Detect.ps1](#sådan-opsætter-du-detectps1) - [AllUsers Switch](#allusers-switch) - [Registry-ændringer](#registry-ændringer) - [Logning og fejlfinding](#logning-og-fejlfinding) - [SignOnly Intune App Konfiguration](#signonly-intune-app-konfiguration) - [Øvrige scripts i pakken](#øvrige-scripts-i-pakken) --- ## Pakkens indhold | Fil | Formål | |-----|--------| | `Install.ps1` | Kopierer RDP-filer til skrivebord(e), opretter selvsigneret certifikat og signerer alle RDP-filer. Understøtter `-AllUsers` switch. | | `Detect.ps1` | Tjekker at specifikke forventede .rdp-filer (defineret i `$expectedFiles` array) eksisterer på skrivebord(e). Understøtter `-AllUsers` switch. | | `Uninstall.ps1` | Fjerner RDP-filer fra skrivebord(e). Understøtter `-AllUsers` switch. | | `SignOnly.ps1` | Signerer eksisterende RDP-filer på skrivebord(e) — ingen filkopiering. Understøtter `-AllUsers` switch. | | `SignOnly_detect.ps1` | Registrerer om certifikat er til stede og alle RDP-filer på skrivebord(e) er signerede. Understøtter `-AllUsers` switch. | | `Clearsigning.ps1` | Fjerner signaturer fra RDP-filer og rydder op i certifikat og registry (til oprydning/debug). Understøtter `-AllUsers` switch. | | `sandbox.ps1` | Kombineret install + detect script til lokal sandkasse-test. Understøtter `-AllUsers` switch. | | `rdp-files\*.rdp` | Kilde-RDP-filer der installeres på skrivebord(e) | [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## Sådan opsætter du Detect.ps1 Før du uploader `Detect.ps1` til Intune som registreringsregel, skal du åbne filen og udfylde `$expectedFiles` array med de `.rdp` filnavne der ligger i `.\\rdp-files\\`: ```powershell $expectedFiles = @( "Server1.rdp", "Server2.rdp", "DesktopApp.rdp" ) ``` Når scriptet kører: - Uden `-AllUsers`: tjekker at alle filer i `$expectedFiles` findes på det offentlige skrivebord (`C:\Users\Public\Desktop`) - Med `-AllUsers`: tjekker alle filer i `$expectedFiles` på tværs af alle brugeres skriveborde - Returnerer `exit 0` = installeret (alle filer fundet) - Returnerer `exit 1` = ikke installeret (en eller flere filer mangler) > **Vigtigt:** Husk at opdatere `$expectedFiles` hver gang du tilføjer eller fjerner `.rdp` filer i pakken, ellers vil detekteringen være forkert. --- ## Intune App Konfiguration ### Program - **Installationskommando:** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Install.ps1` - **Installationskommando (alle brugeres skriveborde):** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Install.ps1 -AllUsers` - **Afinstallationskommando:** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Uninstall.ps1` - **Afinstallationskommando (alle brugeres skriveborde):** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Uninstall.ps1 -AllUsers` - **Installationsadfærd:** System ### Registreringsregel Brug et brugerdefineret registreringsscript: - **Scriptfil:** `Detect.ps1` - **Kør script som 32-bit proces på 64-bit klienter:** Nej - **Gennemtving scriptsignaturkontrol:** Nej Registreringslogik: - Uden `-AllUsers`: tjekker at alle `.rdp`-filer er til stede på det offentlige skrivebord (`C:\Users\Public\Desktop`) - Med `-AllUsers`: tjekker alle brugeres skriveborde under `C:\Users\` - Returnerer `exit 0` = installeret - Returnerer `exit 1` = ikke installeret [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## Hvad Install.ps1 gør 1. Finder målskrivebord(e) — offentligt skrivebord som standard, alle brugeres skriveborde med `-AllUsers`. Med `-AllUsers` søges 2 mapper ned så OneDrive-omdirigeret Desktop også fanges 2. Kopierer alle `.rdp`-filer fra `.\rdp-files\` til de fundne skrivebord(e) 3. Søger efter eksisterende selvsigneret certifikat (`CN=RDPSign`) i `Cert:\LocalMachine\My` 4. Opretter et nyt selvsigneret kodesigneringscertifikat hvis intet findes (gyldigt i 25 år, ikke-eksporterbart) 5. Tilføjer certifikatet til `Trusted Root` og `Trusted Publishers` i den lokale maskines certifikatstore 6. Tilføjer certifikatets thumbprint til registry-nøglen `TrustedCertThumbprints` 7. Signerer alle `.rdp`-filer på skrivebord(e) med `rdpsign.exe /sha256` 8. Sætter `RedirectionWarningDialogVersion = 1` i registry for at undertrykke RDP-advarselsdialoger [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## AllUsers Switch Alle scripts understøtter `-AllUsers` switchen. Som standard — uden `-AllUsers` — køres alle scripts kun mod det **offentlige skrivebord** (`C:\Users\Public\Desktop`). Når `-AllUsers` angives, søger scriptet i stedet på tværs af alle brugerprofiler under `C:\Users\` (ekskl. `Public`/`Default`). Der søges 2 mapper ned (`-Depth 2`) for at fange både standard `Desktop` og OneDrive-omdirigeret `Desktop`. ```powershell # Kun offentligt skrivebord (standard) .\Install.ps1 # Alle brugeres skriveborde .\Install.ps1 -AllUsers ``` [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## Registry-ændringer | Sti | Værdi | Type | Data | |-----|-------|------|------| | `HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services` | `TrustedCertThumbprints` | String | Certifikatets thumbprint | | `HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services\Client` | `RedirectionWarningDialogVersion` | DWORD | `1` | [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## Logning og fejlfinding | Script | Logfil | |--------|--------| | `Install.ps1` | `C:\Intune\DesktopShortcuts.log` | | `Detect.ps1` | `C:\Intune\DesktopShortcuts.log` | | `Uninstall.ps1` | `C:\Intune\DesktopShortcuts.log` | | `SignOnly.ps1` | `C:\Intune\RDPSign.log` | [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## SignOnly Intune App Konfiguration ### Program - **Installationskommando:** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\SignOnly.ps1` - **Installationskommando (alle brugeres skriveborde):** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\SignOnly.ps1 -AllUsers` - **Afinstallationskommando:** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Clearsigning.ps1` - **Afinstallationskommando (alle brugeres skriveborde):** `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Clearsigning.ps1 -AllUsers` - **Installationsadfærd:** System ### Registreringsregel Brug et brugerdefineret registreringsscript: - **Scriptfil:** `SignOnly_detect.ps1` - **Kør script som 32-bit proces på 64-bit klienter:** Nej - **Gennemtving scriptsignaturkontrol:** Nej Registreringslogik: - Tjekker at `CN=RDPSign`-certifikatet findes i `My`, `Root` og `TrustedPublisher` stores - Tjekker at thumbprint er til stede i registry - Uden `-AllUsers`: tjekker at alle `.rdp`-filer på det offentlige skrivebord er signerede - Med `-AllUsers`: tjekker alle `.rdp`-filer på tværs af alle brugeres skriveborde - Returnerer `exit 0` + `"Detected"` = installeret - Returnerer `exit 1` = ikke installeret [↑ Tilbage til toppen](#rdp---intunewin-pakke) --- ## Øvrige scripts i pakken > **Bemærk:** Alle PowerShell-scripts er pakket ind i samme IntuneWin-pakke. Det betyder at man altid kan kalde på et vilkårligt script direkte fra Intune eller manuelt, f.eks.: > > ```powershell > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Install.ps1 > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Install.ps1 -AllUsers > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\SignOnly.ps1 > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\SignOnly.ps1 -AllUsers > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Clearsigning.ps1 > powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File .\Clearsigning.ps1 -AllUsers > ``` > osv. for alle scripts i pakken. ### `SignOnly.ps1` Signerer alle eksisterende `.rdp`-filer på skrivebord(e) uden at kopiere filer. Nyttigt til gensignering efter en opdatering eller hvis filer allerede er installeret. Kør som administrator. Understøtter `-AllUsers` switch. ### `SignOnly_detect.ps1` Registreringsscript til brug med `SignOnly.ps1` som Intune-pakke. Tjekker: - Certifikat findes i `My`, `Root` og `TrustedPublisher` stores - Thumbprint er til stede i registry - Alle `.rdp`-filer på skrivebord(e) indeholder en gyldig signatur Understøtter `-AllUsers` switch. ### `Clearsigning.ps1` Fjerner alle signeringsartefakter. Nyttigt til test eller oprydning. Kør som administrator. Understøtter `-AllUsers` switch. - Fjerner `signscope`- og `signature`-linjer fra alle `.rdp`-filer på skrivebord(e) - Fjerner `CN=RDPSign`-certifikatet fra `My`, `Root` og `TrustedPublisher` stores - Fjerner `TrustedCertThumbprints` fra registry - Fjerner `RedirectionWarningDialogVersion` fra registry ### `sandbox.ps1` Kombinerer install og detect i ét script til lokal sandkasse-test. Understøtter `-AllUsers` switch. Kør fra mappen der indeholder `rdp-files\` som administrator. Output skrives til både konsollen og `C:\Intune\DesktopShortcuts.log`. [↑ Tilbage til toppen](#rdp---intunewin-pakke)