Enrollment state
dsregcmd /status remains the fastest first signal for Entra join, device registration, tenant details, and PRT availability.
PowerShell Quick Checks
Small, field-ready PowerShell checks for Intune, Windows, Exchange, SharePoint, Azure Virtual Desktop, Citrix, restart state, device health, and workspace troubleshooting.
dsregcmd /status remains the fastest first signal for Entra join, device registration, tenant details, and PRT availability.
Review recent Intune Management Extension logs before resetting agents or changing assignments.
Confirm protection state and TPM readiness before firmware, Secure Boot, or recovery-key related changes.
Separate policy scope, service state, scan state, reboot state, and reporting latency.
Check Exchange Online connection context, mailbox visibility, recipient state, and basic service-side signals.
Check tenant connectivity, site status, storage usage, lock state, and sharing-sensitive site configuration.
Inspect host pools, session hosts, user sessions, drain mode, and workspace/resource group alignment.
Check broker machines, VDA registration, sessions, delivery groups, application publication, and user impact.
Use FSLogix, profile container, disk space, session, and log checks to separate endpoint issues from VDI issues.
dsregcmd /status
$logPath = 'C:\ProgramData\Microsoft\IntuneManagementExtension\Logs'
Get-ChildItem $logPath -Filter '*.log' -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending |
Select-Object Name, Length, LastWriteTime -First 10
Get-BitLockerVolume | Select-Object MountPoint, ProtectionStatus, VolumeStatus, EncryptionPercentage
Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled, TpmActivated
Get-Service wuauserv,bits,cryptsvc | Select-Object Name, Status, StartType
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings' -ErrorAction SilentlyContinue
$paths = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired',
'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager'
)
$paths | ForEach-Object {
[pscustomobject]@{ Path = $_; Exists = Test-Path $_ }
}
# Requires ExchangeOnlineManagement and an existing or new Exchange Online session.
Get-ConnectionInformation | Select-Object Name,UserPrincipalName,ConnectionUri,State
Get-EXOMailbox -ResultSize 10 |
Select-Object DisplayName,PrimarySmtpAddress,RecipientTypeDetails
# Replace the identity with the affected mailbox.
$mailbox = 'user@workplacecloudhub.com'
Get-EXOMailboxStatistics -Identity $mailbox |
Select-Object DisplayName,TotalItemSize,ItemCount,LastLogonTime
# Requires Microsoft.Online.SharePoint.PowerShell and Connect-SPOService.
Get-SPOSite -Limit 20 |
Select-Object Url,Status,LockState,StorageUsageCurrent,StorageQuota |
Sort-Object StorageUsageCurrent -Descending
$siteUrl = 'https://workplacecloudhub.sharepoint.com/sites/example'
Get-SPOSite -Identity $siteUrl |
Select-Object Url,Title,Status,LockState,SharingCapability,StorageUsageCurrent,StorageQuota
# Requires Az.DesktopVirtualization and an authenticated Az session.
$resourceGroup = 'rg-avd-prod'
Get-AzWvdHostPool -ResourceGroupName $resourceGroup |
Select-Object Name,Location,HostPoolType,LoadBalancerType
Get-AzWvdSessionHost -ResourceGroupName $resourceGroup -HostPoolName 'hp-avd-prod' |
Select-Object Name,Status,AllowNewSession,LastHeartBeat
$resourceGroup = 'rg-avd-prod'
$hostPool = 'hp-avd-prod'
Get-AzWvdUserSession -ResourceGroupName $resourceGroup -HostPoolName $hostPool |
Select-Object UserPrincipalName,SessionState,CreateTime,SessionHostName
# Run in a Citrix PowerShell context with the Broker snap-in/module available.
Get-BrokerMachine -MaxRecordCount 50 |
Select-Object MachineName,RegistrationState,PowerState,InMaintenanceMode,SessionCount |
Sort-Object RegistrationState,MachineName
Get-BrokerSession -MaxRecordCount 50 |
Select-Object UserName,MachineName,SessionState,ApplicationState,StartTime |
Sort-Object StartTime -Descending
Get-Service frxsvc -ErrorAction SilentlyContinue |
Select-Object Name,Status,StartType
$fslogixLogPath = 'C:\ProgramData\FSLogix\Logs'
Get-ChildItem $fslogixLogPath -Recurse -Filter '*.log' -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending |
Select-Object FullName,Length,LastWriteTime -First 10
Get-CimInstance Win32_OperatingSystem |
Select-Object CSName,LastBootUpTime,FreePhysicalMemory
Get-Volume |
Select-Object DriveLetter,FileSystemLabel,SizeRemaining,Size |
Sort-Object DriveLetter
Operational note
These commands are intended for triage. Validate results against Intune assignment state, Microsoft 365 admin context, AVD or Citrix control-plane state, device context, change history, event logs, and documented support procedures before applying remediation at scale.