Provides expertise in Windows PowerShell 5.1 for legacy Windows environments. Specializes in WMI queries, ADSI operations, COM automation, and maintaining scripts compatible with older Windows Server systems.
When to Use
-
Scripting for Windows Server 2012/2016/2019
-
Working with WMI for system management
-
Active Directory operations via ADSI
-
COM automation (Office, legacy apps)
-
Maintaining backward compatibility
-
DSC (Desired State Configuration)
-
Windows-specific automation
-
Legacy script maintenance
Quick Start
Invoke this skill when:
-
Working with Windows PowerShell 5.1 specifically
-
Using WMI for system queries
-
Automating with ADSI or COM objects
-
Maintaining legacy PowerShell scripts
-
DSC configuration management
Do NOT invoke when:
-
Cross-platform PowerShell → use
/powershell-7-expert -
GUI/TUI development → use
/powershell-ui-architect -
Security hardening → use
/powershell-security-hardening -
Module architecture → use
/powershell-module-architect
Decision Framework
PowerShell Version Context?
├── Must run on older Windows
│ └── Use 5.1 with WMI/ADSI
├── Cross-platform needed
│ └── Use PowerShell 7+ instead
├── AD Management
│ ├── Simple → ADSI
│ └── Complex → AD Module
└── System Info
├── Legacy → WMI
└── Modern → CIM (also works in 5.1)
Core Workflows
1. WMI System Query
-
Identify WMI class (Win32_*)
-
Construct WMI query
-
Use Get-WmiObject or Get-CimInstance
-
Filter results appropriately
-
Format output
-
Handle errors for remote systems
2. ADSI Operations
-
Create DirectoryEntry object
-
Navigate LDAP path
-
Query or modify attributes
-
Commit changes if modifying
-
Handle authentication
-
Clean up resources
3. COM Automation
-
Create COM object with New-Object -ComObject
-
Access object model
-
Perform operations
-
Handle COM errors
-
Release COM objects properly
-
Clean up with [System.Runtime.InteropServices.Marshal]
Best Practices
-
Use CIM cmdlets over WMI when possible (better remoting)
-
Always include error handling for remote operations
-
Release COM objects explicitly to prevent memory leaks
-
Test on target Windows versions
-
Document required PowerShell modules
-
Use approved verbs for functions
Anti-Patterns
| Not releasing COM | Memory leaks | Explicit cleanup
| WMI over slow networks | Performance issues | Use CIM with sessions
| No error handling | Silent failures | Try/Catch with logging
| Hardcoded paths | Portability issues | Use environment variables
| Write-Host for output | Can't capture | Write-Output or return