410 likes | 456 Views
Using Windows PowerShell on Windows Embedded Standard. Alexander Wechsler Enterprise Architect|CEO Microsoft Regional Director Germany|eMVP Wechsler Consulting GMBH & Co. KG EMB306. Disclaimer. Everything you will hear in this session is experimental and should be taken that way!.
E N D
Using Windows PowerShell on Windows Embedded Standard Alexander Wechsler Enterprise Architect|CEO Microsoft Regional Director Germany|eMVP Wechsler Consulting GMBH & Co. KG EMB306
Disclaimer Everything you will hear in this session is experimental and should be taken that way! There is no support from Microsoft for this! Testing is up to you! -> well, if that is news to you… No risk, not fun!
Windows PowerShell New command line and scripting language • As interactive and composable as BASH/KSH As programmatic as Perl/Python/Ruby • As production oriented as AS400 CL/VMS DCL • Allows access to data stores as easy to access as filesystem
State of the SoftwarePhenomenal rate of adoption Over 2 million downloads in less than 18 months Windows XP, Windows Vista, Windows Server 2003 and 2008 • Shipped with • Windows Server 2008 Adopted by Exchange, SQL, SCOM, SCVMM, and SCDPM Millions CEC 2009 requirement Dozens of 3rd party tools, ISVs, and partners Strong community engagement, 27 PowerShell MVPs
The Difference is OBJECTS! Get-Process Where { $_.handles –gt 500 } Sort handles Format-Table Common Windows PowerShell Parser Get-ProcessCmdlet Where Cmdlet Sort Cmdlet FormatCmdlet Windows PowerShell Pipeline Processor
PowerShell Architecture • User Experience • Engine • Managed Elements • Shell • APIs • Cmdlets • WMI • COM • Language • Execution Context • .NET • XML • ADO • Debugger • Object Mgr • ADSI • Native Commands
PowerShell V2 Themes Admin GUIs layer on top of PowerShell • CLI & GUI • Agility in delivering new GUIs • Ensures automation • GUI teaches command line • Standardizes access to managed elements • GUI over PowerShell
PowerShell V2 Themes Scripts are • Easy to use • Safe to operate • Easy to share • Easy to support Production Scripting
PowerShell V2 Themes Expressions, Commands, and ScriptBlocks can run • In the foreground or background • On one or more machines • Over a LAN or a WAN • In restricted or unrestricted environments • Using impersonation or supplied credentials • Initiated by user input or by events Universal Code Execution Model
Demo Power of PowerShell
Why use PowerShell on Windows Embedded? • Change management is always a challenge • Build time • Factory floor • In-field maintenance • Operating system deployment • Commonly known tools • Show their age -> CMD.exe / batch files • Are good, but limited to their environment –> WSH • Are not comfortable to use -> DUA • Are moving towards PowerShell -> SCCM!
Embedded Scenarios 1/2 • Build process • Post FBA image configuration • Image sealing • Factory • Target Device Configuration • Computer name • Domain join • Etc. • HW and SW test/quality assurance
Embedded Scenarios 2/2 • Field • Adjusting user experience (desktop or shell settings) • Network configuration • IP-Settings • Network Share • Firewall • Handling of disk filters/HORM • Remote Management of devices • Device detection • WES Power Management
Getting PowerShell into a WES Image 1/2 Version 1.0 • Required • .NET Framework 2.0 • Web Services for Management (WS-Management) • Optional • Additional infrastructure targeted, e.g.: • WMI • EWF /FBWF manager console application
Getting PowerShell into a WES Image 2/2 Version 2.0 CTP • Required • .NET Framework 3.0 or higher setup • Web Services for Management (WS-Management) • Optional • Windows Management Instrumentation Technologies • Windows Firewall Control Panel, Windows Firewall/Internet Connection Sharing (ICS) • Administrator Account (withpassword) • Microsoft Management Console (MMC) • Group Policy Core Administration MMC Snap-In • COM+ Services • Write Filter ConsoleApplications
Adding Windows PowerShell Manual • Add required/desired components from the WES catalog to the image • Run through FBA • Run PowerShell installation manually Automatic • Add required/desired components from the WES catalog • Create silent setup components out of: • PowerShell Installer X86 • Web Services for Management (WS-Management 1.1)
Demo Creating Silent Setup Components
Demo Windows Embedded Standard Image with PowerShell Version 2.0 CTP
Real World Examples 1/3 • Build process • Add custom configurations • Add Boot Logo switch • Change wallpaper • Turn on EWF
Demo Build Process Samples
Real World Examples 2/3 • Factory • Check for image errors • List installed applications • List installed drivers • Change computer name • Read configuration from XML file • Change name • Reboot
Demo Factory Samples
Real World Examples 3/3 • Field • Enhancing DUA with PowerShell • Using PowerShell as DUA IDE • Static network settings using WMI • Enhancing user experience • Device detection
Device Update AgentArchitecture Development Environment Update Web Server Device Update Script (.DUS file) HTTP/HTTPS XPE Device Translator Validate and Tokenize Device Update Agent Command File (.DUP) Local File Storage
Demo Field Samples
Remote Management with PowerShell • Current limitation • WS-Management not supported in WES 2009 • WMI Remote Management supported • Target computer does not need to have PowerShell • WMI infrastructure required • Special DCOM configuration essential
Demo Remote Management with WMI
Advanced PowerShell Usage 1/3 • Writing custom Cmdlets • Great way to extend the language e.g.: “Start-EWF”, “Get-Sensors”, “Get-Robots” • Use .NET Interop to reach out to native APIs [Cmdlet(VerbsLifecycle.Start, "EWF“, DefaultParameterSetName = “Volume“, SupportsShouldProcess = true)] public class StartEWFCommand : PSCmdlet { …..Implement EWF functionality here }
Hosting the PowerShell Runtime • …… • using System.Management.Automation; • using System.Management.Automation.Host; • using System.Management.Automation.Runspaces; • namespace Microsoft.Samples.PowerShell.Host • { • class Host01 • { ....... • /// <param name="args">Unused</param> • static void Main(string[] args) • { • // Create an instance of this class so that the PowerShell • // will have access to the ShouldExit and ExitCode • // parameters. • Host01 me = new Host01(); • // Create the host instance to use. • MyHostmyHost = new MyHost(me); • // Create and open the runspace, passing the host • // instance just created. • RunspacemyRunSpace = RunspaceFactory.CreateRunspace(myHost); • myRunSpace.Open(); • // Create the invoker and use it to execute the script. • RunspaceInvoke invoker = new RunspaceInvoke(myRunSpace); • string script = “write-host ‘Hello World!’” • invoker.Invoke(script); • ......... • } • }
Advanced PowerShell Usage 2/3 • Host the PowerShell runtime • Get scripting capabilities for your application • Enhance a custom shell • Create a PowerShell provider for your application or Shell • PowerShell-enable your code /application Find the Powershell SDK at:http://msdn.microsoft.com/en-us/library/ms714469(VS.85).aspx
Advanced PowerShell Usage 3/3 • Use PowerShell in Deployment and Maintenance • System Center Configuration Manager • Windows Server Update Services • Windows Deployment Services • Not available on WinPE (no .NET support)
PowerShellCommunity.org Forums Cmdlet Library Blogs Wiki Script Repository Software Directory User Group Outreach
Microsoft Resources • Windows Embedded Team Blog http://blogs.msdn.com/embedded/ • PowerShell Team Blog blogs.msdn.com/powershell • Scripting Guys Script Center microsoft.com/technet/scriptcenter • Hub for official documentation • The Windows PowerShell Toolbox • Script repository and other goodies
Required Slide Track PMs will supply the content for this slide, which will be inserted during the final scrub. Breakout Sessions Windows Embedded Standard and POSReady • EMB303: Windows Embedded Standard 2011: How to Embed Windows 7 into Devices • EMB309: Create a Multitouch and Gesture Aware Device Using Windows Embedded Standard 2011 • EMB308: Componentization Architecture in Windows Embedded Standard 2011 • EMB306: Using Windows PowerShell on Windows Embedded Standard • EMB302: Deploying Windows Embedded with Style • EMB203: Using Windows Deployment Services And Microsoft System Center To Deploy And Manage A Point-of-Service (POS) Windows Embedded CE • EMB301: Technical introduction to the new Windows Embedded CE 6.0 R3 • EMB307: Windows Embedded CE6.0: Tools and Techniques to Face the Embedded Development Challenges • EMB201: Windows Embedded CE and Connectivity • EMB305: From Expression Blend to Windows Embedded CE: build the UI of next generation devices General • EMB202: What a desktop developer needs to know to develop for Windows Embedded • EMB304: Windows Embedded: from sensors to servers • EMB310: Windows Embedded: "Demos only“
Required Slide Track PMs will supply the content for this slide, which will be inserted during the final scrub. HOLs, Interactive, Sunday and Demo Sessions Sunday and Demo Session • EMB101-SUN: Windows Embedded101 • EMB01-Demo: Embedding Windows Seven into devices Hands On Lab • Higher Fidelity internet experience with Internet Explorer Embedded • Introduction to Connection Manager • Creating a custom Windows Embedded Standard 2011 operating system image for an application • New Servicing and Deployment Scenarios in Windows Embedded Standard 2011 • Embedded Enabling Features in Windows Embedded Standard 2011 • Configuring and Using PowerShell to Manage Windows Embedded Standard 2011 Devices Interactive sessions • EMB01-IS: Delivering Applications as Appliances • EMB02-IS: Windows for Devices: Learn about the Future of Windows Embedded • EMB03-IS: The Schtick: Solving Real-Time Challenges, connectivity and GUI with Windows Embedded CE • EMB04-IS: Deploying and maintaining Windows Embedded Standard with different
Required Slide Track PMs will supply the content for this slide, which will be inserted during the final scrub. Useful URLs Other • http://www.wechsler-consulting.de • http://windowsfordevices Blogs • http://blogs.msdn.com/obloch • http://blogs.msdn.com/mikehall • http://blogs.msdn.com/jcoyne Microsoft Web sites • http://windowsembedded.com • http://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspx • http://msdn.microsoft.com/en-us/windowsembedded/standard/default.aspx • http://technet.microsoft.com/en-us/windowsembedded/posready/default.aspx
Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!
Required Slide © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.