powershell for it administrators richard siddaway perot systems

48
PowerShell for IT Administrators Richard Siddaway Perot Systems

Upload: cynthia-oneal

Post on 17-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PowerShell for IT Administrators Richard Siddaway Perot Systems

PowerShell for IT Administrators

Richard SiddawayPerot Systems

Page 2: PowerShell for IT Administrators Richard Siddaway Perot Systems

Welcome to this TechNet Event

“Pick your Own Collateral”

URL for on-line feedback is in your reminder e-mail

No Planned Fire Drills

Please turn your Mobile Phones off

To find out about future TechNet events: www.microsoft.com/uk/technetevents

Page 3: PowerShell for IT Administrators Richard Siddaway Perot Systems

The TechNet Programme

A range of tools and resources for IT ProfessionalsFREE TechNet NewsletterFREE Events and WebcastsFREE TechNet BETA Central (www.microsoft.com/uk/betacentral)

FREE Quarterly TechNet MagazineFREE comprehensive technical websiteFREE TechNet Radio, Security Centre, Learning Paths and Virtual LabsTechNet Plus – Now available for Download!

www.microsoft.com/technet

Page 4: PowerShell for IT Administrators Richard Siddaway Perot Systems

What is TechNet Plus?

The Toolkit for IT ProfessionalsTechNet Plus is an annual subscription Access to TechNet Knowledge BaseNo-limits Evaluation software for TestingBeta software available immediately2 Free Technical Support calls worth £32020% off all further Support CallsManaged Newsgroups with guaranteed answers in 24hrsNow available by Download from only £230 / year (excl VAT)For all information on TechNet Plus Subscriptions visit:

www.microsoft.com/technet/abouttn/subscriptions

Page 5: PowerShell for IT Administrators Richard Siddaway Perot Systems

Who am I?

IT Architect and systems integrator

Programming with .NET for several years

Scripting with VBScript since NT 4

VERY interested in automation

Using PowerShell since beta 2 (Monad)

Run UK PowerShell User Group

Think PowerShell is one of best pieces of technology EVER!

Page 6: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 7: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 8: PowerShell for IT Administrators Richard Siddaway Perot Systems

PowerShell

Next generation shell that is:As interactive and composable as BASH/KSHAs programmatic as Perl/RubyAs production oriented as AS400 CL/VMS DCLAccess data stores as easily as accessing filesystemsExtensible

SnapinsProvidersScripts

Page 9: PowerShell for IT Administrators Richard Siddaway Perot Systems

Script Types

Text.Net “interpretation” of the traditional Unix scripting model

COMWSH/VBScript style scripting

.NETManipulate any native .Net object

CommandsPowershell cmdlets emitting objects

Page 10: PowerShell for IT Administrators Richard Siddaway Perot Systems

DataTypes

Flat File – CSV etc.NETXMLWMIADSIADOADO.NETSQL

Page 11: PowerShell for IT Administrators Richard Siddaway Perot Systems

Accessing .NET

Simple scripts need [STRING] and [MATH]Advanced scripts can use any .NET objectCmdlets provide the best admin and scripting experience

.NET provides a safety net of coverage

PowerShell provides access to the entirety of the .NET Framework

Page 12: PowerShell for IT Administrators Richard Siddaway Perot Systems

SecurityInfrastructu

re

IT OperationsInfrastructu

re

Applications Infrastructu

re

Collaboration

Infrastructure

Page 13: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 14: PowerShell for IT Administrators Richard Siddaway Perot Systems

Learning and Leveraging

In the Box DocumentsGetting Started, Users Guide, Quick Reference GuideHelp

BooksInvest in your integrated lifetime earnings

CommunityA wise man learns from mistakes…

Practice ad hoc development

Page 15: PowerShell for IT Administrators Richard Siddaway Perot Systems

Try things out in an interactive shellStitch things together with utilitiesPut the results in a script file

Realize that the tools are unsuitable and restart with a new set of tools

Generalize (e.g., parameterize)Clean it up production-qualityIntegrate into your environmentShare with the community

Ad Hoc Development

Page 16: PowerShell for IT Administrators Richard Siddaway Perot Systems

Utilities

DiscoveryGet-Help, Get-Member, Get-Command

Object ManipulationCompare, Group, Measure, Select, Sort, Tee, Where

FormattingFormat-(Custom, List, Table, Wide)Out-(File, Host, Printer, String)Export/Import-(Clixml, CSV)ConvertTo-Html

Page 17: PowerShell for IT Administrators Richard Siddaway Perot Systems

Primary Concepts

CmdletsVerb-noun namingSpecific functionality

Pipeline.NET based objects NOT text

Help is text basedSyntax is similar to C#Data – CSV, XML, SQL WMI etc

Page 18: PowerShell for IT Administrators Richard Siddaway Perot Systems

Issues

Default install mode won’t run scriptsSet-ExecutionPolicy

No file associationCan’t automatically run scriptsCan’t double click script to run it

No remoting – yetCan use .NET and WMI

Current working directory is NOT on PATH.\myscript.ps1

Does not load all .NET assembliesUse [Reflection.Assembly]::LoadWithPartialName(" Microsoft.SqlServer.Smo ")

Page 19: PowerShell for IT Administrators Richard Siddaway Perot Systems

Learning PowerShell

Demo

Page 20: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 21: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering Windows

Some administrative cmdletsEventlogsServicesProcesses

WMIScripting

Page 22: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering Windows

Demo

Page 23: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 24: PowerShell for IT Administrators Richard Siddaway Perot Systems

PowerShell and Active Directory

NO AD support in PowerShell v1Exchange 2007 has limited AD supportQuest AD cmdlets

Currently Beta

Quest PowerGUIPowerShell Community ExtensionsScripting

Page 25: PowerShell for IT Administrators Richard Siddaway Perot Systems

Active Directory Provider

PowerShell Community ExtensionsAccess AD as “filesystem”

Navigation Use core commands

Interactive or scriptingAssociated cmdletsIssues – “open source”

Page 26: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering Active Directory

Demo

Page 27: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 28: PowerShell for IT Administrators Richard Siddaway Perot Systems

Exchange Management

Exchange Information no longer visible in Active Directory Users and ComputersMay need to rethink administrative tasksExchange Management Console creates, uses and shows PowerShell scripts of actionsCannot perform all actions in GUIAdministrative development model

Page 29: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administrative Development

Use the GUICopy the scriptModify

Use cmdletsCreate pipelinePut into script

Page 30: PowerShell for IT Administrators Richard Siddaway Perot Systems

Exchange Management Shell

PowerShell is pre-requisite for Exchange 2007 installEMS = PowerShell + Exchange PowerShell snapin

Both coexistEMS adds 300+ cmdlets

Page 31: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering Exchange 2007

Demo

Page 32: PowerShell for IT Administrators Richard Siddaway Perot Systems

Agenda

What is PowerShell?

Learning PowerShell

Administration of Windows systems

Administration of Active Directory

Administration of Exchange 2007

Administration of SQL Server 2005

Page 33: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering non-PowerShell enabled applications

Needs a .NET APISQL Server

SharePoint

SQL Server 2005SMO = Server Management Objects

Need to use .NET

Page 34: PowerShell for IT Administrators Richard Siddaway Perot Systems

SQL Server SMO

Programmatic administration

.NET object model

Examples in C#

TasksView status

Access data

Perform backups

Page 35: PowerShell for IT Administrators Richard Siddaway Perot Systems

Administering SQL Server 2005

Demo

Page 36: PowerShell for IT Administrators Richard Siddaway Perot Systems

Summary/Call to Action

PowerShell can be used to administer large and growing parts of your environmentNow available at: www.microsoft.com/downloads

Search for PowerShell

Try it, Deploy it, Use it, Share

Page 37: PowerShell for IT Administrators Richard Siddaway Perot Systems

For More Information

User group:http://www.get-psuguk.org.uk

My Bloghttp://richardsiddaway.spaces.live.com

Get-PSUGUKUK PowerShellUser Group

Page 39: PowerShell for IT Administrators Richard Siddaway Perot Systems

Community Resources

Newsgroup: Microsoft.Public.Windows.PowerShellTeam blog: http://blogs.msdn.com/PowerShell/Channel 9 tag: http://channel9.msdn.com/tags/PowerShellWiki: http://channel9.msdn.com/wiki/default.aspx/Channel9.WindowsPowerShellWikiScript Center:

http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspxManning Press book by Bruce Payette: PowerShell in Action

http://manning.com/powershell/ O’Reilly book – Monad: Introducing the MSH Command Shell and Language

http://www.oreilly.com/catalog/msh/Sapien Press book by Don Jones: PowerShell

http://www.sapienpress.com/MshAnalyzer tool

http://www.karlprosser.com/coder/?cat=8

Page 40: PowerShell for IT Administrators Richard Siddaway Perot Systems

Resources

Technical Chats and Webcastshttp://www.microsoft.com/communities/chats/default.mspx http://www.microsoft.com/usa/webcasts/default.asp

Microsoft Learning and Certificationhttp://www.microsoft.com/learning/default.mspx

MSDN & TechNet http://microsoft.com/msdnhttp://microsoft.com/technet

Virtual Labshttp://www.microsoft.com/technet/traincert/virtuallab/rms.mspx

Newsgroupshttp://communities2.microsoft.com/communities/newsgroups/en-us/default.aspx

Technical Community Siteshttp://www.microsoft.com/communities/default.mspx

User Groupshttp://www.microsoft.com/communities/usergroups/default.mspx

Page 41: PowerShell for IT Administrators Richard Siddaway Perot Systems

Any Questions?

[email protected]

Page 42: PowerShell for IT Administrators Richard Siddaway Perot Systems

Thank you for attending this TechNet Event

Find these slides at:http://www.microsoft.com/uk/technetslides

Page 43: PowerShell for IT Administrators Richard Siddaway Perot Systems

Reference Slides

Page 44: PowerShell for IT Administrators Richard Siddaway Perot Systems

Scripting with COM

Access existing instrumentationBind to COM objects

$fso = New-Object -ComObject Scripting.FileSystemObject$m = [System.Runtime.InteropServices.Marshal]$word = $m::GetActiveObject("Word.Application")

Invoke methods/access properties$fso.GetDrive(“C:”)$fso.VolumeName = “System Drive”

Understand/extend instrumentationExtend and discover properties/methods

Update-TypeData Office.Word.Types.ps1xml$fso | Get-Member

Manipulate and format resultsDefine and import custom formating

Update-FormatData Office.Word.Format.ps1xml$word.RecentFiles | Sort name | Format-Table

Allows more simpler/more powerful COM scripts because of utilities and formatting

Page 45: PowerShell for IT Administrators Richard Siddaway Perot Systems

Scripting with WMI

PowerShell provides native WMI supportGet-WmiObject

Allows for inspection of WMI namespaceGet-WmiObject –list [-Namespace xx]Get-WmiObject –Class xx –Namespace xx –Property xxx – Filter xxx –ComputerName xxx –Credential xxx

Native language support[WMI] “\\JPSDESK10\root\cimv2:Win32_Process.Handle="0“[WMICLASS] "ROOT\cimv2:WIN32_PROCESS"[WMISEARCHER]"select * from Win32_process WHERE Name = 'calc.exe'"

Page 46: PowerShell for IT Administrators Richard Siddaway Perot Systems

Scripting with .NET

PowerShell provides native access to any .NET classCreate any object

[reflection.assembly]::LoadWithPartialName("System.Windows.Forms")$d = New-Object System.DateTime 2006,12,25

Access Properties/Invoke Methods$d.DayOfWeek$d.AddDays(-30)

Access Statics[DateTime]::Now[DateTime]::IsLeapYear(2006)

Allows admins to easily access and leverage a huge API set because of scriptability, utilities and formatting

Page 47: PowerShell for IT Administrators Richard Siddaway Perot Systems

Scripting with XML

PowerShell provides native XML supportNative datatype

$x=[xml]"<a><b><c>TEST</c></b></a>“$b =[xml](type c:\i386\mssecure.xml)

Native syntax to access “data” view of properties$b.BulletinDataStore.Bulletins.Bulletin[0]

Access to XML methods $b.BulletinDataStore.SelectNodes(“//Patch”)

XML properties available through PSBase property$b.BulletinDataStore.PSBase.innerXml

Page 48: PowerShell for IT Administrators Richard Siddaway Perot Systems

Scripting with Text

Invoke existing tools Existing command run directly after variables are expanded

Harvest data from existing toolsParse output into variables using text utilities.

Pipe data to SELECT and use –FIRST and –LAST Select-String <REGEX> <Path>Dir | Select-String <REGEX>[DateTime]”12/25/2006 7:00”([DateTime]”12/25/2006 7:00”).AddDays(-30)

Use functions/scripts to wrap the commands and convert output to objects or provide standard syntax

Safely process textUse CLR types via Windows PowerShell to safely parse text

[URI]” http://blogs.msdn.com/powershell/archive/2006/04/25/583234.aspx”

Allows admins to get 2-10x more power out of existing commands because of scriptability