Alexander Wechsler Enterprise Architect|CEO Microsoft Regional Director Germany|eMVP Wechsler Consulting GMBH & Co.

Download Report

Transcript Alexander Wechsler Enterprise Architect|CEO Microsoft Regional Director Germany|eMVP Wechsler Consulting GMBH & Co.

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…

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 Software
Phenomenal rate of adoption
PowerShell Downloads
2.5
2
Millions
1.5
Shipped with
Windows Server 2008
Over 2 million downloads in
less than 18 months
Windows XP, Windows Vista,
Windows Server 2003 and 2008
Adopted by Exchange, SQL, SCOM,
SCVMM, and SCDPM
1
CEC 2009 requirement
0.5
0
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
FormatTable
Common Windows PowerShell Parser
GetProcess
Cmdlet
Where
Cmdlet
Sort
Cmdlet
Format
Cmdlet
Windows PowerShell Pipeline Processor
PowerShell Architecture
User
Experience
Engine
Managed
Elements
Cmdlets
Shell
APIs
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
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 (with password)
Microsoft Management Console (MMC)
Group Policy Core Administration MMC Snap-In
COM+ Services
Write Filter Console Applications
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)
Creating Silent Setup Components
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
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
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 Agent
Architecture
Development Environment
Update
Web Server
Device
Update
Script
(.DUS file)
HTTP/HTTPS
Translator
Command
File (.DUP)
Validate
and
Tokenize
XPE Device
Device Update Agent
Local
File Storage
Device Update Agent Configuration
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
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.
MyHost myHost = new MyHost(me);
// Create and open the runspace, passing the host
// instance just created.
Runspace myRunSpace = 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
Breakout Sessions
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“
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
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)
HOLs, Interactive, Sunday and Demo Sessions
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
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
Sunday and Demo Session
EMB101-SUN: Windows Embedded101
EMB01-Demo: Embedding Windows Seven into devices
Useful URLs
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
Blogs
http://blogs.msdn.com/obloch
http://blogs.msdn.com/mikehall
http://blogs.msdn.com/jcoyne
Other
http://www.wechsler-consulting.de
http://windowsfordevices
Complete an evaluation
on CommNet and enter to
win an Xbox 360 Elite!
© 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.