Write-Output "=== 1. OU placement ===" $comp = ([adsisearcher]"(&(objectClass=computer)(cn=NURSESTATION-PC))").FindOne() Write-Output "DN: $($comp.Properties.distinguishedname)" Write-Output "" Write-Output "=== 2. GPOs linked to this machine ===" gpresult /scope computer /r 2>&1 | Select-String "Applied Group Policy|CSC|Caregiver|Kiosk|Nurse|Lockdown" Write-Output "" Write-Output "=== 3. Loopback processing (UserPolicyMode) ===" $lp = Get-ItemProperty "HKLM:\Software\Policies\Microsoft\Windows\System" -Name UserPolicyMode -ErrorAction SilentlyContinue if ($lp) { Write-Output "UserPolicyMode=$($lp.UserPolicyMode) (1=Merge)" } else { Write-Output "NOT SET" } Write-Output "" Write-Output "=== 4. DontDisplayLastUserName ===" $dl = Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System" -Name DontDisplayLastUserName -ErrorAction SilentlyContinue Write-Output "DontDisplayLastUserName=$($dl.DontDisplayLastUserName)" Write-Output "" Write-Output "=== 5. Kiosk GPO security filter (who gets locked down) ===" Import-Module GroupPolicy $acl = (Get-GPO -Name 'CSC - Nurse Station Kiosk').Path $perms = Get-GPPermission -Name 'CSC - Nurse Station Kiosk' -All $perms | ForEach-Object { Write-Output " $($_.Trustee.Name) : $($_.Permission)" } Write-Output "" Write-Output "=== 6. Scheduled task: profile cleanup ===" Get-ScheduledTask -TaskName '*Caregiver*' -ErrorAction SilentlyContinue | ForEach-Object { Write-Output "Task: $($_.TaskName) State: $($_.State)" Write-Output "Trigger: $($_.Triggers | ForEach-Object { $_.CimClass.CimClassName })" } Write-Output "" Write-Output "=== 7. Desktop shortcuts ===" Write-Output "Public:" Get-ChildItem "C:\Users\Public\Desktop\*.url","C:\Users\Public\Desktop\*.lnk" -ErrorAction SilentlyContinue | ForEach-Object { Write-Output " $($_.Name)" } Write-Output "" Write-Output "=== 8. Hybrid join + PRT capable ===" dsregcmd /status | Select-String "AzureAdJoined|DomainJoined|TenantId" | ForEach-Object { $_.Line.Trim() }