PowerShell has revolutionized how Windows users interact with their operating systems, transforming complex administrative tasks into simple, automated processes12. Whether you’re a system administrator, IT professional, or an everyday Windows user looking to boost productivity, mastering essential PowerShell commands can save you countless hours and unlock powerful automation capabilities34.
This comprehensive guide covers the most important PowerShell commands that every Windows user should master, from basic navigation to advanced system management. By the end of this tutorial, you’ll have the confidence to leverage PowerShell’s powerful features for daily computing tasks.
Table des matières
- What is PowerShell and Why Should You Care?
- Getting Started: Opening PowerShell
- Essential Discovery Commands: Your PowerShell Compass
- File and Folder Management Commands
- System Information and Process Management
- Network Troubleshooting Commands
- Content and Data Manipulation Commands
- Working with PowerShell Pipelines
- Time and Date Management
- Essential PowerShell Best Practices
- Creating Your First PowerShell Script
- Advanced PowerShell Learning Path
- Troubleshooting Common PowerShell Issues
- Conclusion: Empowering Your Windows Experience
What is PowerShell and Why Should You Care?
PowerShell is a powerful command-line shell and scripting environment that comes pre-installed on all modern Windows operating systems2. Unlike the traditional Command Prompt, PowerShell uses a verb-noun syntax structure that makes commands intuitive and human-readable1. For example, Get-Process
retrieves running processes, while Stop-Service
stops system services.
Key Advantages of PowerShell Over Command Prompt
PowerShell offers significant advantages over the traditional command line interface1:
- Object-based output: Instead of plain text, PowerShell works with structured objects containing properties and methods
- Advanced scripting capabilities: Create complex automation scripts with loops, conditions, and functions
- Extensible through modules: Add functionality through .NET libraries and custom cmdlets
- Pipeline support: Chain commands together to process data efficiently
- Cross-platform compatibility: Run PowerShell on Windows, Linux, and macOS
Getting Started: Opening PowerShell
Before diving into commands, you need to know how to access PowerShell25. On Windows 11, the easiest method is:
- Type “PowerShell” in the Windows search bar
- Right-click on “Windows PowerShell”
- Select “Run as administrator” for elevated privileges
For most administrative tasks, running PowerShell as an administrator ensures you have the necessary permissions to execute system-level commands.
Essential Discovery Commands: Your PowerShell Compass
1. Get-Help: Your Built-in Manual
Le Get-Help
command is arguably the most important PowerShell command you’ll ever learn467. It provides comprehensive documentation for any cmdlet, function, or concept within PowerShell.
Basic syntax:
powershellGet-Help <cmdlet-name>
Practical examples:
powershell# Get basic help for a command
Get-Help Get-Process
# Get detailed help with examples
Get-Help Get-Process -Full
# View examples only
Get-Help Get-Process -Examples
# Open online help documentation
Get-Help Get-Process -Online
Pro tip: Utilisation Update-Help
periodically to ensure you have the latest help documentation6.
2. Get-Command: Discover Available Commands
When you don’t know which command to use, Get-Command
helps you find the right cmdlet for your task486.
Useful patterns:
powershell# List all available commands
Get-Command
# Find commands starting with "Get"
Get-Command Get-*
# Find commands containing "Process"
Get-Command *Process*
# Find commands for specific actions
Get-Command Start-*
Get-Command Stop-*
This approach is particularly helpful when you know what action you want to perform but aren’t sure of the exact command name.
3. Get-Member: Understand Object Properties
PowerShell works with objects, and Get-Member
shows you what properties and methods are available for any object6.
powershell# See properties of process objects
Get-Process | Get-Member
# View properties of service objects
Get-Service | Get-Member
File and Folder Management Commands
4. Get-ChildItem: List Directory Contents
Get-ChildItem
is PowerShell’s equivalent to the dir
command, but with much more functionality1910.
Common usage:
powershell# List current directory contents
Get-ChildItem
# List with hidden files
Get-ChildItem -Force
# Recursive listing (including subdirectories)
Get-ChildItem -Recurse
# Filter by file type
Get-ChildItem *.txt
# Search for files in subdirectories
Get-ChildItem -Path C:\Users -Include *.pdf -Recurse
Aliases: You can also use ls
, dir
ou gci
as shortcuts10.
5. Set-Location: Navigate Directories
Navigate through your file system efficiently with Set-Location
10.
powershell# Change to a specific directory
Set-Location C:\Users\Documents
# Go to parent directory
Set-Location ..
# Go back to previous location
Set-Location -
# Navigate using aliases
cd C:\Windows
sl C:\Temp
6. Copy-Item: Copy Files and Folders
Le Copy-Item
cmdlet provides powerful file copying capabilities910.
powershell# Copy a single file
Copy-Item "source.txt" "destination.txt"
# Copy with overwrite protection
Copy-Item "source.txt" "backup.txt" -Force
# Copy entire directories
Copy-Item "C:\Source" "C:\Backup" -Recurse
# Copy multiple files using wildcards
Copy-Item "*.log" "C:\Logs\"
7. Move-Item: Move and Rename Files
Utilisation Move-Item
for moving and renaming files and folders1112.
powershell# Move a file to another location
Move-Item "oldfile.txt" "C:\NewLocation\"
# Rename a file
Move-Item "oldname.txt" "newname.txt"
# Move all files of specific type
Get-ChildItem *.txt | Move-Item -Destination "C:\TextFiles\"
8. Remove-Item: Delete Files and Folders
Safely delete files and directories avec Remove-Item
10.
powershell# Delete a single file
Remove-Item "unwanted.txt"
# Delete with confirmation
Remove-Item "important.txt" -Confirm
# Delete directories recursively
Remove-Item "C:\TempFolder" -Recurse -Force
# Delete files matching pattern
Remove-Item "*.tmp"
Warning: Be extremely careful with Remove-Item
, especially when using -Recurse
et -Force
parameters, as deleted files may not be recoverable.
9. New-Item: Create Files and Directories
Create new files and folders quickly with New-Item
1013.
powershell# Create a new directory
New-Item -Name "NewFolder" -ItemType Directory
# Create a new file
New-Item -Name "newfile.txt" -ItemType File
# Create file with content
New-Item "readme.txt" -ItemType File -Value "This is initial content"
# Create nested directories
New-Item "C:\Projects\NewProject\Source" -ItemType Directory -Force
System Information and Process Management
10. Get-Process: Monitor Running Processes
Get-Process
provides detailed information about running processes on your system34.
powershell# List all running processes
Get-Process
# Get specific process by name
Get-Process notepad
# Get processes using wildcard
Get-Process note*
# Sort processes by CPU usage
Get-Process | Sort-Object CPU -Descending
# Get top 10 memory-consuming processes
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
11. Stop-Process: Terminate Processes
Stop unresponsive or unnecessary processes avec Stop-Process
4.
powershell# Stop process by name
Stop-Process -Name "notepad"
# Stop process by ID
Stop-Process -Id 1234
# Stop with confirmation
Stop-Process -Name "chrome" -Confirm
# Force stop stubborn processes
Stop-Process -Name "application" -Force
12. Get-Service: Manage Windows Services
Monitor and manage Windows services that run in the background41415.
powershell# List all services
Get-Service
# Get services by status
Get-Service | Where-Object Status -eq "Running"
# Get specific service
Get-Service -Name "Spooler"
# Get services starting with specific letters
Get-Service -Name "Win*"
13. Start-Service and Stop-Service: Control Services
Start and stop Windows services as needed1415.
powershell# Start a service
Start-Service -Name "Spooler"
# Stop a service
Stop-Service -Name "Spooler"
# Restart a service
Restart-Service -Name "Spooler"
# Start multiple services
Get-Service -Name "BITS", "Spooler" | Start-Service
Network Troubleshooting Commands
14. Test-NetConnection: Network Connectivity Testing
Test-NetConnection
is PowerShell’s enhanced version of ping with additional capabilities1617.
powershell# Basic connectivity test
Test-NetConnection google.com
# Test specific port
Test-NetConnection google.com -Port 80
# Trace route to destination
Test-NetConnection google.com -TraceRoute
# Test multiple connections
"google.com", "microsoft.com" | ForEach-Object { Test-NetConnection $_ }
15. Get-NetIPAddress: View IP Configuration
Check your network IP configuration avec Get-NetIPAddress
1617.
powershell# Display all IP addresses
Get-NetIPAddress
# Show only IPv4 addresses
Get-NetIPAddress -AddressFamily IPv4
# Get specific adapter information
Get-NetIPAddress -InterfaceAlias "Ethernet"
16. Resolve-DnsName: DNS Resolution Testing
Test DNS resolution and lookup domain information16.
powershell# Basic DNS lookup
Resolve-DnsName google.com
# Lookup specific record types
Resolve-DnsName google.com -Type MX
# Use specific DNS server
Resolve-DnsName google.com -Server 8.8.8.8
Content and Data Manipulation Commands
17. Get-Content: Read File Contents
Read and display file contents directly in PowerShell1819.
powershell# Display entire file content
Get-Content "logfile.txt"
# Read specific number of lines
Get-Content "bigfile.txt" -Head 10
# Monitor file changes (like tail -f)
Get-Content "live.log" -Wait
# Read last few lines
Get-Content "recent.log" -Tail 20
18. Out-File: Export Output to Files
Save command output to files for later analysis619.
powershell# Save process list to file
Get-Process | Out-File "processes.txt"
# Append to existing file
Get-Date | Out-File "log.txt" -Append
# Save with specific encoding
Get-Service | Out-File "services.txt" -Encoding UTF8
19. Select-Object: Filter and Format Output
Control what information is displayed from command results2021.
powershell# Show only specific properties
Get-Process | Select-Object Name, CPU, WorkingSet
# Get first few results
Get-ChildItem | Select-Object -First 5
# Select unique values
Get-Process | Select-Object ProcessName -Unique
Working with PowerShell Pipelines
20. Where-Object: Filter Results
Filter command results based on specific criteria2021.
powershell# Filter running services
Get-Service | Where-Object Status -eq "Running"
# Filter large files
Get-ChildItem | Where-Object Length -gt 1MB
# Complex filtering with multiple conditions
Get-Process | Where-Object {$_.CPU -gt 100 -and $_.WorkingSet -gt 50MB}
21. Sort-Object: Sort Results
Organize output in ascending or descending order21.
powershell# Sort processes by name
Get-Process | Sort-Object Name
# Sort by multiple properties
Get-ChildItem | Sort-Object LastWriteTime, Name
# Sort in descending order
Get-Process | Sort-Object CPU -Descending
22. ForEach-Object: Process Each Item
Perform actions on each object in a pipeline1921.
powershell# Process each file
Get-ChildItem *.txt | ForEach-Object {
Write-Host "Processing: $($_.Name)"
}
# Modify each object
Get-Service | ForEach-Object {
"$($_.Name): $($_.Status)"
}
Time and Date Management
23. Get-Date: Work with Dates and Times
Retrieve and format current date and time information19.
powershell# Get current date and time
Get-Date
# Format date in specific way
Get-Date -Format "yyyy-MM-dd HH:mm:ss"
# Get date components
(Get-Date).DayOfWeek
(Get-Date).Year
# Calculate future dates
(Get-Date).AddDays(30)
Essential PowerShell Best Practices
Use Tab Completion
PowerShell’s tab completion feature dramatically speeds up command entry17. Press Tab after typing partial command names, parameters, or file paths to auto-complete them.
Leverage Aliases
PowerShell includes many built-in aliases for common commands5:
ls
oudir
forGet-ChildItem
cd
forSet-Location
cat
outype
forGet-Content
rm
oudel
forRemove-Item
Test Commands Safely
Before running potentially destructive commands, use the -WhatIf
parameter to see what would happen without actually executing the command12:
powershellRemove-Item *.txt -WhatIf
Stop-Service Spooler -WhatIf
Set Execution Policy
For security reasons, PowerShell restricts script execution by default22. To run scripts, you may need to modify the execution policy:
powershell# Check current policy
Get-ExecutionPolicy
# Set policy for current user
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Creating Your First PowerShell Script
Once you’re comfortable with individual commands, you can combine them into scripts for automation2223. Here’s a simple example:
powershell# Save as system-info.ps1
Write-Host "System Information Report" -ForegroundColor Green
Write-Host "=========================" -ForegroundColor Green
Write-Host "`nCurrent Date and Time:" -ForegroundColor Yellow
Get-Date
Write-Host "`nTop 5 Processes by CPU:" -ForegroundColor Yellow
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Write-Host "`nRunning Services Count:" -ForegroundColor Yellow
(Get-Service | Where-Object Status -eq "Running").Count
Write-Host "`nDisk Usage:" -ForegroundColor Yellow
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="Size(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Advanced PowerShell Learning Path
Once you’ve mastered these essential commands, consider exploring these advanced topics24:
- Active Directory management with AD cmdlets
- Remote computer administration using PowerShell remoting
- Automated task scheduling with PowerShell scripts
- Error handling and logging in scripts
- PowerShell modules and functions for code reusability
Troubleshooting Common PowerShell Issues
Execution Policy Errors
If you encounter “execution of scripts is disabled” errors, check and modify your execution policy22:
powershellGet-ExecutionPolicy -List
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Permission Denied Errors
Many administrative tasks require elevated privileges. Always run PowerShell as administrator when working with:
- System services
- Registry modifications
- Network configurations
- User account management
Path and Location Issues
When commands can’t find files or directories, verify your current location and use full paths:
powershellGet-Location
Set-Location C:\YourDesiredPath
Conclusion: Empowering Your Windows Experience
Mastering these essential PowerShell commands transforms you from a passive Windows user into an active system administrator capable of automating complex tasks and solving problems efficiently13. The verb-noun command structure makes PowerShell intuitive to learn, while its powerful pipeline capabilities enable sophisticated data processing and system management24.
Start by practicing these commands in a safe environment, gradually building your confidence and exploring more advanced scenarios. Remember that Get-Help
is always available to provide detailed information about any command, and tab completion makes command entry faster and more accurate725.
Whether you’re managing files, monitoring system performance, troubleshooting network issues, or automating repetitive tasks, PowerShell provides the tools you need to work more efficiently and effectively with Windows systems17. The investment in learning PowerShell pays dividends in increased productivity and enhanced system administration capabilities that will serve you throughout your computing career.