diff --git a/README.md b/README.md index e92f033..59ee5a5 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - [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) @@ -24,7 +25,7 @@ | 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` | Registrerer om alle RDP-filer fra pakken er til stede på skrivebord(e). 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. | @@ -36,6 +37,28 @@ --- +## 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 diff --git a/app/Detect.ps1 b/app/Detect.ps1 index 04774f1..6a01ea6 100644 --- a/app/Detect.ps1 +++ b/app/Detect.ps1 @@ -1,5 +1,7 @@ # ============================================================ # CHANGELOG +# v1.2 - Checks for specific expected .rdp filenames instead +# of just "any .rdp file exists on desktop". # v1.1 - Added -AllUsers switch to check all user desktops # instead of only the public desktop. # Added Get-DesktopPaths helper function. @@ -10,6 +12,16 @@ param( [switch]$AllUsers ) +# ============================================================ +# Update this list whenever .rdp files are added or removed +# from the rdp-files\\ folder. +# ============================================================ +$expectedFiles = @( + # Add your .rdp filenames here, e.g.: + # "RemoteServer1.rdp", + # "RemoteServer2.rdp" +) + # Setup logging $baseFolder = Join-Path $env:SystemDrive "Intune" $logFile = Join-Path $baseFolder "DesktopShortcuts.log" @@ -37,28 +49,21 @@ function Get-DesktopPaths { } try { - $desktopPaths = Get-DesktopPaths + $desktopPaths = Get-desktopPaths $allFound = $true foreach ($desktopPath in $desktopPaths) { - $rdpFiles = Get-ChildItem -Path "$desktopPath\*.rdp" -ErrorAction SilentlyContinue - - if ($rdpFiles.Count -eq 0) { - Write-Log "DETECT [FAIL]: No .rdp files found on desktop: $desktopPath" - $allFound = $false - continue - } - - foreach ($file in $rdpFiles) { - if (-not (Test-Path (Join-Path $desktopPath $file.Name))) { - Write-Log "DETECT [FAIL]: Missing: $($file.Name) on $desktopPath" + foreach ($fileName in $expectedFiles) { + $targetFile = Join-Path $desktopPath $fileName + if (-not (Test-Path $targetFile)) { + Write-Log "DETECT [FAIL]: Missing: $fileName on $desktopPath" $allFound = $false } } } if ($allFound) { - Write-Log "DETECT [OK]: All .rdp files found on all desktop(s)" + Write-Log "DETECT [OK]: All expected .rdp files found" exit 0 } else { exit 1