Introduction
- Powershell is based on object-oriented approach.
- Powershell supports Windows, MacOS and Linux.
- Powershell was created by Jeffrey Snover.
Basic Cmdlets
- Powershell commands are known as cmdlets (command-lets).
- Cmdlets follow a Verb-Noun naming convention.
Get-Content
- Displays content of the file in powershell. Similar to cat
.
Get-Command
- Displays all the available commands.
Get-Command -CommandType "Function"
- Filters commands with CommandType as "Function".
Get-Help
- Get help information.
Get-Alias
- Get all aliases.
Write-Output
- Prints the given text in the console. SImilar to echo
.
Find-Module -Name "Cmdlet*"
- Search online repositories for new cmdlets.
Install-Module -Name "Cmdlet*"
- Install cmdlet from online repositories.
File Navigation
Get-ChildItem -Path ".\Documents"
- Displays files and folders in the current directory. Similar to ls
.
Set-Location -Path ".\Documents"
- Changes the working directory. Similar to cd
.
New-Item -Path ".\Documents\TestFolder" -ItemType "Directory"
- Creates a directory in the given path. Similar to touch
.
New-Item -Path ".\Documents\TestFile" -ItemType "File"
- Creates a directory in the given path. Similar to mkdir
.
Remove-Item -Path ".\Documents\TestFile"
- Deletes the file or directory. Similar to rm
.
Copy-Item -Path ".\Documents\TestFile" -Destination ".\Documents\CopiedFile"
- Copies a file. Similar to cp
.
Move-Item -Path ".\Documents\TestFile" -Destination ".\Documents\MovedFile"
- Moves a file. Similar to mv
.
Piping, Filtering and Sorting
| (Pipe Operator)
- Redirects the output of one command to another command.
Get-ChildItem | Sort-Object Length
- Sort object by length.
Get-ChildItem | Where-Object -Property "Extension" -eq ".txt"
- Filter files by extension.
-eq
- Equal to.
-nq
- Not equal to.
-gt
- Greater than.
-lt
- Less than.
-ge
- Greater than or equal to.
-le
- Less than or equal to.
-like
- Matches a specific pattern.
Get-ChildItem | Where-Object -Property "Name" -like "ship*"
- Name like ship.
Get-ChildItem | Select-Object Name,Length
- Gets the name and length.
Select-String
- Finds a specific pattern in a file. Similar to grep
.
Get-ComputerInfo
- Displays comprehensive system information. Similar to systeminfo
.
Get-LocalUser
- Lists all local users in the system.
Get-NetIpConfiguration
- Displays all network interfaces. Similar to ifconfig /a
.
Get-NetIpAddress
- Displays all IP addresses. Similar to ipconfig
.
Real Time System Analysis
Get-Process
- Displays information of all running processes.
Get-Service
- Displays information of all services in the system.
Get-NetTCPConnection
- Get all active tcp network connection. This cmdlet is very useful in malware analysis.
Get-FileHash
- Generate the file hash. Used in malware analysis, incident response and threat hunting.
Scripting
Invoke-Command
- Executing command on remote systems.
Invoke-Command -ComputerName Server01 -FilePath C:\scripts\test.ps1
- Runs test.ps1 on Server01.
Invoke-Command -ComputerName RoyalFortune -ScriptBlock { Get-Service }
- Runs Get-Service
command on RoyalFortune.