Upload
merryl-bryant
View
212
Download
0
Embed Size (px)
Citation preview
© 2007 Asynchrony Solutions, Inc. 1
10/29/07
Introduction to PowerShell
Brian ButtonVP Engineering
Asynchrony Solutions, [email protected]
http://oneagilecoder.asolutions.com
© 2007 Asynchrony Solutions, Inc. 2
10/29/07
Just the other day…
Visual Studio 2005 Enterprise Library
VS.Net SP1 Nunit
IIS Xunit.net
TFS Explorer Resharper
SQL Server 2005 Test Driven.net
GAX
GAT
© 2007 Asynchrony Solutions, Inc. 3
10/29/07
Failure!!!
• SQL Server failed to install and uninstall• What to do???• MSDN says:
• Regedit HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
• For each GUID found, Examine DisplayName searching for match of ‘SQL Server’
• Manually uninstall it• Maybe there was a better way!
© 2007 Asynchrony Solutions, Inc. 4
10/29/07
What is PowerShell
• New Scripting language• Same, but different!
• In Vista, then unbundled• Separate download
• General purpose programming language
© 2007 Asynchrony Solutions, Inc. 5
10/29/07
Basic Tour
• Shell prompt• Cmdlets• Pipes• .Net objects• PSDrives• Help system
© 2007 Asynchrony Solutions, Inc. 6
10/29/07
5 key commands
• Get-Help• Get-Command• Get-Member• Get-Psdrive• Format-List
© 2007 Asynchrony Solutions, Inc. 7
10/29/07
Let’s build something
• Removing all bin and obj folders from project• Find all IDisposable classes in assembly
© 2007 Asynchrony Solutions, Inc. 8
10/29/07
Powershell as a programming language
• General purpose programming language• File extension PS1• Example: Reformat.PS1
© 2007 Asynchrony Solutions, Inc. 9
10/29/07
Extending Powershell
• Custom Cmdlets and PSSnapins• Written in C# or VB.Net
• Functions, Filters, Aliases• Written in powershell
• Adding methods, properties to existing types• Written in XML, powershell• Add-member
© 2007 Asynchrony Solutions, Inc. 10
10/29/07
Extending Powershell in C#/VB.Net
• Create Custom cmdlet
• Create PSSnapin to install• Great tutorial at
http://blogs.msdn.com/daiken/archive/2007/02/07/creating-a-windows-powershell-cmdlet-using-the-visual-studio-windows-powershell-templates.aspx
[Cmdlet(VerbsCommon.Get, "Proc")] public class GetProcCommand : Cmdlet { }
© 2007 Asynchrony Solutions, Inc. 11
10/29/07
Extending Powershell natively
• Functionsfunction to_uppercase
{
param([string]$first)
$first.ToUpper()
}• At command line or in user profile
© 2007 Asynchrony Solutions, Inc. 12
10/29/07
Extending Powershell natively
• Aliases – make commands easier to use• set-alias, new-alias, get-alias
Alias gal Get-Alias
Alias gc Get-Content
Alias gci Get-ChildItem
Alias gcm Get-Command
Alias gdr Get-PSDrive
© 2007 Asynchrony Solutions, Inc. 13
10/29/07
Customizing Powershell
• User profile• $profile• Get-Executionpolicy
• Like .profile or .login in Linux• Invoked for every new shell• Sets up functions, aliases, etc
© 2007 Asynchrony Solutions, Inc. 14
10/29/07
Why learn Powershell
• Automate repetitive tasks• Share knowledge with others• It’s the Microsoft Way…
© 2007 Asynchrony Solutions, Inc. 15
10/29/07
Controlling Windows through Scripts
• Complaints for years about GUI-only config• In Unix/Linux forever
• MS making admin tasks powershell-scriptable• Exchange• SQL Server• IIS 7• More
© 2007 Asynchrony Solutions, Inc. 16
10/29/07
Resources
• Download powershell through Microsoft.com• Videos
• http://channel9.msdn.com/Media/?TagID=163
• Blogs• http://blogs.msdn.com/powershell• http://thepowershellguy.com• http://keithhill.spaces.live.com• http://www.leeholmes.com/blog
© 2007 Asynchrony Solutions, Inc. 17
10/29/07
More resources
• Books• Powershell in Action, Bruce Payette• Professional Windows Powershell, Andrew Watt• Windows Powershell Cookbook, Lee Holmes
• Community projects• 21 projects on http://www.codeplex.com
© 2007 Asynchrony Solutions, Inc. 18
10/29/07
Q & A
• Slides posted at http://oneagilecoder.asolutions.com• Email questions to [email protected]