PowerShell troubleshooting: diagnose the symptom
Investigate script, module, remoting and permission problems with a focused check, an explanation of the cause and a practical next step.
Paste your error message
Not sure which guide fits? Paste the red error text into the error decoder — it names the category and points you at the right guide.
Open the error decoderRemoting, network & connectivity 6 guides
WinRM, CIM remoting, DNS resolution, and TLS failures.
CIM works locally but not remotely
CIM works locally but not remotely: adding -ComputerName switches the transport to WS-Management on port 5985, which needs the remoting infrastructure in place.
DNS resolves but the application is unreachable
DNS resolves but the application is unreachable: resolution and reachability are independent - a correct record proves only that the record exists.
Remote file share access fails from a remoting session
Diagnose remote file-share access failures caused by PowerShell remoting second-hop credential delegation before changing permissions or remoting policy.
Resolve-DnsName works against one DNS server only
Resolve-DnsName works against one DNS server only: the DNS servers do not currently hold equivalent data. Check the evidence and verify the fix.
REST call returns certificate or TLS errors
REST call returns certificate or TLS errors: the .NET stack validates the chain, hostname, and expiry before any request leaves; Windows PowerShell 5.1.
WinRM remoting fails
Fix PowerShell WinRM remoting failures with checks for connectivity, configuration and access. Trace the connection error and verify the result before retrying.
Active Directory & identity 3 guides
Slow AD queries, unrecognized AD cmdlets, and account lockouts.
AD query is unexpectedly slow
A broad AD filter can transfer too many objects before client-side filtering. Narrow the server-side query and measure again.
Get-ADUser is not recognized
Get-ADUser is not recognized: the AD cmdlets live in the ActiveDirectory module, which ships with the RSAT feature - not with PowerShell itself.
Locked user account keeps locking
Locked user account keeps locking: lockout counters accumulate failures from every source - a stale cached password on a service, scheduled task, or phone mail.
Scheduled tasks & background jobs 3 guides
Tasks that fail on schedule and jobs with missing results.
PowerShell job completes but no result is visible
A completed job keeps output until Receive-Job retrieves it. Check the job state and collect the buffered results. Inspect job errors.
Scheduled task returns 0x8007052E
Scheduled task returns 0x8007052E: Windows rejected the supplied logon credentials. Check the evidence and verify the fix.
Scheduled task works interactively but fails when scheduled
Diagnose a PowerShell script that works interactively but fails in Task Scheduler by comparing identity, working directory, profiles, paths, and captured evidence.
Modules, execution & scripting 7 guides
Missing commands, blocked execution, and script bugs.
Command works on one host but not another
Command works on one host but not another: hosts drift over time - different PowerShell versions, module versions, or module paths.
Export-Csv output looks wrong
Fix malformed PowerShell CSV output by keeping objects intact, using Select-Object instead of formatting cmdlets, and exporting structured data at the end.
Module imports but command is missing
Module imports but command is missing: the manifest's FunctionsToExport controls what gets exported, so the command may be excluded deliberately or by accident.
Null-valued expression
Trace a null-valued expression to the command that returned no object, then guard or validate the value before using it.
Parameter binding fails
Parameter binding fails: PowerShell resolves parameter sets before executing, so a combination spanning two mutually exclusive sets is unresolvable.
PowerShell JSON log contains truncated nested data
PowerShell JSON log contains truncated nested data: ConvertTo-Json limits serialization depth, so deeper nested properties are dropped.
Script execution is blocked
Diagnose a blocked script by checking the effective execution policy and its scope precedence before changing settings. Check each scope.
Certificates, files & services 4 guides
Signature mismatches, rejected certificates, and integrity checks.
Authenticode signature status changes to HashMismatch
Authenticode signature status changes to HashMismatch: the file bytes changed after the file was signed. Check the evidence and verify the fix.
Certificate is installed but application rejects it
A certificate can be installed yet fail application checks. Inspect trust, key usage, private key access, and hostname requirements.
Copied files have different SHA256 hashes
Copied files have different SHA256 hashes: hashing compares raw bytes, so any changed byte - line endings, metadata - changes the hash.
Service is running but application is down
Service is running but the application is down: the service control manager tracks whether a process started, not whether the code inside is doing anything.
Azure, policy & performance 3 guides
Wrong Azure subscription, slow GPO processing, and parallel slowdowns.
Connect-AzAccount succeeds but Get-AzResource returns the wrong subscription
Az PowerShell may keep a different active subscription after sign-in. Inspect the context and select the intended subscription.
GPO processing is slow
GPO processing is slow: policy processing is a sequence of directory lookups and SYSVOL file reads, inheriting every DNS and domain-controller location delay.
Parallel script is slower than serial
Parallel script is slower than serial: every runspace pays startup and module-import costs that exceed the savings for small units of work.
Error decoder
Paste the red text. The decoder names the kind of error it is and points at the lesson that fixes it. It never runs your code, and decoding happens entirely in your browser — your pasted error is never sent anywhere.