Beginner Scripts (1–55)
- List All Running Processes
Get-Process - List All Services
Get-Service - Get IP Configuration
Get-NetIPConfiguration - Ping a Host
Test-Connection google.com - List Installed Programs
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select DisplayName, DisplayVersion - List Startup Programs
Get-CimInstance -ClassName Win32_StartupCommand - Check Disk Usage
Get-PSDrive -PSProvider ’FileSystem’ - Check PowerShell Version
$PSVersionTable.PSVersion - Restart Computer
Restart-Computer - Shutdown Computer
Stop-Computer - Check System Uptime
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime - Create a New Local User
New-LocalUser ”username” -Password (ConvertTo-SecureString ”password” -AsPlainText -Force) - Add User to Local Group
Add-LocalGroupMember -Group ”Administrators” -Member ”username” - Set Execution Policy
Set-ExecutionPolicy RemoteSigned - Get Event Logs
Get-EventLog -LogName System -Newest 10 - Kill a Process
Stop-Process -Name notepad - Get Computer Info
Get-ComputerInfo - Get Installed Hotfixes
Get-HotFix - List All Local Users
Get-LocalUser - List All Local Groups
Get-LocalGroup - Search for Files
Get-ChildItem -Path C:\ -Recurse -Include *.txt - Create a New Directory
New-Item -Path ’C:\NewFolder’ -ItemType Directory - Copy a File
Copy-Item -Path ’C:\file.txt’ -Destination ’D:\file.txt’ - Move a File
Move-Item -Path ’C:\file.txt’ -Destination ’D:\file.txt’ - Delete a File
Remove-Item -Path ’C:\file.txt’ - Zip a Folder
Compress-Archive -Path C:\Test -DestinationPath C:\Test.zip - Unzip a File
Expand-Archive -Path C:\Test.zip -DestinationPath C:\Test - Set File Read-Only
Set-ItemProperty -Path ’C:\file.txt’ -Name IsReadOnly -Value $true - Get System Locale
Get-WinSystemLocale - Get Time Zone
Get-TimeZone - Set Time Zone
Set-TimeZone -Id ”Central Europe Standard Time” - Show Current Month/Year
Get-Date -UFormat ”%B %Y” - Display Current User
whoami - Test Internet Connection
Test-Connection -ComputerName google.com -Count 2 - Show Network Adapters
Get-NetAdapter - Network Adapter Statistics
Get-NetAdapterStatistics - List Open TCP Ports
Get-NetTCPConnection - List Firewall Rules
Get-NetFirewallRule - Enable Firewall
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True - Disable Firewall
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False - Set Static IP Address
New-NetIPAddress -InterfaceAlias ”Ethernet” -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1 - Set DNS Servers
Set-DnsClientServerAddress -InterfaceAlias ”Ethernet” -ServerAddresses (”8.8.8.8″,”8.8.4.4”) - Flush DNS Cache
Clear-DnsClientCache - Release IP Address
ipconfig /release - Renew IP Address
ipconfig /renew - View ARP Table
arp -a - Show Routing Table
route print - Get MAC Address
Get-NetAdapter | Select Name, MacAddress - Enable Remote Desktop
Set-ItemProperty -Path ’HKLM:\System\CurrentControlSet\Control\Terminal Server’ -Name ”fDenyTSConnections” -Value 0 - Enable Remote PowerShell Access
Enable-PSRemoting -Force - Stop a Service
Stop-Service -Name ’wuauserv’ - Start a Service
Start-Service -Name ’wuauserv’ - Restart a Service
Restart-Service -Name ’wuauserv’ - Check Service Status
Get-Service -Name ’wuauserv’ - List Scheduled Tasks
Get-ScheduledTask
Advanced Scripts (56–100)
- Monitor System Performance in Real-Time
Get-Counter -Counter ”\Processor(_Total)\% Processor Time” -SampleInterval 1 -MaxSamples 10 - List Active Directory Users
Get-ADUser -Filter * - Create New Active Directory User
New-ADUser -Name ”John Doe” -GivenName ”John” -Surname ”Doe” -SamAccountName ”jdoe” -UserPrincipalName ”jdoe@domain.com” -Path ”OU=Users,DC=domain,DC=com” - Modify Active Directory User
Set-ADUser -Identity jdoe -Description ”Updated User Info” - Remove Active Directory User
Remove-ADUser -Identity jdoe - List Active Directory Groups
Get-ADGroup -Filter * - Add User to Active Directory Group
Add-ADGroupMember -Identity ”Admins” -Members ”jdoe” - Get Group Memberships for User
Get-ADUserMemberOf -Identity jdoe - Get Active Directory Computer Info
Get-ADComputer -Filter * | Select Name, OperatingSystem - Set Computer Account Expiry
Set-ADComputer -Identity ”Server01” -AccountExpirationDate ”12/31/2025” - Get Active Directory Group Memberships
Get-ADGroupMember -Identity ”GroupName” - Get Installed Software on Remote Computer
Invoke-Command -ComputerName ”RemotePC” -ScriptBlock {Get-WmiObject -Class Win32_Product} - Export Active Directory Users to CSV
Get-ADUser -Filter * | Export-Csv -Path ”C:\AD_Users.csv” -NoTypeInformation - Import Active Directory Users from CSV
Import-Csv ”C:\AD_Users.csv” | ForEach-Object { New-ADUser -Name $_.Name -SamAccountName $_.SamAccountName } - Get File Hash (MD5, SHA-256)
Get-FileHash ”C:\file.txt” -Algorithm SHA256 - Backup SQL Database
Invoke-Sqlcmd -Query ”BACKUP DATABASE [DatabaseName] TO DISK = ’C:\Backup\BackupFile.bak'” - Restore SQL Database
Invoke-Sqlcmd -Query ”RESTORE DATABASE [DatabaseName] FROM DISK = ’C:\Backup\BackupFile.bak'” - List Active Connections to SQL Server
Invoke-Sqlcmd -Query ”SELECT * FROM sys.dm_exec_connections” - Get Network Statistics for Interface
Get-NetAdapterStatistics -Name ”Ethernet” - Get IP Routing Table
Get-NetRoute - Display All Environment Variables
Get-ChildItem Env: - Create a New Virtual Machine in Hyper-V
New-VM -Name ”NewVM” -MemoryStartupBytes 2GB -VHDPath ”C:\VMs\NewVM.vhdx” -Generation 2 - Start a Virtual Machine in Hyper-V
Start-VM -Name ”NewVM” - Stop a Virtual Machine in Hyper-V
Stop-VM -Name ”NewVM” - Get Virtual Machine Status in Hyper-V
Get-VM -Name ”NewVM” - Set Virtual Machine Memory
Set-VM -Name ”NewVM” -MemoryStartupBytes 4GB - Export Virtual Machine in Hyper-V
Export-VM -Name ”NewVM” -Path ”C:\VMs\Backup” - Import Virtual Machine in Hyper-V
Import-VM -Path ”C:\VMs\Backup” - Enable Windows Defender Antivirus
Set-MpPreference -DisableRealtimeMonitoring $false - Disable Windows Defender Antivirus
Set-MpPreference -DisableRealtimeMonitoring $true - Install Windows Feature via PowerShell
Install-WindowsFeature -Name Web-Server - Uninstall Windows Feature
Uninstall-WindowsFeature -Name Web-Server - Create a Scheduled Task
New-ScheduledTaskTrigger -AtStartup | Register-ScheduledTask -Action ”C:\Path\to\script.ps1” -TaskName ”MyTask” - Export Windows Firewall Rules to XML
Export-WindowsFirewallRules -FilePath ”C:\FirewallRules.xml” - Import Windows Firewall Rules from XML
Import-WindowsFirewallRules -FilePath ”C:\FirewallRules.xml” - Add an Exception to Windows Firewall
New-NetFirewallRule -DisplayName ”Allow ICMP” -Protocol ICMPv4 -Direction Inbound -Action Allow - Check Disk Health (SMART)
Get-WmiObject -Class Win32_DiskDrive | Select-Object Model, Status - View System Services and Start Modes
Get-Service | Select-Object Name, StartType, Status - Test Network Speed
Test-Connection google.com -Count 10 | Measure-Object -Property ResponseTime -Minimum -Maximum -Average - Automate File Download with PowerShell
Invoke-WebRequest -Uri ”http://example.com/file.zip” -OutFile ”C:\file.zip” - Backup Files to Network Share
Copy-Item -Path ”C:\Data” -Destination ”\\NetworkShare\Backup” -Recurse - Create a Custom PowerShell Module
New-Module -ScriptBlock {function Get-MyCommand {Write-Host ”Hello”}} | Export-ModuleMember -Function Get-MyCommand - Monitor Folder for Changes (File System Watcher)
Register-WmiEvent -Class Win32_Directory -Action { Write-Host ”Change Detected!” } - Send Email from PowerShell
Send-MailMessage -To ”email@example.com” -From ”sender@example.com” -Subject ”Test” -Body ”Body of the message” -SmtpServer ”smtp.server.com” - Create an IIS Website
New-Website -Name ”TestWebsite” -Port 80 -PhysicalPath ”C:\Websites\Test” -ApplicationPool ”DefaultAppPool”