List all commands, you can add as parameter -examples -full -detailed
PS /home/manu> get-command * ... PS /home/manu> get-command *service*
List Get-Command cmdlet with an alias
PS> Get-Command -Name dir CommandType Name ModuleName ----------- ---- ---------- Alias dir -> Get-ChildItem
List all commands from a specific module
PS /home/manu> get-command -module activedirectory
This command gets all of the cmdlets, sorts them alphabetically by the noun in the cmdlet name, and then displays them in noun-based groups:
PS > Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
uses the All parameter of the Get-Command cmdlet to show all instances of the Notepad command on the local computer.
PS> Get-Command Notepad -All | Format-Table CommandType, Name, Definition CommandType Name Definition ----------- ---- ---------- Application notepad.exe C:\WINDOWS\system32\notepad.exe Application NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE
Man page
PS /home/manu> get-help Write-Progress NAME Write-Progress SYNTAX Write-Progress [-Activity] <string> [[-Status] <string>] [[-Id] <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-CurrentOperation <string>] [-ParentId <int>] [-Completed] [-SourceId <int>] [<CommonParameters>]
Commands alias
PS /home/manu> get-alias
PS /root> Get-VM lnx01a | ForEach-Object {$_.Name} lnx01a
PS /root> $text1 = "Hello".ToUpper() PS /root> Write-Host $text1 HELLO PS /root> $text1 = "Hello".ToLower() PS /root> Write-Host $text1 hello
ATTENTION: Powershell is not case sensitive
PS /root> $text1 = "Hello" PS /root> $text2 = "HELLO" PS /root> $text1 –eq $text2 True
Get full parameters format-list or fl
PS /root> Get-Process | format-list Id : 1627 Handles : 7 CPU : 0 SI : 1627 Name : xrdp-sesman ...
Get selected parameters
PS /root> Get-Process | format-list -Property Id,CPU Id : 1627 CPU : 0 ...
Powershell tail, sort
PS /root> Get-Process | Sort-Object -Property CPU | Select-Object -Last 5 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 0 0.00 1695.88 3461.67 2118 118 X 0 0.00 83.30 3837.19 5662 328 chrome 0 0.00 562.67 4124.23 3965 283 firefox 0 0.00 20.55 5235.46 2373 370 pulseaudio 0 0.00 6483.15 79748.30 31295 264 VirtualBoxVM
$Logfile = $MyInvocation.MyCommand.Path -replace '\.ps1$', '.log' Start-Transcript -Path $Logfile #Doing some stuff with the Verbose parameter Get-ChildItem -Verbose Get-Service -Verbose Get-Process -Verbose Write-Output 'Writing some text to the log file' Stop-Transcript
PS /usr/fcm> $Eliminate = @("vml","vm2","vm3") PS /usr/fcm> Get-VM | Select-String -pattern $Eliminate -notMatch vm4 vm5
PS /usr/bin/fcm/tmp> Get-Content -Path vminfo.txt | Where-Object { $_ -Match "^VM_Datastore:"}
# cat input.txt | sed 's/old/new/' > output.txt
cat: in Powershell : Get-Content $_ : pipe { } : command delimiter % : iteration
PS> Get-Content input.txt | %{$_ -replace "old", "new"} | Set-Content output.txt
PS> Get-ChildItem -Path C:\Test | Sort-Object Directory: C:\Test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2/13/2019 08:55 26 anotherfile.txt -a---- 2/13/2019 13:26 20 Bfile.txt -a---- 2/12/2019 15:40 118014 Command.txt -a---- 2/1/2019 08:43 183 CreateTestFile.ps1 d----- 2/25/2019 18:25 Files
PS> Get-ChildItem -Path C:\Test -File | Sort-Object -Property Length Directory: C:\Test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2/13/2019 13:26 20 Bfile.txt -a---- 2/12/2019 16:24 23 Zsystemlog.log -a---- 2/13/2019 08:55 26 anotherfile.txt -ar--- 2/12/2019 14:31 27 ReadOnlyFile.txt -a---- 2/1/2019 08:43 183 CreateTestFile.ps1 -a---- 2/12/2019 15:40 118014 Command.txt
PS> Get-Process | Sort-Object -Property WS | Select-Object -Last 5 NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName ------ ----- ----- ------ -- -- ----------- 0 0.00 530.43 369.05 24977 283 firefox 0 0.00 547.91 1360.88 4559 237 evolution 0 0.00 1418.94 44.16 14488 237 okular 0 0.00 2072.61 3317.51 2071 071 X 0 0.00 6548.90 33021.09 6754 063 VirtualBoxVM PS> Get-Process | ft name,starttime xdg-document-po 25/12/21 07:49:32 xdg-permission- 25/12/21 07:49:32 xembedsniproxy 25/12/21 07:49:30 xfs_mru_cache 25/12/21 07:45:06 xfs-buf/sda4 25/12/21 07:45:06
PS> Get-Service |Sort-Object -Property @{Expression = "Status"; Descending = $true},@{Expression = "DisplayName";Descending = $false} Status Name DisplayName ------ ---- ----------- Running Appinfo Application Information Running BthAvctpSvc AVCTP service Running BrokerInfrastru... Background Tasks Infrastructure Ser... Running BDESVC BitLocker Drive Encryption Service Running CoreMessagingRe... CoreMessaging Running VaultSvc Credential Manager Running DsSvc Data Sharing Service Running Dhcp DHCP Client
| Sort-Object -Unique : only one occurrence of each word | Sort-Object : string sort | Sort-Object {[int]$_} : integer sort -CaseSensitive ... -Descending
get last 5 lines from file
PS> Get-Content -path /root/toto.py -tail 5 PS> get-content |select -last 5 PS> get-content |select -last 5 | Write-Output
get first 5 lines from file
PS> Get-Content -path /root/toto.py -totalcount 5