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:
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user