# ============================================================ # CHANGELOG # v1.2 - Get-DesktopPaths: Depth 2 search for OneDrive Desktop # v1.1 - AllUsers switch + Get-DesktopPaths helper # v1.0 - Initial # ============================================================ param( [switch]$AllUsers ) # Setup logging $baseFolder = Join-Path $env:SystemDrive "Intune" $logFile = Join-Path $baseFolder "DesktopShortcuts.log" if (-not (Test-Path $baseFolder)) { New-Item -Path $baseFolder -ItemType Directory -Force | Out-Null } function Write-Log { param($Message) $logMessage = "$(Get-Date -Format 'dd-MM-yyyy HH:mm'): $Message" Add-Content -Path $logFile -Value $logMessage Write-Host $logMessage } function Get-DesktopPaths { if ($AllUsers) { Get-ChildItem "$env:SystemDrive\Users" -Directory -Exclude "Public","Default" | ForEach-Object { Get-ChildItem $_.FullName -Directory -Filter "Desktop" -Depth 2 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName } } else { [Environment]::GetFolderPath("CommonDesktopDirectory") } } try { $desktopPaths = Get-DesktopPaths Write-Log "Running in mode: $(if ($AllUsers) { 'All Users' } else { 'Public Desktop' })" foreach ($desktopPath in $desktopPaths) { Get-ChildItem -Path ".\rdp-files\*.rdp" | ForEach-Object { $targetFile = Join-Path $desktopPath $_.Name if (Test-Path $targetFile) { Remove-Item -Path $targetFile -Force Write-Log "Removed: $($_.Name) from $desktopPath" } else { Write-Log "Not found, skipping: $($_.Name) on $desktopPath" } } } Write-Log "Uninstall completed." exit 0 } catch { Write-Log "An error occurred: $_" exit 1 }