Getting Started With PowerShell Scripting
-
Upload
ravikanth-chaganti -
Category
Technology
-
view
4.546 -
download
4
description
Transcript of Getting Started With PowerShell Scripting
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Getting started with PowerShell Scripting
Ravikanth C
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
A lead engineer at Dell SharePoint professional by day and
PowerShell scripter at night Blog at http://www.ravichaganti.com/blog 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)
About me
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
What is PowerShell? Getting started Using PowerShell Getting Help Tools for the job Learning resources Q & A
Agenda
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Remote file explorer -> 698 lines of PowerShell
This is just one example..!
Show me the Power first.!
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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
What is PowerShell?
DOS Batch PowerShell@echo 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! ) @echo Size is: !sum! k
$size=0;Get-ChildItem C:\Scripts | % { $Size+=$_.Length}
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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◦ http://support.microsoft.com/kb/968929
Requires .NET 2.0 SP1 or later
Getting started
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Console history, Intellisense for cmdlets, variables and parameters
Using PowerShell: Console
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Using PowerShell: ISE
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Using PowerShell: Cmdlets
Pronounced as command-let A lightweight command
an instance of .NET framework classes Use verb-noun pairs
◦ Get-Verb to list all approved verbs
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Not case-sensitive Default value is $null Cmdlets to manage variables
◦ Clear-Variable◦ Get-Variable◦ New-Variable◦ Remove-Variable◦ Set-Variable
Using PowerShell: Variables
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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
Using PowerShell: Variables
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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
Using PowerShell: Aliases
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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++ }
Using PowerShell: Conditional & Looping
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Comparison operators◦ -ne, -eq, -lt, -gt, -ge, -le, -like, -notlike, -contains, -
notcontains, -match, -notmatch Logical operators
◦ -or, -and, -xor, -not, ! Arithmetic operators Assignment operators
Using PowerShell: Operators
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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}
Using PowerShell: Arrays & Hash Tables
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Getting Help 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*
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
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
Best practices
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
PowerShell Console PowerShell ISE PowerGUI AdminConsole PowerGUI ScriptEditor PowerWF PowerShell Plus
Tools for the job
Email: [email protected]: @RavikanthBlog: http://www.ravichaganti.com
Getting started guide PowerShell Learning center Free PowerShell eBook The scripting Guys blog PowerScripting Podcast @PSBUG on Twitter
Learning resources