PowerShell Gallery: Installing and Updating Modules Safely
A financial services client called us after a junior admin ran Install-Module on a domain controller during a maintenance window. The module pulled a dependency chain…
Working with YAML in PowerShell Using powershell-yaml
The ticket said a scheduled DSC pull job was failing on three of seven nodes. Twenty minutes of log reading later, the pattern was obvious: every failure node deserial…
PowerShell Remoting Auth: Kerberos vs NTLM vs CredSSP
A managed customer paged us last quarter. Their nightly PowerShell job hit a remote file server, then tried to copy from a third box. It failed every single night with…
PowerShell REST API Calls with Invoke-RestMethod: A Practical Guide
While working on a monitoring integration for a logistics client, I got an idea for a small helper script that would pull ticket counts from their ITSM API every 15 mi…
PowerShell Providers: Navigate the Registry Like a Filesystem
A managed services client called us at 2 AM because a fleet of 180 Windows Server 2022 boxes had stopped autoloading their LOB agent after a botched GPO push. The Powe…
Invoke-Command at Scale: PowerShell Across 200 Servers
A client with 212 Windows servers across four regions asked us to push a single time zone correction before a quarterly close. Their previous vendor had quoted two eng…
Reading and Writing Windows Registry with PowerShell
After the third failed login script rollout in a single quarter, a financial services client brought us in to clean up their configuration management. The previous MSP…
PowerShell OutBuffer: How Pipeline Buffering Actually Works
We had a client whose nightly reconciliation script was melting a SQL server every night around 3AM. The script pulled roughly 40,000 objects from an API and shoved ea…
PowerShell Select-Object: Master Object Properties Fast
One of our managed services clients had a junior admin exporting process lists to Excel, then deleting columns by hand. Every morning. For compliance evidence. That is…
PowerShell Module Manifest: Versioning and Dependencies Post-Mortem
The pager went off at 03:17. A managed client’s nightly reporting job had failed across 40 endpoints. The error was short: The specified module 'ReportKit' was not loa…
PolicyStore in NetIPsec Cmdlets: Local vs Domain Policies
A financial services client called us on a Friday afternoon because half their branch office servers had stopped accepting inbound connections after a Group Policy upd…
PowerShell Variables: Scope, Types, and Best Practices
Last month we inherited a 3,000-line PowerShell deployment script from a manufacturing client. The thing was riddled with global variables bleeding into functions, typ…
PowerShell WMI Service Management: Query, Start, Stop
Three months ago, a client with a fleet of 120 Windows Server nodes across four branch offices came to us with a recurring problem: their print spooler services were c…
PowerShell JEA: Restricting Remote Admin Access
It was 11 PM on a Tuesday when the SIEM flagged a credential harvesting alert on a domain controller. Someone had launched Mimikatz from a PowerShell remoting session…
Configuring AD Audit Policies with PowerShell and GPO
Last year, a mid-size logistics company we manage came to us after discovering that a domain admin account had been compromised for over three weeks. The attacker used…
PowerShell Module Management: Install, Import, and Update
A client called us on a Monday morning because half their admin team couldn’t run Exchange management commands. The other half could. Same servers, same accounts, same…
Automating ODBC DSN Management with PowerShell Remove-OdbcDsn
The ticket read: “Application can’t connect to the database.” After remoting into the server, I ran Get-OdbcDsn and found seventeen ODBC data source names — eight of w…
PowerShell For, ForEach, and While Loops Explained
Last quarter we inherited a client environment with 140 Windows servers. The previous admin had been manually checking disk space on each one. Every. Single. Morning…
Monitoring Disk Space and Sending Alerts with PowerShell
Last quarter, one of our managed customers had a file server hit 99% disk utilization on a Saturday night. The application logs stopped writing, their ERP system threw…
Automate Network Captures: Start and Stop-NetEventSession
The call came in at 11pm. A manufacturing client had intermittent network drops hitting their production floor — three times in two weeks, no pattern, no clear cause…
Backing Up and Restoring Group Policy Objects with PowerShell
After inheriting a manufacturing client’s Active Directory environment from another vendor last year, the first thing we discovered was that their Group Policy Objects…
Bulk Import Data into SharePoint 2016 Lists with PowerShell
A client came to us mid-migration last year with a familiar problem. They had 11 SharePoint lists and roughly 3,000 rows of legacy data sitting in CSV exports. Their p…
Encoding Passwords Securely in PowerShell Enterprise Scripts
Last year we inherited a managed environment from another vendor—a mid-size logistics company running 40+ scheduled PowerShell scripts across their domain controllers…
PowerShell NetIPsec Module: IPsec Policies on Server 2025
We were brought in after a healthcare provider’s internal audit flagged something alarming: a credential-harvesting tool had been sitting quietly on a domain controlle…
PowerShell ThrottleLimit: Optimizing Concurrent Network Operations
Three hundred endpoints. One script. A network switch gasping under the load. We inherited exactly this situation from a previous vendor during an engagement with a mi…
SharePoint 2016 Site Collection Admin Audit: PowerShell Checklist
A manufacturing client came to us eighteen months after their SharePoint 2016 farm went live. They had grown from two site collections to sixty-three. Their IT team ha…
Using the PowerShell Certificate Provider for Cert Management
It is 3 AM. Your SIEM is generating Kerberos pre-authentication failures across 47 workstations. You escalate to Tier 3 and begin triage. The answer is not malware, no…
Add-NetEventPacketCaptureProvider: PowerShell Packet Capture
A financial services client we support had intermittent TCP resets appearing on a Windows Server 2022 application node. No packet analyzer on the box, and getting appr…
New-NetEventSession: Network Event Capture in PowerShell
The call came in on a Tuesday morning. A financial services firm we support had been logging intermittent packet loss across their Hyper-V cluster for three weeks. The…
PowerShell -AsJob: Run Long Network Tasks Without the Wait
A managed services client we support runs a Windows environment across three sites — roughly 400 endpoints. Their network team had a PowerShell script that pinged ever…
IPsec Main Mode Crypto Sets: PowerShell Hardening Guide
A financial services client we took on last year had been running IPsec between their domain controllers and application servers for three years. Solid concept. The ex…
InterfaceAlias vs InterfaceDescription: Targeting NICs in PowerShell
A healthcare client came to us after a PowerShell script someone wrote six months earlier started throwing errors across 40 Windows Server boxes. The script targeted n…
Set-NetIPsecMainModeCryptoSet: Enforce IKE Encryption in PowerShell
During a network security review for a logistics company we took over last year, we pulled their Windows Server 2025 IPsec policy and found the main mode crypto set ne…
Get-NetAdapterRsc: Configure Receive Segment Coalescing in PowerShell
A financial services client called us last spring with a familiar complaint. Their Windows Server 2025 nodes were bleeding throughput under sustained traffic loads — C…
PowerShell CimSession: Remote Network Cmdlets at Scale
We got called in after a client’s previous MSP left them with no documentation and no standardized network adapter configuration across their server fleet. Forty-three…
Managing RDMA NICs with PowerShell NetAdapter in Windows Server 2025
Three months into a major storage infrastructure refresh for a financial services client, we hit an unexpected bottleneck. Their SQL Server cluster was saturating CPU…
PowerShell Automation Readiness Audit for IT Teams
I used to spend two hours every Friday manually reviewing scripts before they hit production. Scan for error handling. Check the logging. Run through a mental list of…
PowerShell Parameters, Validation & Dynamic Parameters
Related reading: PowerShell Automation Readiness Audit for IT Teams | PowerShell Scripts, Functions, and Script Blocks Guide
PowerShell Scripts, Functions, and Script Blocks Guide
PowerShell scripts, functions, and script blocks are the three core building blocks of IT automation for system administrators. Knowing which to use – and how to struc…