Microsoft Desktop Optimization Pack Microsoft Application Virtualization 4

  • Slides: 56
Download presentation

Microsoft Desktop Optimization Pack: Microsoft Application Virtualization 4. 5 Sequencing Deep Dive Nidhi Doshi

Microsoft Desktop Optimization Pack: Microsoft Application Virtualization 4. 5 Sequencing Deep Dive Nidhi Doshi Program Management Microsoft Corporation WCL 310

Session Overview App-V and Sequencing Guidelines and Prep Using the Sequencer Deep dive Customizing

Session Overview App-V and Sequencing Guidelines and Prep Using the Sequencer Deep dive Customizing packages and virtual environment Dynamic Suite Composition (DSC) tool

Session Objectives And Takeaways Understand the Sequencing process See best practices for Sequencing apps

Session Objectives And Takeaways Understand the Sequencing process See best practices for Sequencing apps Learn methods to customize Sequencing to your environment Almost any application can be sequenced!

Theory The core concepts of App-V and Sequencing

Theory The core concepts of App-V and Sequencing

DEM System Center Operations Manager 2007 Translating software inventory into business intelligence Enhancing group

DEM System Center Operations Manager 2007 Translating software inventory into business intelligence Enhancing group policy through change management Dynamically streaming software as a centrally managed service New Proactively managing application and operating system failures Powerful tools to accelerate desktop repair Simplifying deployment and management of Virtual PCs

App-V and Sequencer Package creation Publish Client

App-V and Sequencer Package creation Publish Client

App-V Platform Application Description Runtime Management Application Lifecycle Model Management State Management

App-V Platform Application Description Runtime Management Application Lifecycle Model Management State Management

Practice Getting prepared to Sequence

Practice Getting prepared to Sequence

Sequencing Guidelines Good candidates for virtualization Almost all applications are good candidates!

Sequencing Guidelines Good candidates for virtualization Almost all applications are good candidates!

Sequencing Guidelines Candidates needing an assistance to virtualize Interface with System Device Drivers System

Sequencing Guidelines Candidates needing an assistance to virtualize Interface with System Device Drivers System Software Deploy at runtime or in image Use Non-Virtualized Extensibility Points Embed State or Dependencies Shell Extensions Application Plug-ins Custom Configuration Use DSC to add plug-ins Follow sequencing best practices

Sequencing Prep Setting up the sequencing station Start from a system image or use

Sequencing Prep Setting up the sequencing station Start from a system image or use VM Revert to clean state before sequencing Mirror Client configuration Create a standard virtualization drive

Sequencing Prep Setting up the sequencing station Reserve free space (3 x Application size)

Sequencing Prep Setting up the sequencing station Reserve free space (3 x Application size) Run Microsoft Update and install patches Disable Virus Scanners, Defender, Indexing, Update during sequencing Run Sequencing in an controlled environment

Sequencing Process The key activities of producing a package Installation Launch Save

Sequencing Process The key activities of producing a package Installation Launch Save

Demo Sequencing is as easy as 1 -2 -3

Demo Sequencing is as easy as 1 -2 -3

Theory What just happened? Looking inside the sequencing process

Theory What just happened? Looking inside the sequencing process

Sequencing Outputs Files created and relationships SPRJ OSDs SFT Sequencer Project Application Description Package

Sequencing Outputs Files created and relationships SPRJ OSDs SFT Sequencer Project Application Description Package File ICOs Manifest MSI Setup Shortcut and FTA Icons Standalone Publishing Standalone Setup Utility MSI

Sequencing Process Interpreting collected data Monitored Data Parser Demo-PC→ %COMPUTERNAME% C: Windows → %CSIDL_WINDOWS%

Sequencing Process Interpreting collected data Monitored Data Parser Demo-PC→ %COMPUTERNAME% C: Windows → %CSIDL_WINDOWS% Q: Live. Mtg→ %SFT_MNT%Live. Mtg C: UsersDemo → %USERPROFILE% … SFT Excluder %CSIDL_INTERNET_CACHE% %CSIDL_LOCAL_APPDATA% C: $Recycle. Bin … Classifier %COMPUTERNAME% → App %CSIDL_WINDOWS% → App %SFT_MNT%Live. Mtg→ App %USERPROFILE% → User …

Sequencing Process Virtual view App Data Override Virtual View Merged Virtual View Client System

Sequencing Process Virtual view App Data Override Virtual View Merged Virtual View Client System Data

Sequencing Process File mappings User Machine App Installation App Package App Virtual View

Sequencing Process File mappings User Machine App Installation App Package App Virtual View

Sequencing FAQ Improve your sequencing IQ Q: Do I have to sequence to drive

Sequencing FAQ Improve your sequencing IQ Q: Do I have to sequence to drive Q: ? A: No Q: Will packages sequenced on XP run on Vista? A: In most cases, Yes. Q: Will applications with drivers or services sequence? A: Services generally work. Drivers and unsupported services can be installed locally before App.

Customization But I need more

Customization But I need more

Customizing the OSD Hands-on look inside the OSD What’s in the OSD file? Adding

Customizing the OSD Hands-on look inside the OSD What’s in the OSD file? Adding Scripting Powerful tool to customize packages Event based scripts can be run for any package dependency Can be written in any client installed language Configuring the VE Modifying packages without re-Sequencing

OSD Scripting Flexible execution options When? • Pre/Post Stream • Pre/Post Launch • Post

OSD Scripting Flexible execution options When? • Pre/Post Stream • Pre/Post Launch • Post Shutdown Where? • Inside the VE • Outside the VE How? • Delay before timeout error • Wait for completion • Handle script exit code

OSD VE Customization Virtual environment options and policies TERMINATECHILDREN Attribute • Ends all child

OSD VE Customization Virtual environment options and policies TERMINATECHILDREN Attribute • Ends all child processes of the launched virtual app when the app ends. • Relaxes isolation for virtual app LOCAL_ INTERACTION_ • Useful when virtual applications need ALLOWED to interact with locally installed Policy applications. Debugging Policies • VIRTUAL_SERVICES_DISABLED • VIRTUAL_REGISTRY_DISABLED • VIRTUAL_FILE_SYSTEM_DISABLED

OSD customization How can I customize for my environment?

OSD customization How can I customize for my environment?

New in 4. 5 What more can I do?

New in 4. 5 What more can I do?

Dynamic Suite Composition Increased flexibility managing applications Benefits Independent Servicing Independent Deployment Target Scenarios

Dynamic Suite Composition Increased flexibility managing applications Benefits Independent Servicing Independent Deployment Target Scenarios Plug-ins, Middleware, Shared Components “Small” Dependent Applications Features Multiple Packages in Same Virtual Environment

DSC Demo Using the Dynamic Suiting Composition Tool

DSC Demo Using the Dynamic Suiting Composition Tool

Where to find more information App-V Documentation http: //technet. microsoft. com/enus/library/cc 843848. aspx App-V

Where to find more information App-V Documentation http: //technet. microsoft. com/enus/library/cc 843848. aspx App-V White Papers http: //technet. microsoft. com/enus/appvirtualization/cc 843994. aspx App-V Tech. Net Forums http: //social. technet. microsoft. com/Forums/en. US/category/appvirtualization Documentation Feedback appvdocs@microsoft. com Security Configuration Roles http: //www. microsoft. com/downloads/details. as px? Family. ID=63 d 33346 -b 864 -4284 -8 c 5 fdce 80 c 451 e 83&Display. Lang=en

Demo Sequencer Walkthrough

Demo Sequencer Walkthrough

Sequencing Process Wizard walkthrough Start Package Name for MSI Optional Advanced Options

Sequencing Process Wizard walkthrough Start Package Name for MSI Optional Advanced Options

Sequencing Process Wizard walkthrough Monitor Apply SDs to Package Root Hook Shell and Services

Sequencing Process Wizard walkthrough Monitor Apply SDs to Package Root Hook Shell and Services Stop/Hook Windows Update Upload Empty Environment Monitor File Operations

Sequencing Process Wizard walkthrough Install Privatize Sx. S Assemblies Capture Registry Changes Capture Services

Sequencing Process Wizard walkthrough Install Privatize Sx. S Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Intercept Reboot Requests

Sequencing Process Wizard walkthrough Process Simulate Reboot Operations Download Captured State Create File List

Sequencing Process Wizard walkthrough Process Simulate Reboot Operations Download Captured State Create File List Create VFS Mappings Create Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable

Sequencing Process Wizard walkthrough Application Configuration Add/Delete Applications Define Shortcuts Define File Type Associations

Sequencing Process Wizard walkthrough Application Configuration Add/Delete Applications Define Shortcuts Define File Type Associations

Sequencing Process Wizard walkthrough Monitor File Operations Monitor File I/O Stop Windows Update Upload

Sequencing Process Wizard walkthrough Monitor File Operations Monitor File I/O Stop Windows Update Upload Previous State Create Application Process Privatize Sx. S Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Wait for Process Exit

Sequencing Process Wizard walkthrough Process Simulate Reboot Operations Download Captured State Update File List

Sequencing Process Wizard walkthrough Process Simulate Reboot Operations Download Captured State Update File List Update VFS Mappings Update Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable

Sequencing Process Wizard walkthrough Sequence and Save Create Package Metadata Save Security Descriptors Compute

Sequencing Process Wizard walkthrough Sequence and Save Create Package Metadata Save Security Descriptors Compute Feature Blocks Generate OSDs Generate SFT Generate MSI

New CLI options available SFTSequencer [/Help] [/Install. Package: installpackage] [/Install. Path: installpath] [/Output. File:

New CLI options available SFTSequencer [/Help] [/Install. Package: installpackage] [/Install. Path: installpath] [/Output. File: outputfile] [/Full. Load] [/default: projectfile] (new for 4. 5) [/blocksize: blocksize] (new for 4. 5) [/compression: algorigthm] (new for 4. 5) [/suite: suite] (new for 4. 5) [/upgrade: package] (new for 4. 5) [/msi] (new for 4. 5)

Theory Additional Details

Theory Additional Details

Sequencing Process Opacity and mapping decision tree No Reg/File Opacity File Map Did registry

Sequencing Process Opacity and mapping decision tree No Reg/File Opacity File Map Did registry key or file path already exist? Was file created outside installation path? Yes No Opaque (Override, Pure Virtual) Translucent (Merge, Virtual) No Mapping VFS Mapping Mask Local Data Merge with Local Data Accessed via Q: Data Redirected to Q: End Yes

Sequencing Outputs What is in the OSD? Generic example <SOFTPKG GUID="application GUID" NAME="application name"

Sequencing Outputs What is in the OSD? Generic example <SOFTPKG GUID="application GUID" NAME="application name" VERSION="version string"> <IMPLEMENTATION> <CODEBASE HREF="location“ GUID="package" FILENAME="application“ PARAMETERS=“parameters” SYSGUARDFILE="state file"/> <OS VALUE="platform"/>. . . <OS VALUE="platform"/> <WORKINGDIR>optional working directory</WORKINGDIR> <VIRTUALENV virtual environment configuration options> <ENVLIST>optional variables</ENVLIST> <REGISTRY>optional values</REGISTRY> <POLICIES>optional policies</POLICIES> <DEPENDENCIES> <CODEBASE. . . MANDATORY="TRUE|FALSE"/>. . . <CODEBASE. . . MANDATORY="TRUE|FALSE"/> </DEPENDENCIES> </VIRTUALENV> </IMPLEMENTATION> <DEPENDENCY> <CLIENTVERSION="4. 5. 0. 0"/> <SCRIPT>optional scripts</SCRIPT> </DEPENDENCY> <MGMT_SHORTCUTLIST><SHORTCUT definition>…<SHORTCUT …></MGMT_SHORTCUTLIST> <MGMT_FILEASSOCIATIONS> <PROGIDLIST>shell integration</PROGIDLIST><FILEEXTENSIONLIST>FTAs</FILEEXTENSIONLIST> </MGMT_FILEASSOCIATIONS> </SOFTPKG>

Practice Additional Details

Practice Additional Details

Sequencing Outputs What is in the OSD? <? xml version="1. 0" standalone="no"? > <SOFTPKG

Sequencing Outputs What is in the OSD? <? xml version="1. 0" standalone="no"? > <SOFTPKG GUID="0015 DC 5 C-FED 6 -40 CC-9 F 77 -0 FCE 61 C 9 FE 76" NAME="Microsoft Office Live Meeting 2007" VERSION="8. 0. 6362. 116"> <IMPLEMENTATION> <CODEBASE HREF="RTSPS: //%SFT_SOFTGRIDSERVER%: 322/Live Meeting Project. sft" GUID="5665 AE 50 -7 AB 5 -4 B 2 B-A 334 -0 E 296 ABC 44 E 0" PARAMETERS="" FILENAME="%CSIDL_APPDATA%Microsoft OfficeLive Meeting 8ConsolePWConsole. exe" SYSGUARDFILE="Live. Mtgosguard. cp" SIZE="55774767"/> <WORKINGDIR/> <VIRTUALENV TERMINATECHILDREN="FALSE"> <ENVLIST/> <REGISTRY/> </VIRTUALENV> <VM VALUE="Win 32"> <SUBSYSTEM VALUE="windows"/> </VM> <OS VALUE="Win. Vista"/> </IMPLEMENTATION> …

Sequencing Outputs What is in the OSD? … <DEPENDENCY> <CLIENTVERSION="4. 5. 0. 0"/> </DEPENDENCY>

Sequencing Outputs What is in the OSD? … <DEPENDENCY> <CLIENTVERSION="4. 5. 0. 0"/> </DEPENDENCY> <PACKAGE NAME="Live Meeting"/> <ABSTRACT>Parent product</ABSTRACT> <MGMT_SHORTCUTLIST> <SHORTCUT LOCATION="%CSIDL_PROGRAMS%Microsoft Office Live Meeting 2007" FILENAME="Microsoft Office Live Meeting 2007. lnk" OVERRIDDEN="FALSE" DISPLAY="Microsoft Office Live Meeting 2007" ICON="%SFT_MIME_SOURCE%/Live Meeting Project Icons/ Microsoft Office Live Meeting 2007 8. 0. 6362. 116. ico"/> </MGMT_SHORTCUTLIST> <MGMT_FILEASSOCIATIONS> <PROGIDLIST/> <FILEEXTENSIONLIST/> </MGMT_FILEASSOCIATIONS> </SOFTPKG>

OSD Scripting Example – Registry “Passthru” … <DEPENDENCY> <SCRIPT EVENT="LAUNCH" TIMING="PRE" PROTECT="FALSE" WAIT="TRUE"> <HREF>reg

OSD Scripting Example – Registry “Passthru” … <DEPENDENCY> <SCRIPT EVENT="LAUNCH" TIMING="PRE" PROTECT="FALSE" WAIT="TRUE"> <HREF>reg import "%CSIDL_LOCAL_APPDATA%cmd. reg"</HREF> </SCRIPT> <SCRIPT EVENT="SHUTDOWN" TIMING="POST" PROTECT="TRUE" WAIT="TRUE"> <HREF>reg export "HKEY_CURRENT_USERConsole" “ %CSIDL_LOCAL_APPDATA%cmd. reg" /y</HREF> </SCRIPT> </DEPENDENCY> …

OSD Scripting Example – Prerequisite check … <DEPENDENCY> <SCRIPT EVENT="LAUNCH" PROTECT="TRUE" TIMING="PRE" WAIT="TRUE“ SUCCESSRESULT="1"

OSD Scripting Example – Prerequisite check … <DEPENDENCY> <SCRIPT EVENT="LAUNCH" PROTECT="TRUE" TIMING="PRE" WAIT="TRUE“ SUCCESSRESULT="1" ABORTRESULT="0"> <SCRIPTBODY> @echo offn set net 35 loc=%windir%\Microsoft. NET\Framework\v 3. 5n set file 35=%net 35 loc%\csc. exen if not exist " %file 35%" (n echo. NET 3. 5 Framework must be installed for this application. n pausen exit 0 )n exit 1 </SCRIPTBODY> </SCRIPT> <DEPENDENCY> …

OSD VE Customizations Example – Add registry settings Modify application configurable settings without re-Sequencing

OSD VE Customizations Example – Add registry settings Modify application configurable settings without re-Sequencing … <VIRTUALENV> <REGISTRY> … <REGKEY HIVE="HKCU" KEY="SoftwareMicrosoftTracingDemo. App"> <REGVALUE REGTYPE="REG_DWORD" NAME="Enable. File. Tracing">1 </REGVALUE> <REGVALUE REGTYPE="REG_DWORD" NAME="Enable. Debugger. Tracing">1 </REGVALUE> </REGKEY> … </REGISTRY> </VIRTUALENV> …

OSD VE Customizations Example – Add environment variables Append application env variables for users

OSD VE Customizations Example – Add environment variables Append application env variables for users or sites … <VIRTUALENV> <ENVLIST> … <ENVIRONMENT VARIABLE="PATH"> %PATH%; %SFT_MNT%vs 2005Microsoft SDKbin. ; </ENVIRONMENT> <ENVIRONMENT VARIABLE="W 2 K 3 DDK"> %SFT_MNT%vs 2005winddk3790~1. 183 </ENVIRONMENT> … </ENVLIST> </VIRTUALENV> …

OSD Dependencies Example of configuring suited applications <? xml version="1. 0" standalone="no"? > <SOFTPKG

OSD Dependencies Example of configuring suited applications <? xml version="1. 0" standalone="no"? > <SOFTPKG GUID="99 D 18 E 63 -AD 5 E-4308 -9 B 22 -F 8 E 9 B 45 BD 246" NAME="Microsoft Office Outlook" VERSION="12. 0. 6212. 1000"> <IMPLEMENTATION> … <VIRTUALENV TERMINATECHILDREN="FALSE"> <DEPENDENCIES> <CODEBASE HREF="RTSPS: //%SFT_SOFTGRIDSERVER%: 322/Live Meeting Project. sft" GUID="5665 AE 50 -7 AB 5 -4 B 2 B-A 334 -0 E 296 ABC 44 E 0" PARAMETERS="" FILENAME="%CSIDL_APPDATA%Microsoft OfficeLive Meeting 8ConsolePWConsole. exe" SYSGUARDFILE="Live. Mtgosguard. cp" SIZE="55774767" MANDATORY="TRUE" /> </DEPENDENCIES> <ENVLIST /> </VIRTUALENV> … </IMPLEMENTATION> … </SOFTPKG>

question & answer

question & answer

Track Resources → Want to find out which Windows Client sessions are best suited

Track Resources → Want to find out which Windows Client sessions are best suited to help you in your deployment lifecycle? → Want to talk face-to-face with folks from the Windows Product Team? Meet us today at the Springboard Series Lounge, or visit us at www. microsoft. com/springboard Series The Springboard Series empowers you to select the right resources, at the right technical level, at the right point in your Windows® Client adoption and management process. Come see why Springboard Series is your destination for Windows 7.

Resources www. microsoft. com/teched www. microsoft. com/learning Sessions On-Demand & Community Microsoft Certification &

Resources www. microsoft. com/teched www. microsoft. com/learning Sessions On-Demand & Community Microsoft Certification & Training Resources http: //microsoft. com/technet http: //microsoft. com/msdn Resources for IT Professionals Resources for Developers www. microsoft. com/learning Microsoft Certification and Training Resources

Complete an evaluation on Comm. Net and enter to win!

Complete an evaluation on Comm. Net and enter to win!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2009 Microsoft Corporation. All rights reserved. Microsoft, 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.