The Windows PowerShell Commands I Use Most (and Why They’re So Useful)

Most IT admins use PowerShell for scripting and automation, but it’s not just for IT specialists—anyone dealing with messy folders needs these commands. I use them to track down old code, organize client files, and fix the chaos that builds up after months of deadline-driven work.

PowerShell is a command-line shell and scripting language. While previous versions of Windows provided a dedicated PowerShell app, Windows Terminal is now the preferred console for running shell environments (including PowerShell, Command Prompt, and others).

All these commands work in both the standalone PowerShell app and within Windows Terminal—simply open a PowerShell tab in Windows Terminal to use them.

12

Get-Help

Get help command in powershell

I learned PowerShell through YouTube videos, and one of the first commands everyone mentioned was Get-Help. As the name suggests, Get-Help helps you find information about PowerShell cmdlets along with their syntax and parameters; it even provides examples of usage.

To see how a command works, type Get-Help followed by the command name:

        Get-Help Get-Process
    

This shows you the command’s synopsis, syntax, and parameters. If you need more details, add the -Examples parameter:

        Get-Help Get-Process -Examples
    

This will show you examples of how you can use the cmdlet. You can also use it to find more information about any command from Microsoft’s official PowerShell documentation online:

        Get-Help Get-Process -Online
    

When you run the above command, PowerShell will redirect you to Microsoft’s official documentation for the command.

11

Get-Command

Get command command in Powershell

While Get-Help gives you detailed information about a cmdlet, Get-Command helps you find and list all the commands that exist. For instance, if you know what you want to do but can’t remember the exact command name, Get-Command will help you find commands based on partial names or patterns.

For example, let’s try to find all commands that contain the word process. Type:

        Get-Command *process*
    

This shows every command with a process in its name. You can narrow your search to specific command types. For example, if you only want cmdlets (not functions or aliases) that start with Get:

        Get-Command -Name Get* -CommandType Cmdlet
    

When you’re looking for commands related to a specific module, like networking:

        Get-Command -Module NetTCPIP
    

Get-Command is a far more efficient way to find the commands you want to use, rather than launching your browser and searching the internet.

10

Test-NetConnection

Test-NetConnection command powershell

If you use separate tools to ping, telnet, and traceroute, the Test-NetConnection Cmdlet does all three. It’s a network troubleshooting tool that checks whether an issue is with your network, the server, or somewhere else.

To check if a website is reachable, run:

        Test-NetConnection makeuseof.com
    

This gives you ping results and basic connectivity info. To test a specific port, add the port number to the command:

        Test-NetConnection server.company.com -Port 443
    

To get detailed network path information, you can use the -TraceRoute parameter at the end. Type:

        Test-NetConnection 8.8.8.8 -TraceRoute
    

The above command sends test packets to 8.8.8.8 and traces every hop between your computer and the destination, helping you identify where the problem is between your computer and the target.

9

Get-ChildItem

get childitem powershell command

Get-ChildItem shows files and folders in any directory. Want to see what’s in Documents? Just type this, replacing “username” with yours:

        Get-ChildItem C:\Users\Username\Documents
    

To find PDF files modified in the last week:

Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-7)}

The -Recurse parameter searches through all subfolders. For example, to find every log file in your Projects folder and all its subfolders:

        Get-ChildItem C:\Projects -Recurse -Filter *.log
    

When you’re running on low disk space, you can use this to find large files above 1GB:

Get-ChildItem C:\ -Recurse -File | Where-Object {$_.Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_.Length/1GB}}

You can combine Get-ChildItem with other commands to script and automate tasks for batch processing, automation, and auditing files that match specific criteria.

8

Where-Object

where object command in powershell

In the last example, you might have noticed we used the Where-Object cmdlet to find large files and were curious what this is for. Where-Object filters data by selecting objects with specific property values—similar to an if statement in programming. Inside the curly braces, $_ represents each item being evaluated against your filter conditions.

For instance, if you need to view all the running services, type this command:

        Get-Service | Where-Object {$_.Status -eq "Running"}
    

If you need to find processes using more than 100MB of memory, try this command:

        Get-Process | Where-Object {$_.WorkingSet -gt 100MB}
    

You can also combine multiple conditions. For example, to find large Word documents modified this month:

Get-ChildItem -Filter *.docx | Where-Object {$_.Length -gt 5MB -and $_.LastWriteTime -gt (Get-Date).AddMonths(-1)}

The curly braces contain your filter logic. The $_ represents each item being evaluated. You can spread a long filter across multiple lines, especially if you have multiple conditions. This makes your script more readable, like:

        Get-ChildItem | Where-Object {
   $_.Length -gt 1MB -and
   $_.Extension -eq ".log"
}

7

Select-Object

select object command in Powershell

Often, command output includes more information than you need. Select-Object lets you select only the data you wish. You can then export the selected properties to a CSV file with the Export-Csv cmdlet. To see only the name and status of services, use:

        Get-Service | Select-Object Name, Status
    

If you’re looking for the five processes using the most CPU, here you go:

        Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU
    

You can create calculated properties. For instance, to show file sizes in megabytes instead of bytes:

        Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_.Length/1MB}}
    

If you want to extract a single property value, use the -ExpandProperty parameter:

        Get-Process notepad | Select-Object -ExpandProperty Id
    

This gives you just the process ID number instead of an object. It’s useful when piping to commands that expect a simple value, not a complex object.

6

Get-Member

Get-Member command in powershell

PowerShell works with objects, and Get-Member shows you their properties and methods. For example, if a command gives you a file, Get-Member can show its size, creation date, and other details. Type the following command to see what information a process object contains:

        Get-Process | Get-Member
    

This command shows properties like CPU, Id, and WorkingSet, plus methods like Kill() and Refresh(). If you just want to see properties, add this:

        Get-Process | Get-Member -MemberType Property
    

When working with files:

        Get-ChildItem C:\temp\test.txt | Get-Member
    

The above command shows properties like Length and LastWriteTime, as well as methods like Delete() and MoveTo(). For example, you can use Length to filter files by size or LastWriteTime to find recently changed files.

5

Set-Clipboard and Get-Clipboard

set clipboard command in PowerShell

When you get a massive output from PowerShell that you want to copy, you can manually select it all or use Set-Clipboard. Manual selection means scrolling up, starting to select, dragging down carefully, and hoping you don’t mess up halfway through. Set-Clipboard and Get-Clipboard make this whole process much simpler.

To copy command results to your clipboard, type the following command:

        Get-Process | Select-Object Name, CPU | Set-Clipboard
    

Now you can paste the results into Excel or any text editor. If you need to get text from your clipboard into PowerShell, it’s simple:

        $text = Get-Clipboard
    

This really shines when processing lists. Try copying a list of computer names from Excel, then:

        Get-Clipboard | ForEach-Object { Test-NetConnection $_ }
    

This tests connectivity to each computer in your list. The integration between PowerShell and other applications makes repetitive tasks much faster.

4

Out-GridView

Out-GridView command in powershell

Sometimes you need to sort and filter results interactively. Out-GridView opens a separate window with a searchable, sortable table.

        Get-Process | Out-GridView
    

This opens a new window showing a list of running processes in a GUI table format. Click column headers to sort, or type in the filter box to search. If you want to select items from the grid, use:

        Get-Service | Out-GridView -PassThru | Restart-Service
    

The -PassThru parameter allows you to select rows and pass them to the next command. Select the services you want to restart, click OK, and PowerShell restarts only those services.

For log analysis:

        Get-EventLog -LogName Application -Newest 1000 | Out-GridView
    

You can quickly filter events by typing keywords, sort by time, and find patterns in the data.

3

Get-Process

get-process explorer powershell command

Get-Process shows you every program running on your computer, including their memory usage, CPU time, and process IDs.

To see all running processes, just type:

        Get-Process
    

If you’re looking for a specific program, like Google Chrome:

        Get-Process chrome
    

To stop an unresponsive program, you can combine it with the Stop-Process command:

        Get-Process notepad | Stop-Process
    

If you want to find what’s eating up your memory, try:

        Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
    

When your computer slows down, this command quickly shows which programs are using the most memory.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top