Articles Tagged “PowerShell”
46 articles tagged “PowerShell”, newest first.
-
Building a PowerShell Analysis Tool in PowerShell — Read Scripts with the AST, Not Regular Expressions
Display a real PowerShell AST and see what object each line of code becomes. Walk from ScriptBlockAst to CommandAst and find where Write-Host is called, excl...
-
The Network Works but Windows Says "No internet" — Isolating NCSI, DNS, Proxy, and VPN on Windows
Why Windows says "No internet" while the network works, starting from the NCSI verdict. Isolate DNS, proxy, VPN, and captive portals with read-only checks an...
-
Disk at 100%: What Do You Actually Have to Stop? — Telling SysMain, Windows Search, and Defender Apart
Isolate Windows 100% disk usage by throughput, response time, and files. Pause SysMain safely, narrow Windows Search, and analyze Defender without disabling it.
-
The Order of Name Resolution on Windows — hosts, the DNS Cache, LLMNR/mDNS, and DoH
Whether hosts, the DNS cache, the DNS server, or LLMNR/mDNS answered decides why some PCs fail. Learn the Windows name resolution order, what DoH changes, an...
-
What Fast Startup Really Does — Why a Windows 'Shutdown' Is Not the Same as a Restart
A Windows shutdown is a hybrid shutdown by default, saving the kernel and drivers to hiberfil.sys. Why only a restart resets them, and when to turn Fast Star...
-
Declarative Configuration Management for Windows with DSC — Starting IaC with dsc.exe
Move on from runbook scripts that break when re-run. DSC v3 (dsc.exe) declares Windows configuration in YAML and applies it idempotently, with drift detection.
-
Using WMI/CIM from C# and PowerShell — A Practical Guide to Hardware Inventory, Process Monitoring, and Remote Queries
WMI/CIM is the standard way to read a PC serial number, watch disk space, and detect process starts. Covers CIM cmdlets, Get-WmiObject migration, C# APIs, an...
-
A Practical Guide to Group Policy (GPO) — How It Works, Confirming Application, and Choosing Between GPO and Intune
This guide covers how Group Policy works, the LSDOU order, verifying with gpupdate and gpresult, GPO versus Intune, and customer GPOs that change how your ap...
-
Windows Security Audit Policy and Event Log Investigation in Practice — Becoming an IT Team That Can Read Event 4625
A practical guide for "look into the failed sign-in logs": basic versus advanced audit policy, subcategories to enable, 4624/4625/4688, Security log sizing, ...
-
A Practical Guide to Windows LAPS — Retiring the Shared Local Administrator Password Across All PCs
A shared local admin password lets one compromised PC spread to all via Pass-the-Hash. This guide covers Windows LAPS rotation, AD/Entra ID storage, and oper...
-
The Windows Certificate Store in Practice — User or Computer, Which Should You Use?
Should a client certificate go in the user or computer store? A practical guide to certmgr.msc vs certlm.msc, private key permissions, and PowerShell expiry ...
-
The Windows Firewall and Business Applications — Register Inbound Rules From the Installer
When a Windows business app cannot communicate on site, triage inbound rules, listening, profiles, and managed policy. Covers rule design, installer registra...
-
SMB Signing and LDAP Channel Binding — Closing the "Other Half" of NTLM Defense in Practice
SMB signing and LDAP signing/channel binding limit relay damage while you retire NTLM. We cover OS defaults, audit events, enforcement, and how to fix apps a...
-
Will NTLM Deprecation Stop Your Business Apps? — How to Collect Audit Logs, and the Order in Which to Kill Dependencies
This article covers how to find where Windows and business apps depend on NTLM: audit policies, NTLM/Operational events 8001-8004, causes and fixes, and SMB ...
-
Automating PC Provisioning With winget + PowerShell — Making the Runbook Executable
Make new-hire PC setup reproducible: winget installs and export/import, declarative WinGet Configuration, the settings PowerShell fills in, and unattended-ru...
-
Hardening PowerShell — Logging, AMSI, Language Modes, and JEA
Use PowerShell safely instead of banning it. This guide covers script block logging and transcription, AMSI, disabling old versions, language modes, and JEA ...
-
Investigating Event Logs in Practice with Get-WinEvent — Filtering Speed Decides How Long the Investigation Takes
How to make Windows event log investigation efficient with PowerShell. Covers why filtering with Where-Object is slow, when to use FilterHashtable versus XPa...
-
Distributing and Updating PowerShell Modules In-House — PSResourceGet and an Internal Repository
How to move on from copying and reusing ps1 files in a shared folder. Covers how to write a module manifest, versioning, building an internal repository with...
-
Protecting PowerShell Script Quality with PSScriptAnalyzer — Rule Selection and CI Integration
A practical guide to introducing PSScriptAnalyzer, PowerShell's static analysis module, to your in-house scripts. Covers the rules to enable first, how to wr...
-
Integrating With REST APIs From PowerShell — Invoke-RestMethod in Practice
A practical guide to calling in-house and SaaS REST APIs from PowerShell: passing authentication headers, avoiding mojibake in non-ASCII JSON, handling 4xx/5...
-
Where to Look When a PowerShell Script Is Slow — Arrays, Pipelines and Matching
The classic causes of slow PowerShell scripts, laid out. Why += on an array is O(n^2), the difference between the pipeline and foreach, turning matching into...
-
Stop Using Write-Host — PowerShell Output Streams and Log Design
How to choose between PowerShell's six output streams, the problems with Write-Host and where it genuinely belongs, why function return values get polluted, ...
-
An Introduction to Microsoft Graph PowerShell — Running Microsoft 365 After the Retirement of AzureAD and MSOnline
A practical guide to migrating Microsoft 365 operations to Microsoft Graph PowerShell now that the AzureAD and MSOnline modules have been retired: connecting...
-
Parallel Processing in PowerShell — Choosing Between ForEach-Object -Parallel and Jobs
A practical rundown of the differences between ForEach-Object -Parallel, Start-ThreadJob and Start-Job and when to use each, $using: and thread safety, how t...
-
Calling External EXEs Correctly from PowerShell — The Pitfalls of Argument Quoting, Exit Codes, and Mojibake
Call robocopy or an in-house EXE from PowerShell and the arguments break, the exit code is unavailable, and the output turns into mojibake. A practical rundo...
-
Should That Batch File Move to PowerShell? — Auditing cmd/bat Assets and Making the Migration Call
A decision table for working out whether the batch files still running your business should move to PowerShell: how cmd and VBScript differ in status, bat's ...
-
Calling COM and .NET from PowerShell — Widening What Your Scripts Can Reach
A practical guide to calling .NET classes from PowerShell, embedding C# and Win32 APIs with Add-Type, driving COM, cleaning up leftover Excel processes, why ...
-
Choosing Between Power Automate and PowerShell + Task Scheduler — Putting Each Automation Tool Where It Fits Instead of Mixing Them
For IT staff at small and mid-sized companies where PowerShell + Task Scheduler nightly batches and Power Automate flows have started to coexist, this articl...
-
Handling Credentials Safely in PowerShell — Banishing Plaintext Passwords from Your Scripts
A practical walkthrough of moving plaintext passwords out of PowerShell scripts and into safe storage: what SecureString really is and where it stops, how Ex...
-
Parameter Design and Modularization for PowerShell Scripts — From a Script That Works to a Script You Can Hand Over
A step-by-step procedure for raising a PowerShell script to a quality you can hand to someone else. Covers the param block and [CmdletBinding()], input valid...
-
Taking Inventory of a File Server with PowerShell — Capacity Analysis and Access Permission (ACL) Auditing
A practical procedure for taking inventory of a file server with PowerShell. Covers capacity analysis and recording access denials, listing old files and ext...
-
An Introduction to PowerShell Remoting (WinRM) — Managing Multiple Windows Machines at Once
An introduction to managing multiple Windows machines at once with PowerShell Remoting (WinRM). Covers how it works and ports 5985/5986, what Enable-PSRemoti...
-
The Differences Between Windows PowerShell 5.1 and PowerShell 7 — A Practical Guide to Migrating In-House Scripts
The relationship between Windows PowerShell 5.1 and PowerShell 7 (side-by-side coexistence and pwsh.exe), Microsoft's official position that 5.1 gets no new ...
-
Automating Excel and CSV Work with PowerShell — Practical Recipes for Aggregation, Reconciliation, and Report Output
Practical recipes for automating CSV aggregation, reconciliation, and Excel report output with PowerShell. Covers the default encodings of Import-Csv/Export-...
-
PowerShell Error Handling and Retry Design — From the try/catch Trap to Exit Codes and Retry Best Practices
A practical rundown of PowerShell error handling: the difference between terminating and non-terminating errors, the -ErrorAction Stop pattern for the try/ca...
-
PowerShell Execution Policy and Script Signing — A Practical Guide to Graduating From "Papering Over It With Bypass"
PowerShell's execution policy is "a safety feature, not a security boundary." This article covers the differences between policies like RemoteSigned, scope p...
-
When Task Scheduler Tasks Don't Run or Exit with 0x1 — Isolating the Cause and Designing for Reliable Operation
A design guide to putting Windows Task Scheduler into reliable production use: execution accounts and logon types, what 'Run whether user is logged on or not...
-
Automating Business Processes with Power Automate — Cloud Flows, Desktop Flows, and Robust Error Handling
A practical design guide to Power Automate: the difference between cloud flows and desktop flows, when to use PowerShell or VBA instead, licensing, error han...
-
How to Run PowerShell from C# (CSharp) and Receive the Results as Objects
How to launch PowerShell from C# and receive results as PSObject rather than strings — a practical walkthrough of the PowerShell SDK, AddCommand, AddParamete...
-
Testing PowerShell with Pester — A Practical Approach to Making Operations Scripts Harder to Break
A practical walkthrough of testing PowerShell scripts with Pester v5 — safely covering date handling, file operations, deletion logic, mocking, and CI execut...
-
Practical PowerShell Command Recipes — Growing the Small Tools You Use Every Day
A practical roundup of PowerShell commands for everyday work, covering where to use Measure-Object, Group-Object, Select-String, Compare-Object, Tee-Object, ...
-
Applied PowerShell Scripting — Safely Automating Log Investigation, Archiving, and Reporting
Practical steps for safely automating log investigation, CSV reporting, archiving old logs, keeping audit trails, and Task Scheduler execution with PowerShel...
-
PowerShell Command Basics — The Operations to Learn First and How to Use Them Safely
A guide for PowerShell beginners who need to get real work done: how to find cmdlets, the pipeline, file operations, CSV processing, execution policy, and th...
-
Preparing for VBScript Deprecation: An Audit Guide for VBA and Internal Tools
Preparing for the phased deprecation of VBScript: inventorying VBA, Excel macros, and internal tools, static detection, execution logging, choosing replaceme...
-
Windows Text Encodings and Line Endings - The Basics of Mojibake and CRLF/LF
Why text gets garbled on Windows and why CRLF vs LF still causes trouble. How UTF-8, UTF-16, and CP932 (Shift_JIS) differ, plus rules that prevent mojibake.
-
An Introduction to Windows Text Encodings - The Mojibake That Happens When Integrating with Linux
A practical look at why mojibake happens on Windows, through the differences between CP932, UTF-8, UTF-16, BOMs, code pages, PowerShell, and Linux locales.