Ravikanth C
A lead engineer at Dell SharePoint professional by day and PowerShell scripter at night Blog at Developer of ◦ PSCodePlex ◦ PSRemoteFileExplorer ◦ Remote File Explorer PowerPack ◦ BITS File Transfer PowerPack Author of ◦ Free eBook - Layman’s guide to PowerShell 2.0 remoting (Coming soon)
What is PowerShell? Getting started Using PowerShell Getting Help Tools for the job Learning resources Q & A
Remote file explorer -> 698 lines of PowerShell This is just one example..!
The best shell scripting environment for Windows ◦ A new scripting language ◦ Replacement for a weak Windows command-line Default management / automation platform for all Microsoft products going forward Object based ◦ Built on top of.NET type system ◦ Everything is an object DOS off setLocal EnableDelayedExpansion set /a value=0 set /a sum=0 FOR /R %1 %I IN (*) DO ( set /a value=%~zI/1024 set /a sum=!sum!+!value! Size is: !sum! k $size=0;Get-ChildItem C:\Scripts | % { $Size+=$_.Length}
PowerShell is in version 2.0 Default on Windows 7 and Windows Server 2008 Part of Windows management framework download for Windows Server 2008, Vista, XP and Windows 2003 ◦ Requires.NET 2.0 SP1 or later
Console history, Intellisense for cmdlets, variables and parameters
Pronounced as command-let A lightweight command an instance of.NET framework classes Use verb-noun pairs ◦ Get-Verb to list all approved verbs
Not case-sensitive Default value is $null Cmdlets to manage variables ◦ Clear-Variable ◦ Get-Variable ◦ New-Variable ◦ Remove-Variable ◦ Set-Variable
Types ◦ User created variables ◦ Automatic variables Created by PowerShell to maintain its state Cannot be modified Examples: $PSHome, $$, $^, $?, etc ◦ Preference variables Created by PowerShell to store user preferences Can be modified Examples: $MaximumHistoryCount, etc
Alternate names for cmdlets Cmdlets to manage aliases ◦ Export-Alias ◦ Get-Alias ◦ Import-Alias ◦ New-Alias ◦ Set-Alias Cannot take parameters ◦ Workaround: put the statement in a script and alias to that Example: Dir, ls, gcm, gci, etc
Conditional statements ◦ If ◦ Switch l.ooping ◦ For For ($i=0;$i –le 10;$i++) {Write-Host $i} ◦ Foreach Used on a collection of items Foreach ($name in $namesArray) { Write-Host $name } ◦ Do Do { Write-Host $i; $i++ } while ($i –le 10) Do { Write-Host $i;$i++} Until ($i –lt 10) ◦ While While ($i –le 10) { Write-Host $i;$i++ }
Comparison operators ◦ -ne, -eq, -lt, -gt, -ge, -le, -like, -notlike, -contains, - notcontains, -match, -notmatch Logical operators ◦ -or, -and, -xor, -not, ! Arithmetic operators Assignment operators
Arrays ◦ Collection of objects of the same type ◦ $a ) ◦ $a = “PowerShell”,”VBScript” Hash Tables ◦ Collection of key value pairs ◦ $ hash } ◦ $a = {“Name”=“PowerShell”; “IsHot”=$true}
Get-Command ◦ Gets a list of all commands Get-Help ◦ Shows help for a given cmdlet Get-Member ◦ Gets members of an object Get-PSDrive ◦ Shows information stores in PowerShell About_Topics ◦ Get-Help about*
In PowerShell, there will be more than one way to do the same thing. For example ◦ [System.Diagnostics.Process]::GetProcesses() ◦ Get-Process Understand execution policies Use PowerShell profiles
PowerShell Console PowerShell ISE PowerGUI AdminConsole PowerGUI ScriptEditor PowerWF PowerShell Plus
Getting started guide Getting started guide PowerShell Learning center PowerShell Learning center Free PowerShell eBook Free PowerShell eBook The scripting Guys blog The scripting Guys blog PowerScripting Podcast PowerScripting Podcast on on Twitter