Find the version of PowerShell you are working in
PS C:> $PSVersionTable.PSVersion
Major Minor Build Revision
—– —– —– ——–
2 0 -1 -1
PS C:> $PSVersionTable | Format-Table -AutoSize
Name Value
—- —–
CLRVersion 2.0.50727.5466
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
PS C:>
Finding basic system details like computer name, Logged-on domain, system path, system architecture x86 or x64 bit?
PS C:> $env:computername
GOVARDHAN-PC
PS C:>
PS C:> $sysinfo = systeminfo
PS C:> $lines = $sysinfo -split "n"
PS C:> $lines | ? { $_ -match "System Type" }
System Type: x64-based PC
PS C:>
PS C:> $lines | ? { $_ -match "System Type" -or $_ -match "Logon Server" }
System Type: x64-based PC
Logon Server: \TESTIND-DC01
PS C:>
PS C:> $env:path
%SystemRoot%system32WindowsPowerShellv1.0;C:oracleora81bin;C:Program Files (x86)Oraclejre1.1.7bin;C:Program FilesCommon FilesMicrosoft SharedWindows Live;C:Program Files (x86)Common FilesMicrosoft SharedWindows Live;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:Program Files (x86)Windows LiveShared;C:WindowsSystem32WindowsPowerShellv1.0
PS C:>
Execute a system command, capture its output and filter for required data:
Just in the above example, I’ve presented running a system command i.e., systeminfo, captured its output to a string variable, parsed through the output to filter required data.
Execute a system command, capture its output to a file and open the contents for reading:
PS C:> Invoke-expression "C:WindowsSystem32systeminfo.exe >> C:Temppsipconfig.txt"
PS C:> Test-Path C:Temppsipconfig.txt
True
PS C:> gci C:Temppsipconfig.txt
Directory: C:Temp
Mode LastWriteTime Length Name
—- ————- —— —-
-a— 5/10/2013 9:11 PM 25294 psipconfig.txt
PS C:> get-content C:Temppsipconfig.txt | Out-GridView
PS C:>
How to find top memory/CPU consuming processes on a given system
PS C:> Get-Process -ComputerName . | Sort-Object CPU -Descending | Select-Object -First 5
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
——- —— —– —– —– —— — ———–
3197 119 207476 154788 558 2,154.31 3544 chrome
3693 163 119640 98604 579 1,140.91 1816 OUTLOOK
1807 96 95352 60040 840 665.48 628 explorer
1198 134 333452 251332 1134 477.50 6508 ScriptEditor
316 51 150668 148092 581 461.37 4164 chrome
PS C:>
PS C:> Get-Process -ComputerName TestSRV1 | sort CPU -Descending | Select-Object -First 5
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
——- —— —– —– —– —— — ———–
449 21 49604 49176 564 2.11 2160 powershell
529 34 16320 34740 167 1.52 2100 explorer
181 27 8348 13484 117 0.31 2420 taskhost
35 5 1772 4080 47 0.25 2436 conhost
105 11 2208 7924 102 0.14 2440 taskmgr
PS C:>
Viewing tabular contents of the command outputs in GUI:
PS C:> Get-Process -ComputerName . | Sort-Object CPU -Descending | Select-Obj
ect -First 5 | Out-GridView
PS C:>