feat: opdater Detect.ps1 med specifik fil-tjek og opdater README

- Implementer $expectedFiles array i Detect.ps1 for at tjekke specifikke .rdp-filnavne
- Opdater beskrivelse af Detect.ps1 i pakkens indhold tabel
- Tilføj afsnit 'Sådan opsætter du Detect.ps1' med eksempel og forklaring
- Opdater indholdsfortegnelse med nyt afsnit
This commit is contained in:
2026-05-24 19:27:09 +02:00
parent 13005cf161
commit 0593f8c042
2 changed files with 42 additions and 14 deletions
+24 -1
View File
@@ -11,6 +11,7 @@
- [Pakkens indhold](#pakkens-indhold) - [Pakkens indhold](#pakkens-indhold)
- [Intune App Konfiguration](#intune-app-konfiguration) - [Intune App Konfiguration](#intune-app-konfiguration)
- [Hvad Install.ps1 gør](#hvad-installps1-gør) - [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) - [AllUsers Switch](#allusers-switch)
- [Registry-ændringer](#registry-ændringer) - [Registry-ændringer](#registry-ændringer)
- [Logning og fejlfinding](#logning-og-fejlfinding) - [Logning og fejlfinding](#logning-og-fejlfinding)
@@ -24,7 +25,7 @@
| Fil | Formål | | Fil | Formål |
|-----|--------| |-----|--------|
| `Install.ps1` | Kopierer RDP-filer til skrivebord(e), opretter selvsigneret certifikat og signerer alle RDP-filer. Understøtter `-AllUsers` switch. | | `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. | | `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.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. | | `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 ## Intune App Konfiguration
### Program ### Program
+18 -13
View File
@@ -1,5 +1,7 @@
# ============================================================ # ============================================================
# CHANGELOG # 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 # v1.1 - Added -AllUsers switch to check all user desktops
# instead of only the public desktop. # instead of only the public desktop.
# Added Get-DesktopPaths helper function. # Added Get-DesktopPaths helper function.
@@ -10,6 +12,16 @@ param(
[switch]$AllUsers [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 # Setup logging
$baseFolder = Join-Path $env:SystemDrive "Intune" $baseFolder = Join-Path $env:SystemDrive "Intune"
$logFile = Join-Path $baseFolder "DesktopShortcuts.log" $logFile = Join-Path $baseFolder "DesktopShortcuts.log"
@@ -37,28 +49,21 @@ function Get-DesktopPaths {
} }
try { try {
$desktopPaths = Get-DesktopPaths $desktopPaths = Get-desktopPaths
$allFound = $true $allFound = $true
foreach ($desktopPath in $desktopPaths) { foreach ($desktopPath in $desktopPaths) {
$rdpFiles = Get-ChildItem -Path "$desktopPath\*.rdp" -ErrorAction SilentlyContinue foreach ($fileName in $expectedFiles) {
$targetFile = Join-Path $desktopPath $fileName
if ($rdpFiles.Count -eq 0) { if (-not (Test-Path $targetFile)) {
Write-Log "DETECT [FAIL]: No .rdp files found on desktop: $desktopPath" Write-Log "DETECT [FAIL]: Missing: $fileName on $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"
$allFound = $false $allFound = $false
} }
} }
} }
if ($allFound) { 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 exit 0
} else { } else {
exit 1 exit 1