A Lap Around PowerShell 3.0
Upcoming SlideShare
Loading in...5
×
 

A Lap Around PowerShell 3.0

on

  • 416 views

Presented to the Central Ohio .NET Developer Group in May 2013

Presented to the Central Ohio .NET Developer Group in May 2013

Statistics

Views

Total Views
416
Views on SlideShare
416
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • http://technet.microsoft.com/en-us/library/hh857339.aspx#BKMK_WebAccess
  • Download: http://www.microsoft.com/en-us/download/details.aspx?id=34595
  • http://technet.microsoft.com/en-us/library/hh831611.aspx
  • http://msdn.microsoft.com/en-us/library/windows/desktop/hh880865(v=vs.85).aspx

A Lap Around PowerShell 3.0 A Lap Around PowerShell 3.0 Presentation Transcript

  • UNLEASHING THE POWER: A LAP AROUND POWERSHELL 3.0 SARAH DUTKIEWICZ CLEVELAND TECH CONSULTING SARAH@CLETECHCONSULTING.COM
  • AGENDA • System Requirements • Overview of New & Improved Features • Resources • BONUS Material : Cool PowerShell Tools for Devs
  • WINDOWS MANAGEMENT FRAMEWORK 3.0 • Includes: • • • • • Windows PowerShell 3.0 WMI WinRM Management OData IIS Extension Server Manager CIM Provider Download Here
  • SYSTEM REQUIREMENTS • Windows 8, Windows Server 2012 – built-in • Windows 7 Service Pack 1 • Windows Server 2008 R2 SP1 • Windows Server 2008 Service Pack 2
  • INSTALLATION NOTES • Requires Microsoft .NET Framework 4.0 • The Integrated Scripting Environment (ISE) is an optional feature for server SKUs. • For Windows Server 2008, the previous version of Windows Management Framework – which contains PowerShell 2.0 – must be installed first.
  • GETTING STARTED – CONSOLE/VERSION
  • BACKWARDS COMPATIBILITY • Windows PowerShell 3.0 is backward-compatible. • 2.0 syntax and functionality that were designed for 2.0 should work in 3.0 without changes.
  • POWERSHELL WEB ACCESS ACCESS YOUR COMPANY’S COMPUTERS VIA POWERSHELL IN A WEB BROWSER
  • POWERSHELL WEB ACCESS - LIMITATIONS • Double-hop issues when connecting to a second computer • Same limitations as a remote Windows PowerShell session • Commands that call Windows console APIs don’t work. • Anything that displays a GUI doesn’t work. • Tab Completion doesn’t work in NoLanguage sessions. • Allows only one remote connection per browser session
  • POWERSHELL WEB ACCESS – MORE LIMITATIONS • Persistent Windows PowerShell sessions – need to use –Job for long running tasks and to allow disconnection rather than log off • No nested progress displays • Input colors cannot be modified • Function keys may not work in the PowerShell app if they are reserved for browser functionality • More notes at: Use the Web-based PowerShell Console
  • WINDOWS POWERSHELL WEB ACCESS • Requires: • • • • Windows Server 2012 IIS .NET Framework 4.5 PowerShell 3.0
  • POWERSHELL WEB ACCESS – BROWSER SUPPORT • Internet Explorer (8 or higher) • Firefox (10.0.2) • Chrome for Windows (17.0.963.56m) • Safari for Windows (5.1.2) • Safari for Mac (5.1.2)
  • POWERSHELL WEB ACCESS – MOBILE SUPPORT • Minimally tested on: • • • • Windows Phone 7 and 7.5 Google Android WebKit 3.1 Browser Android 2.2.1 (Kernel 2.6) Apple Safari for iPhone operating system 5.0.1 Apple Safari for iPad 2 operating system 5.0.1
  • POWERSHELL WEB ACCESS – BROWSER REQUIREMENTS • Allow cookies from the Windows PowerShell Web Access gateway website. • Be able to open and read HTTPS pages. • Open and run websites that use JavaScript.
  • POWERSHELL WEB ACCESS INSTALLATION • Via Features/Roles wizard through the Server Manager • Through PowerShell cmdlets • Detailed instructions available here: http://technet.microsoft.com/enus/library/hh831611.aspx#BKMK_install
  • POWERSHELL WEB ACCESS – SET UP THE GATEWAY • Use Install-PswaWebApplication to configure Windows PowerShell Web Access. • Use the –UseTestCertificate parameter only for internal testing
  • POWERSHELL WEB ACCESS – SETTING UP THE GATEWAY
  • POWERSHELL WEB ACCESS – CONFIGURE SECURITY • Use cmdlets to help specify what users have access to what. • For demo purposes, we’re using: Add-PswaAuthorizationRule –UserName * -ComputerName * -ConfigurationName *
  • POWERSHELL WEB ACCESS – LOG IN
  • POWERSHELL WEB ACCESS - VERSION
  • NEW FEATURES & IMPROVEMENTS EASIER SYNTAX, BETTER PERFORMANCE, MORE ROBUSTNESS, AND MORE!
  • IMPROVED WHERE AND FOREACH SYNTAX • Example: Get all processes where CPU is greater than 100 2.0: Get-Process | where { $_.CPU –gt 100 } 3.0: Get-Process | where CPU –gt 100
  • IMPROVED WHERE AND FOREACH SYNTAX • Example: Find all available “Microsoft.*” available modules and split their names 2.0: Get-Module –ListAvailable | Where { $_.Name –like “Microsoft.*” } | Foreach { $_.Name.Split(“.”) } 3.0: Get-Module –ListAvailable | Where Name –like “Microsoft.*” | Foreach Split “.”
  • MICROSOFT .NET FRAMEWORK 4.0 SUPPORT • Application Compatibility and Deployment • Managed Extensibility Framework • Parallel Computing • Networking • Windows Communication Foundation • Windows Workflow Foundation
  • SESSION IMPROVEMENTS – DISCONNECTED SESSIONS • Persistent sessions saved on remote computer • No longer session-dependent • New cmdlets: Connect-PSSession, Disconnect-PSSession, and ReceivePSSession • New parameter InDisconnectedSession • Both client and server need to be running Windows PowerShell 3.0
  • HELP IMPROVEMENTS – UPDATABLE HELP • Updatable Help System • By default, help files for a module update no more than once a day • Windows 8 and Windows Server 2012 do not have help files as part of their installations Update-Help Save-Help Supporting Updatable Help
  • HELP IMPROVEMENTS – ENHANCED ONLINE HELP • Enhanced Online Help • Works well even when the help files aren’t installed on the computer Get-Help {cmdlet} –Online Supporting Online Help
  • SCHEDULED JOBS & TASK SCHEDULER INTEGRATION • Windows PowerShell jobs can now be background jobs managed by Task Scheduler. • PowerShell scheduled jobs run asynchronously. • Scheduled jobs can be one-time or recurrent. • New cmdlet set for scheduled jobs • See more at about_Scheduled_Jobs
  • LANGUAGE ENHANCEMENTS – NEW CORE CMDLETS • Full list can be seen here: http://technet.microsoft.com/enus/library/hh857339.aspx#BKMK_CHAR • Highlights include: • ConvertTo-Json & ConvertFrom-Json • Disable-ScheduledJob & Enable-ScheduledJob • Invoke-RestMethod & Invoke-WebRequest
  • IMPROVEMENTS TO EXISTING FUNCTIONALITY • Simplified syntax and new parameters include: • • • • • • • • • Get-ChildItem Get-Command Get-Content Get-History Select-Object Select-String Split-Path Start-Process Test-Connection
  • IMPROVEMENTS TO EXISTING FUNCTIONALITY • Certificate provider supports SSL certificates for web hosting • Support for credential • Persistent network drives • Alternate data streams in file system drives
  • ENHANCED TAB COMPLETION • Tab completion was written on a new parser • Better midline tab completion • Now completes: • • • • • • • • Cmdlets Parameters Parameter Values Enumerations .NET Framework types COM objects Hidden directories More!
  • MODULE AUTO-LOADING • Get-Command now looks at all installed modules rather than just the imported ones. • Automatic import is triggered by Get-Command, Get-Help, or running a cmdlet from the module • This auto-loading can be controlled with the $PSModuleAutoLoadingPreference preference variable
  • MODULE EXPERIENCE IMPROVEMENTS • Module logging for individual modules (LogPipelineExecutionDetails) and the new "Turn on Module Logging" Group Policy setting • Extended module objects that expose the values from the module manifest • New ExportedCommands property of modules, including nested modules, that combines commands of all types • Improved discovery of available (un-imported) modules, including allowing the Path and ListAvailable parameters in the same command • New DefaultCommandPrefix key in module manifests that avoids name conflicts without changing module code.
  • MODULE EXPERIENCE IMPROVEMENTS • Improved module requirements, including fully-qualified required modules with version and GUID and automatic importing of required modules • Quieter, streamlined operation of the New-ModuleManifest cmdlet. • New Module parameter for #Requires • Improved Import-Module cmdlet with both MinimumVersion and RequiredVersion parameters.
  • SIMPLIFIED COMMAND DISCOVERY • Get-Command displays all commands from all installed modules. • Due to auto-loading, a module will automatically be loaded once a command from that module is executed. • Show-Command also helps beginners learn commands.
  • IMPROVED LOGGING • Supports Event Tracing in Windows (ETW) logs • “Turn on Module Logging” now included as a Group Policy setting. • Parameter values appear in log details in the log properties.
  • FORMATTING & OUTPUT IMPROVEMENTS • • Output redirection for all streams Enhanced Update-Type cmdlet that adds types dynamically without ps1xml format files • Word wrap in output • Default formatting of custom objects • PSCustomObject type • Support for discovering method overloads
  • SPECIAL CHARACTER HANDLING IMPROVEMENTS • The LiteralPath parameter appears now on most cmdlets that use Path – including Update-Help and Save-Help • Improved handling of backticks and square brackets in file names and paths
  • NEW CMDLET AND HOSTING APIS • Public AST APIs • APIs for • • • • • • Pipeline paging Nested pipelines Runspace pools tab completion Windows RT Obsolete cmdlet attribute Verb and Noun properties of the FunctionInfo object
  • PERFORMANCE IMPROVEMENTS • New language parser built on the Dynamic Runtime Language in .NET 4.0 • Runtime script compilation • Engine reliability improvements • Changes to the Get-ChildItem algorithm to enhance performance, especially with searching network shares
  • NEW FEATURES IN WINDOWS POWERSHELL ISE • Snippets • Includes advanced functions and their parameters and for Do, While, If, Switch, and ForEach keywords. • Make your own snippets and import snippets from modules. • Three cmdlets: New-IseSnippet, Get-IseSnippet and Import-IseSnippet. • Brace-matching, error indicators, code outlining • Options Window
  • NEW FEATURES IN WINDOWS POWERSHELL ISE • Console pane • • • • • • • Command pane + Output pane Behaves similar to console Intellisense Syntax highlighting Snippets Brace-matching Error indicators • Show Command window • Intellisense
  • NEW FEATURES IN WINDOWS POWERSHELL ISE • • Update Windows PowerShell Help from the Help menu Help Window- displays help from the help files on the computer, complementing the Updatable Help feature. • Auto-save • Recent items list • Block copy • And more!
  • MICROSOFT SCRIPT EXPLORER
  • MICROSOFT SCRIPT EXPLORER • Was a great way to search for scripts as guides – similar to the All-InOne Code Framework app for developers • Unfortunately, not well-adopted, so the service will be turned off effective June 14, 2013 • What to do with this being discontinued? See the PowerShell blog post: Microsoft Script Explorer: Next Steps
  • POWERSHELL WEB SERVICE
  • WINDOWS POWERSHELL WEB SERVICE • Enables an administrator to expose a set of PowerShell cmdlets as a RESTful endpoint via OData • Allows cmdlets to be invoked by any platform that can work with OData feeds – Windows and non-Windows • Windows PowerShell role-based OData Web Service sample • Windows PowerShell basic OData Web Service sample
  • SETTING UP WINDOWS POWERSHELL WEB SERVICE – INSTALL SCRIPT
  • SETTING UP WINDOWS POWERSHELL WEB SERVICE – SETUP THE ENDPOINT
  • DEMO OF POWERSHELL WEB SERVICE • More on PowerShell cmdlets invocation through Management OData using WCF client
  • RESOURCES • Windows PowerShell Script Center • Windows PowerShell Language Specification Version 3.0 • Windows PowerShell for Developers • Windows PowerShell 3.0 SDK Sample Pack • Windows PowerShell Reference
  • BONUS MATERIAL : COOL POWERSHELL TOOLS FOR DEVS • StudioShell – exposes Visual Studio’s extensibility points in a simple manner • SeeShell – Data Visualization for PowerShell • Psake – a build automation tool • OData PowerShell Provider – mount OData feeds as drives in PowerShell • PoShRabbit – exposes RabbitMQ to PowerShell