This release focuses on PowerShell command/flag correctness, cross-version compatibility (Windows PowerShell 5.1 + PowerShell 7), and reliability hardening in remote pre-validation and reboot-detection logic.
- Replaced fragile parameter usage with version-safe logic.
- Added TCP WinRM probe flow:
- Uses
Test-NetConnectionwhen available. - Falls back to
.NET TcpClientprobe when needed.
- Uses
- Added dynamic
Test-Connectionparameter selection:ComputerName(PS5.1) vsTargetName(PS7)- timeout parameter support detected at runtime.
- Hardened
TcpClientasync cleanup to avoid incomplete async state during timeout/failure paths. - Ensures connection completion/finalization and handle disposal are consistently attempted.
- Corrected 3 instances where
Write-Hoststring concatenation dropped part of the output. - Result: separator/banner lines now render consistently.
- Added defensive
Add-Typeload forSystem.DirectoryServices.AccountManagementin credential validation. - Improves behavior consistency where auto-loading may vary by host/runtime.
- Updated reboot probes to prefer
Get-CimInstanceand fallback toGet-WmiObjectwhen needed. - Removed WMI-specific property access patterns that are not valid for CIM objects.
- Eliminates invalid/host-specific command flag usage that previously caused silent failures.
- Improves pre-validation reliability and keeps behavior consistent across PowerShell versions.
- Reduces risk of false-negative reboot detection in PowerShell 7 environments.
- Script parsing/syntax validation passed after changes.
- Command/parameter compatibility checks were performed against both PS5.1 and PS7 parameter behavior.
Install-RemoteMSI.ps1changelog.md