powershell cheat sheet

1
WORKING WITH FILES To read the contents of a text file into a variable, call the Get-Content cmdlet followed by the path to the text file: $a = Get-Content C:\Scripts\Test.txt Each line in the file ends up as an item in the array $a. If you want to access a single line in the file you can simply specify the index number corresponding to that line: $a[0] This command echoes back the last line in $a: $a[-1] Bonus. To determine the number of lines, words, and characters in a text file use this command: get-content c:\scripts\test.txt | measure-object -line -word -character To save data to a text file use the Out-File cmdlet: Get-Process | Out-File C:\Scripts\Test.txt To append data to an existing file, add the –append parameter: Get-Process | Out-File C:\Test.txt –append You can also use the MS-DOS redirection characters (> for write, >> for append) when using Windows PowerShell. This command writes data to the file C:\Scripts\Test.txt: Get-Process > C:\Scripts\Test.txt How to Access Arguments C:\PS>$events = get-eventlog -logname application -newest 100 C:\PS> $events | select-string -inputobject {$_.message} -pattern "failed" ENVIRONMENT To access command-line arguments used when starting a script use the automatic variable $args. You can cycle through the individual arguments in the $args collection by using code similar to this: foreach ($i in $args) {$i} To access a particular argument use the collection index number, with 0 representing the first item in the collection, 1 representing the second item, etc: $args{0] You can reference the last item in a collection by using the index number –1: $args[-1] Finding in files SYSTEM ADMINISTRATION Use ConverTo-Html and> $a = Get-Process $a | Convertto-Html -property Name,Path,Company > test.htm Use Export-Csv and Select-Object to filter output> $a = Get-Process $a | Select-Object Name,Path,Company | Export-Csc -path test.csv Created without $ Set-Variable -name b -value 3.142 -option constant Referenced with $ $b Variables & Arrays Variables Must start with $ a = 32 Can be typed [int]$a = 32 To initialise Arrays $a = 1,2,4,8 To query $b = $a[3 ] Constants Windows PowerShell cmdlets (like Where-Object) use a special set of comparison operators, including those shown in the following table. Each of these operators can be made case sensitive by adding a c immediately after the hyphen. For example, -ceq represents the case- sensitive equals operator; -clt is the case-sensitive less than operator. -lt Less than -le Less than or equal to -gt Greater than -ge Greater than or equal to -eq Equal to -ne Not equal to -like Like (uses wildcards for matching) -notlike Not like (uses wildcards for matching) How to Make Comparisons http://blogs.msdn.com/PowerShell/ http://microsoft.com/technet/scriptcenter/hubs/msh.mspx http://microsoft.com/technet/scriptcenter/topics/winpsh/manual/default.mspx http://microsoft.com/technet/scriptcenter/topics/winpsh/toolbox.mspx RESOURCES ONLINE HTPP://D3NY4LL.BLOGSPOT.COM How to Sort Data To sort data returned by Windows PowerShell simply pipe that data to the Sort-Object cmdlet, specifying the property you want to sort by: Get-Process | Sort-Object ID You can also add the –descending or -ascending parameters to specify a sort order: Get-Process | Sort-Object ID –descending You can even sort by multiple properties: Get-Process | Sort-Object ProcessName, ID Get-Counter '\Processor(*)\% Processor Time' Processor Time gci . -r | sort Length -desc | select fullname -f 10 10 largest files within a directory structure Kill a Process For instance, you’d do the following for BadThread.exe: get-process BadTh* if the process number is 23334, so run : stop-process -id 2792 Get-Process | Sort-Object pm –desc | Select-Object –first 10 Top 10 physical memory consumer process http://download.microsoft.com/download/4/7/1/47104ec6-410d-4492-890b-2a34900c9df2/Workshops-EN.zip I Like it, you can reboot every computer in the ServerList file. gc c:\Temp\ServerList.txt |%{Restart-computer –computername $_ –force} Be carefull !!! Reboot Multiple computers Backup & Delete Event Logs To backup eventlog, we could use get-eventlog cmdlet to retrieve the entries in the eventlog and then using export-clixml cmdlet to store them in a xml file get-eventlog security | export-clixml -path Seclog.xml After you backup each and every eventlog on the machine, you could delete the eventlogs using the below script get-eventlog -list |%{$_.clear()} POWERSHELL CHEAT SHEET

Upload: julio-jaime

Post on 09-Mar-2016

215 views

Category:

Documents


3 download

DESCRIPTION

PowerShell Cheat Sheet

TRANSCRIPT

Page 1: Powershell cheat sheet

WORKING WITH FILES

To read the contents of a text file into a variable, call the Get-Content cmdlet followed by the path to the text file:

$a = Get-Content C:\Scripts\Test.txt

Each line in the file ends up as an item in the array $a. If you want to access a single line in the file you can simply specify the index number corresponding to that line:

$a[0]

This command echoes back the last line in $a:

$a[-1]

Bonus. To determine the number of lines, words, and characters in a text file use this command:

get-content c:\scripts\test.txt |

measure-object -line -word -character

To save data to a text file use the Out-File cmdlet:

Get-Process | Out-File C:\Scripts\Test.txt

To append data to an existing file, add the –append parameter:

Get-Process | Out-File C:\Test.txt –append

You can also use the MS-DOS redirection characters (> for write, >> for append) when using Windows PowerShell. This command writes data to the file C:\Scripts\Test.txt:

Get-Process > C:\Scripts\Test.txt

How to Access Arguments

C:\PS>$events = get-eventlog -logname application -newest

100

C:\PS> $events | select-string -inputobject {$_.message} -pattern "failed"

ENVIRONMENT

To access command-line arguments used when starting a script use the automatic variable $args. You can cycle through the individual arguments in the $args collection by using code similar to this:

foreach ($i in $args) {$i}

To access a particular argument use the collection index number, with 0 representing the first item in the collection, 1 representing the second item, etc:

$args{0]

You can reference the last item in a collection by using the index number –1:

$args[-1]

Finding in files

SYSTEM ADMINISTRATION

Use ConverTo-Html and>$a = Get-Process

$a | Convertto-Html -property Name,Path,Company > test.htm

Use Export-Csv and Select-Object to filter output>$a = Get-Process

$a | Select-Object Name,Path,Company | Export-Csc -path test.csv

Created without $Set-Variable -name b -value 3.142 -option constant

Referenced with $$b

Variables & ArraysVariables Must start with $a = 32

Can be typed[int]$a = 32

To initialise Arrays$a = 1,2,4,8

To query$b = $a[3 ]

Constants

Windows PowerShell cmdlets (like Where-Object) use a special set of comparison operators, including those shown in the following table.

Each of these operators can be made case sensitive by adding a c immediately after the hyphen. For example, -ceq represents the case-sensitive equals operator; -clt is the case-sensitive less than operator.

-lt Less than-le Less than or equal to-gt Greater than-ge Greater than or equal to-eq Equal to-ne Not equal to-like Like (uses wildcards for matching)-notlike Not like (uses wildcards for matching)

How to Make Comparisons

http://blogs.msdn.com/PowerShell/

http://microsoft.com/technet/scriptcenter/hubs/msh.mspx

http://microsoft.com/technet/scriptcenter/topics/winpsh/manual/default.mspx

http://microsoft.com/technet/scriptcenter/topics/winpsh/toolbox.mspx

RESOURCES ONLINE

HTPP://D3NY4LL.BLOGSPOT.COM

How to Sort DataTo sort data returned by Windows PowerShell simply pipe that data to the Sort-Object cmdlet, specifying the property you want to sort by:Get-Process | Sort-Object ID

You can also add the –descending or -ascending parameters to specify a sort order:Get-Process | Sort-Object ID –descending

You can even sort by multiple properties:Get-Process | Sort-Object ProcessName, ID

Get-Counter '\Processor(*)\% Processor Time'

Processor Time

gci . -r | sort Length -desc | select fullname -f 10

10 largest files within a directory structure

Kill a ProcessFor instance, you’d do the following for BadThread.exe:

get-process BadTh*

if the process number is 23334, so run :

stop-process -id 2792

Get-Process | Sort-Object pm –desc | Select-Object –first 10

Top 10 physical memory consumer process

http://download.microsoft.com/download/4/7/1/47104ec6-410d-4492-890b-2a34900c9df2/Workshops-EN.zip

I Like it, you can reboot every computer in the ServerList file.

gc c:\Temp\ServerList.txt |%{Restart-computer –computername $_ –force}

Be carefull !!!

Reboot Multiple computers

Backup & Delete Event LogsTo backup eventlog, we could use get-eventlog cmdlet to retrieve the entries in the eventlog and then using export-clixml cmdlet to store them in a xml file

get-eventlog security | export-clixml -path Seclog.xml

After you backup each and every eventlog on the machine, you could delete the eventlogs using the below script

get-eventlog -list |%{$_.clear()}

POWERSHELL CHEAT SHEET