Вы находитесь на странице: 1из 55

Session Code: VIR450

Microsoft Application Virtualization 4.5 Sequencing Deep Dive


Chris Lord Senior Program Manager Microsoft

DEM System Center Operations Manager 2007

Translating software inventory into business intelligence

Enhancing group policy through change management

Dynamically streaming (formerly SoftGrid)

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

Session Overview
What to know, what to do, and how to do it
Theory
Inside the App-V Application Model Behind the Scenes of the Sequencing Process A View from Inside the Virtual File System

Demonstration Practice
A Look at the Artifacts (OSDs, SFTs, Manifests) Advanced OSD Scripting and Configuration Applying Virtual Environment Policies
4

What to Know

Inside the concepts and behind the scenes of the sequencing process.

Sequencing Process
The sequencing process at 30,000 feet
1. Install the Application 2. Run the Application

3. Customize
6

4. Save the Package

Application Model
Basic components of an application model
Application Description

Runtime Management

Application Model

Lifecycle Management

State Management
7

Application Model
Application description
Application Description
An application is described by Open Software Description (OSD), an XML vocabulary for software components and their relationships to other components.

An OSD contains:

Runtime Management

Application Model

Lifecycle Management

State Management
8

Name, GUID, version information Platform and environment settings Dependencies Target package and application Reference to immutable state Shell integration Pre/Post processing scripts

Application Model
Lifecycle management
Application Description
The application lifecycle is managed through a single self-contained package, the SFT, that captures and contains installation and application data and metadata.

Runtime Management

Application Model

Lifecycle Management

A package contains:
All application assets Classifications and versions Immutable state Security descriptors History of servicing Optimized streaming layout

State Management
9

Application Model
State management
Application Description
State is managed by separating it from the system, classifying it into public and private data, making it portable across machines and users, and isolating changes at runtime.

Private State is:

Runtime Management

Application Model

Lifecycle Management

Specific to each user Changes isolated to each user Attached to user profile, not system
Public State is:

State Management
10

Shared across all users Changes isolated to specific users Attached to system, not user profile

Application Model
Runtime management
Application Description
The runtime of an application is managed through a virtual environment instance associated with the application package.

Runtime Management

Application Model

Lifecycle Management

The Virtual Environment:

Manages namespaces and visibility Ensures isolation between objects Enforces interaction policies Directs modifications

State Management
11

Sequencing Process
The key activities of producing a package
Installation Phase

Launch Phase Customization Phase Save Phase


12

Sequencing Process
Behind the scenes of the install phase
Start Monitor Install Process

Package Name for MSI Optional Advanced Options

Apply SDs to Package Root Intercept Shell, AppInfo, Service Controller Stop/Intercept Windows Update Upload Empty Environment Monitor File Operations

Privatize SxS Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Intercept Reboot Requests

Simulate Reboot Operations Download Captured State Privatize SxS Assemblies Create File List Create Virtual Registry Create Virtual FS Mappings Create Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable

13

Sequencing Process
Behind the scenes of the launch phase
Configure Launch Process Sequence/Save

Add/Delete Applications Define Shortcuts Define File Type Associations

Monitor File Operations Monitor File I/O Stop Windows Update Upload Previous State Create Application Process Privatize SxS Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Wait for Process Exit

Simulate Reboot Operations Download Captured State Privatize SxS Assemblies Create File List Create Virtual Registry Create Virtual FS Mappings Create Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable

Create Package Metadata Save Security Descriptors Compute Feature Blocks Generate OSDs Generate SFT Generate MSI

14

Sequencing Process
How opacity and file mappings are determined
Opacity VFS Map

No

Did registry key or file path already exist?

Yes

No

Was file created outside installation path?

Yes

Opaque (Override, Pure Virtual) Mask Local Data

Translucent (Merge, Virtual) Merge with Local Data

No Mapping Data Accessed via Q:

VFS Mapping Data Redirected to Q:

End

End

15

Sequencing Process
Behind the scenes of the virtual file system
Pre-Install
Drive C: Documents Abc Aaa.txt Xyzzy Plugh.doc Poof.txt Windows System32 Explorer.exe Win.ini Drive Q: FooApp.100 Foo Foo.ini Y2 Xyzzy Poof.txt Windows Foo.dll Bar.dll Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat Win.ini Drive Q: FooApp.100

Installation
Drive C: Documents Abc Abc.txt Xyz Xyz.txt

VFS Mappings
C:\Windows\Foo.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Foo.dll C:\Windows\Bar.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Bar.dll C:\Documents\Abc\Abc.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Abc.txt C:\Documents\Abc\Xyz\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyz\ C:\Documents\Abc\Xyz\Xyz.txt=Q:\Foo \VFS\CSIDL_PERSONAL\Xyz\Xyz.txt C:\Documents\Foo\=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\ C:\Documents\Foo\Foo.ini=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\Foo.ini C:\Documents\Y2\=Q:\Foo\ VFS\CSIDL_PERSONAL\Y2\ C:\Documents\Poof.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Poof.txt C:\Documents\Xyzzy\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyzzy\

Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll

Virtual View
Drive C: Documents Abc Aaa.txt Abc.txt Xyz Xyz.txt Foo Foo.ini Y2 Plugh.doc Windows System32 Explorer.exe Foo.dll Bar.dll

16

Sequencing Process
Creating system and user independent packages
Registry and File System Mappings osguard.cp

Parser

Excluder

Classifier

17

CLORD-NOTE %COMPUTERNAME% C:\Users\clord\AppData\Roaming %CSIDL_APPDATA% C:\Users\Public\Documents %CSIDL_COMMON_DOCUMENTS% C:\Users\clord\Desktop %CSIDL_DESKTOPDIRECTORY% C:\Windows\Fonts %CSIDL_FONTS% C:\Users\clord\AppData\Local %CSIDL_LOCAL_APPDATA% C:\Users\clord\Documents %CSIDL_PERSONAL% C:\Program Files %CSIDL_PROGRAM_FILES% C:\Windows\System32 %CSIDL_SYSTEM% C:\Windows %CSIDL_WINDOWS% Q: %SFT_MNT% Q:\TextPad.510 %SFT_MNT%\TextPad.510 C:\Users\clord %USERPROFILE%

%CSIDL_INTERNET_CACHE% %CSIDL_LOCAL_APPDATA% %CSIDL_PROFILE%\Local Settings %CSIDL_WINDOWS%\Debug\ %TMP% C:\$Recycle.Bin\

%COMPUTERNAME% System %CSIDL_APPDATA% User %CSIDL_COMMON_DOCUMENTS% System %CSIDL_DESKTOPDIRECTORY% User %CSIDL_FONTS% System %CSIDL_LOCAL_APPDATA% User %CSIDL_PERSONAL% User %CSIDL_PROGRAM_FILES% System %CSIDL_SYSTEM% System %CSIDL_WINDOWS% System %SFT_MNT% System %SFT_MNT%\TextPad.510 System %USERPROFILE% User

What to Do

Sequencing an application is as easy as 1-2-3: install, launch, save.

18

How to Do It

How to tailor the sequencing process and artifacts to your environment and needs.

19

Sequencing Artifacts
Where they are created and consumed
File Description Sequencing project with references to OSDs, default package settings, list of all parser items, classifications and exclusions. Binary file containing all assets and state organized into streamable feature blocks. Optionally a DSFT (Differential SFT).

.SPRJ

.SFT

.OSD

Description of an application including environment, dependencies, package location, shell integration, scripts.
Icons associated with each shortcut or FTA defined in an OSD or Manifest. These are extracted from application resources.

.ICO

.XML Manifest
.MSI
20

Publishing parameters for all applications in a package. Includes definitions of shell integration (FTAs, Shortcuts, DDE, etc.).
Installer to publish and load (install) a virtual application package in standalone environments. Embeds all but SFT.
Generated as an output

Consumed as an input

Sequencing Artifacts
Relationships between sequencing output files
SPRJ
Sequencer Project

OSDs
Application Description

SFT
Package File

ICOs
Shortcut and FTA Icons

Manifest
Standalone Publishing

MSI Setup
Standalone Setup Utility

MSI 21

Inside the OSD


A look at the general organization of the OSD
<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 VERSION="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> 22

Inside the OSD


Controlling when, where and how a script runs
<DEPENDENCY> <SCRIPT TIMING=PRE|POST EVENT=STREAM|LAUNCH|SHUTDOWN PROTECT=TRUE|FALSE WAIT=TRUE|FALSE TIMEOUT=n SUCCESSRESULT=n ABORTRESULT=n> <SCRIPTBODY> batch script commands </SCRIPTBODY> </SCRIPT> </DEPENDENCY>
When a script runs: before or after the specified event. There is no preshutdown option.

Where the script runs: inside the virtual (protected) environment or outside.

Optional action to take on script exit: continue only on specific success result, or silently fail on specific abort result.

How the script runs: synchronously or asynchronously, and optionally seconds to wait for synchronous scripts.

Commands to execute as a batch script in the users context. May also use a single HREF instead to run a single program or external script.

23

Inside the OSD


Examples of OSD scripting
Pre-Launch/Post-Shutdown Registry Passthru
<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_USER\Console" "%CSIDL_LOCAL_APPDATA%\cmd.reg" /y</HREF> </SCRIPT>

Pre-Launch Script to Check Prerequisites


<SCRIPT EVENT="LAUNCH" PROTECT="TRUE" TIMING="PRE" WAIT="TRUE SUCCESSRESULT="1" ABORTRESULT="0"> <SCRIPTBODY> @echo off\n set net35loc=%windir%\\Microsoft.NET\\Framework\\v3.5\n set file35=%net35loc%\\csc.exe\n if not exist &quot;%file35%&quot; (\n echo .NET 3.5 Framework must be installed for this application.\n pause\n exit 0 )\n exit 1 </SCRIPTBODY> </SCRIPT> 24

Inside the OSD


Examples of registry and environment settings
Custom Registry Settings to Enable Diagnostics
<VIRTUALENV> <REGISTRY> <REGKEY HIVE="HKCU" KEY="\Software\Microsoft\Tracing\uccp\Communicator"> <REGVALUE REGTYPE="REG_DWORD" NAME="EnableFileTracing">1</REGVALUE> <REGVALUE REGTYPE="REG_DWORD" NAME="EnableDebuggerTracing">1</REGVALUE> </REGKEY> </REGISTRY> </VIRTUALENV>

Environment Variables to Setup Paths


<VIRTUALENV> <ENVLIST> <ENVIRONMENT VARIABLE="PATH">%PATH%;%SFT_MNT%\vs2005\Microsoft SDK\bin\.;</ENVIRONMENT> <ENVIRONMENT VARIABLE="W2K3DDK">%SFT_MNT%\vs2005\winddk\3790~1.183</ENVIRONMENT> <ENVIRONMENT VARIABLE="W2K3SP1DDK">%SFT_MNT%\vs2005\winddk\3790~1.181</ENVIRONMENT> </ENVLIST> </VIRTUALENV>

25

Inside the OSD


Example of configuring suited applications
<SOFTPKG GUID="323CB4B5-8FA6-493F-BB2B-AC6823E8C7CF NAME="Internet Explorer" VERSION="7.0.6000.16643"> <IMPLEMENTATION> <CODEBASE HREF="FILE://C:\Packages\IE\IE .sft" GUID="0AB02546-B009-4C13-83B5-834966190299" PARAMETERS="" FILENAME="%CSIDL_PROGRAM_FILES%\Internet Explorer\iexplore.exe" SYSGUARDFILE="Empty\osguard.cp" SIZE="68712" /> <WORKINGDIR>%CSIDL_PROGRAM_FILES%\Internet Explorer</WORKINGDIR> <VIRTUALENV TERMINATECHILDREN="FALSE"> <DEPENDENCIES> <CODEBASE HREF="FILE://C:\Packages\JRE\JRE_6.0.sft" SYSGUARDFILE="JRE6.5\osguard.cp GUID="F6F0CDA4-E58D-4555-993E-3691E116326F" MANDATORY=FALSE" /> <CODEBASE HREF="FILE://C:\Packages\Flash\Flash_9.0.sft" SYSGUARDFILE="12577.v01\osguard.cp" GUID="B276AD72-4A9E-4FDF-B8F5-7F0BEA8193DC MANDATORY=FALSE" /> <CODEBASE HREF="FILE://C:\Packages\SilverLight\SL_1.0.sft" SYSGUARDFILE="12578.v01\osguard.cp" GUID="D4ECDEAF-27E4-4ABC-B7A1-79B049EE5017 MANDATORY=FALSE" /> </DEPENDENCIES> </VIRTUALENV> </IMPLEMENTATION> </SOFTPKG>

26

Inside the OSD


Virtual environment options and policies
Attribute or Policy
TERMINATECHILDREN

Description
Causes all children of the launched virtual application to be terminated when the application terminates. Set when you force stop to monitoring. Sometimes needed with apps that spawn tray widgets. Disables isolation of named objects and creates COM objects in the global namespace, first attempting to resolve them locally. Sometimes necessary when virtual applications need to interact with locally installed applications.

LOCAL_INTERACTION_ALLOWED

VIRTUAL_SERVICES_DISABLED

Disables the virtualization of services. Typically used for diagnostics. Default is enabled.

VIRTUAL_REGISTRY_DISABLED

Disables virtualization of the registry. Typically used for diagnostics. Default is enabled.

VIRTUAL_FILE_SYSTEM_DISABLED
Set

Disables virtualization of the file system. Typically used for diagnostics. Default is enabled.

using TERMINATECHILDREN=TRUE attribute in VIRTUALENV element. Applies to each application independently, even within same package. Set using <POLICIES><policy>TRUE|FALSE</policy></POLICIES> in OSD. First OSD launched determines VE policy for lifetime of instance.

27

Conclusion
Where we have been today
Application Description Runtime Management Application Model Lifecycle Management

Inside the App-V Application Model


Behind the Installation Phase Behind the Launch Phase Inside Customization Inside Artifacts

State Management

28

More to Explore
Some useful sites, tools, forums and blogs
Resource Websites https://connect.microsoft.com http://support.microsoft.com/kb/932137 http://support.microsoft.com/kb/939796 http://www.virtualapp.net/sft-explorer.html Tools http://www.loginconsultants.com/ http://www.tmurgent.com/ Blogs and Forums http://forums.microsoft.com/TechNet/defaul t.aspx?ForumGroupID=497&SiteID=17 http://blogs.technet.com/softgrid/ http://www.softgridguru.com/ http://blogs.technet.com/virtualworld/ http://www.brianmadden.com/ http://www.softgridblog.com/
29

Description Microsoft Application Virtualization 4.5 RC Release available June 16 Sequencing Best Practices and Office 2007 Prescriptive Guidance SFT Explorer by Kalle Saunamki, an MVP, that allows detailed look inside SFTs OSD Editor that supports easy customization and dynamic suiting The illustrated OSD and other App-V tools and info by Tim Mangan, an MVP Application Virtualization forums supported by MVPs and product team App-V (SoftGrid) product team blog Forum run by Ruben Spruijt, an MVP Blog by Justin Zarb and Andrew Bennett Brian Madden on App Delivery Topics Blog by Rodney Medina, an MVP

Related App-V Content


Breakout Sessions VIR359 VIR352 App-V 4.5 Features (6/12 4:30) App-V 4.5 Enterprise Management and SCCM (6/13 10:15)

Interactive Theater Sessions

VIR50-TLC VIR51-TLC VIR53-TLC VIR55-TLC VIR56-TLC


Hands-on Labs VIR52-HOL VIR57-HOL VIR58-HOL

Application Virtualization Discussion Application Virtualization and Presentation Virtualization Q&A Application Virtualization Package and Data Management Application Virtualization Customer Discussion Application Virtualization 4.5 Customer Stories

Application Virtualization 4.5 Publishing Lab Application Virtualization 4.5 Sequencing Lab (Basics) Application Virtualization 4.5 Sequencing Lab (Advanced)

31

Slides for VIR53-TLC

Additional slides for Microsoft Application Virtualization 4.5 Package and Data Management session.

32

Session Code: VIR53-TLC

Microsoft Application Virtualization 4.5 Package and Data Management


Chris Lord Senior Program Manager Microsoft

33

Session Overview
Inside out, outside in and inside out again
Inside Out
How Files Get Into a Package How User and Application Files are Classified

Outside In
How the File System Organizes Package Volumes What Happens During Launch, Upgrade, Shutdown What Happens during Unload/Delete, Repair/Clear

Inside Out
What the File System Looks Like from Inside What the Virtual View Looks Like from Inside
34

Sequencing Process
How application and user files are classified
Launch Phase File Start Was created during install phase?
No No

User File

Is type cp|exe| dll|com|config| manifest?

Yes

Is file in csidl_ profile,csidl_appdata| userprofile?


No

Yes Yes

End

Yes

Is file in csidl_program_files\ Microsoft Shared?

No

Is type dat|ini|dot| mdw?


No Yes

Application File

Install Phase File 35

Inside State Management


Isolation from local system and user state

Virtualized Application Processes

User-Specific Application Package Environment


Local Application Processes Shared Application Package Environment

User State

Package State

Logged on User on Local System


36

User and System State

Inside State Management


Isolation between multiple application packages

Package A Application Processes

Package B Application Processes

Package A User State

Package A User-Specific Environment


Package A Shared Environment

Package B User-Specific Environment


Package B Shared Environment

Package B User State

Package A State

Package B State

Logged on User on Local System

User and System State

37

Inside State Management


Isolation between multiple users
Package A User 1 Application Processes Package A User 1-Specific Environment Package A User 2 Application Processes Package A User 2-Specific Environment

Package A User 1 State

Package A User 2 State

Package A Shared Environment

Package A State

User 1 State

Logged on User 1

Logged on User 2

User 2 State

Local System

System State

38

Inside State Management


Dynamic suite composition state management
Package C and D Application Processes Package A Application Processes Package C and D User-Specific Environment

Package C User State

Package A User State

Package A User-Specific Environment


Package A Shared Environment

Dependent Package D Environment


Primary Package C Environment

Package D State

Package A State

Package C State

Logged on User on Local System

User and System State

39

Dynamic Suite Composition


Four typical scenarios for suiting applications
Application Stack
Suite Add-on App Add-on App
Example: Office, Communicator, and Live Meeting published together.

Shared Base Application


Foundation

Applet 1

Applet 2

Applet 3

Example: Oracle with separately published applications, possibly with separate entitlements.

Plug-in Collection
Primary App

Shared Middleware or Utility Application


App 1 App 2 App 3

Plug-in 1

Plug-in 2

Utility
Example: JRE, Acrobat Reader or Snag-It with separately published primary applications.

Example: Internet Explorer with Silverlight, JRE and Flash, each updated separately. 40

Volume Organization
Global file system container volumes
System Location User Location Name and Initialization sftfs.fsd
File System Data Cache

Content All loaded package data from streamed content. This is RO and fully recoverable by restreaming package content. New data from allowed system processes not associated with any package or virtual environment

Per System Content

File System Install

sffs.fsg
File System User Cache

File System Install

Application Data User Data in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access. Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
Located

41

Volume Organization
Per-package file system container volumes
System Location User Location Name and Initialization GlblVol_sftfs_v1_S-1-5-20.pkg Per System Content
Global Package Volume

Content Modified Application-Specific Package Data from System Processes; System Processes Settings.cp New or Modified User-Specific Package Data from Allowed System Processes

Load or Shutdown of First Package Launch UsrVol_sftfs_v1.pkg

Global User Volume

Load or Shutdown of First Package Launch GlblVol_sftfs_v1_<SID>.pkg

Per User Content

App Data Isolation Volume

Load or Shutdown of User Launch of Package UsrlVol_sftfs_v1.pkg


User Package Volume

New or Modified ApplicationSpecific Package Data

Load or Shutdown of User Launch of Package

New or Modified User-Specific Package Data; User Processes Settings.cp

42

Application Data User Data in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access. Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
Located

Volume Organization
Package volume names and locations
Global Package Volume

User Package Volume

File System Data Cache

File System User Cache

Global User Volume

App Data Isolation Volume

43

Volume Management
What happens during launch and shutdown
Initial Launch
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Shutdown
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Subsequent Launch
Global User Volume Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Per System

Global User Volume


UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.tmp

Global User Volume


UsrVol_sftfs_v1.tmp

Global Package Volume


GlblVol_sftfs_v1_S-1-5-20.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

Global Package Volume


GlblVol_sftfs_v1_S-1-5-20.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

App Data Isolation Volume

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.tmp

User Package Volume


UsrVol_sftfs_v1.tmp

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.tmp

User Package Volume


UsrVol_sftfs_v1.tmp

Per User

GlblVol_sftfs_v1_<SID>.tmp

User Package Volume


UsrVol_sftfs_v1.tmp Application Data User Data

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg

User Package Volume


UsrVol_sftfs_v1.pkg

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg

User Package Volume


UsrVol_sftfs_v1.pkg

44

Volume Management
What happens during package upgrade
Subsequent Launch
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Shutdown
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Per System

Global User Volume


UsrVol_sftfs_v1.tmp

Updated Replaced Data Data

Global User Volume


UsrVol_sftfs_v1.tmp

Global Package Volume


GlblVol_sftfs_v1_S-1-5-20.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

File System Data Cache

Global Package Volume


GlblVol_sftfs_v1_S-1-5-20.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

App Data Isolation Volume

User Package Volume


UsrVol_sftfs_v1.tmp

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.tmp

User Package Volume


UsrVol_sftfs_v1.tmp

Per User

GlblVol_sftfs_v1_<SID>.tmp

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg Application Data User Data

User Package Volume


UsrVol_sftfs_v1.pkg

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg

User Package Volume


UsrVol_sftfs_v1.pkg

45

Volume Management
What happens during administrative actions
Repair/Clear
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp

Load
Global User Volume
UsrVol_sftfs_v1.tmp

Unload/Delete
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.pkg

Per System

Package Data

Global Package Volume


GlblVol_sftfs_v1_S-1-5-20.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

Global User Volume


UsrVol_sftfs_v1.pkg

File System Data Cache


sftfs.fsd

App Data Isolation Volume

User Package Volume


UsrVol_sftfs_v1.tmp

Per User

GlblVol_sftfs_v1_<SID>.tmp

User Package Volume


UsrVol_sftfs_v1.pkg Application Data User Data

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg

User Package Volume


UsrVol_sftfs_v1.pkg

App Data Isolation Volume


GlblVol_sftfs_v1_<SID>.pkg

46

Inside the File System


A view from inside the file system
A B
User Process View

A B C E

X Y Z F
D Z F B C A B Y Z

X Y Z
E

System Process View

User Package Volume

Global User Volume

App Data Isolation Volume

Global Package Volume

A B C
File System Data Cache

App Data User Data

X Y Z

47

Sequencing Process
Behind the scenes of the virtual file system
Pre-Install
Drive C: Documents Abc Aaa.txt Xyzzy Plugh.doc Poof.txt Windows System32 Explorer.exe Win.ini Drive Q: FooApp.100 Foo Foo.ini Y2 Xyzzy Poof.txt Windows Foo.dll Bar.dll Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat

Installation
Drive C: Documents Abc Abc.txt Xyz Xyz.txt

VFS Mappings
C:\Windows\Foo.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Foo.dll C:\Windows\Bar.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Bar.dll C:\Documents\Abc\Abc.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Abc.txt C:\Documents\Abc\Xyz\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyz\ C:\Documents\Abc\Xyz\Xyz.txt=Q:\Foo \VFS\CSIDL_PERSONAL\Xyz\Xyz.txt C:\Documents\Foo\=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\ C:\Documents\Foo\Foo.ini=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\Foo.ini C:\Documents\Y2\=Q:\Foo\ VFS\CSIDL_PERSONAL\Y2\ C:\Documents\Poof.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Poof.txt C:\Documents\Xyzzy\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyzzy\

Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll

48

Inside the Virtual File System


A view from inside the virtual file system
Local System
Drive C: Documents Abc Aaa.txt Xyzzy Plugh.doc Poof.txt Zork.doc Windows System32 Explorer.exe Win.ini C:\Windows\Foo.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Foo.dll C:\Windows\Bar.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Bar.dll C:\Documents\Abc\Abc.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Abc.txt C:\Documents\Abc\Xyz\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyz\ C:\Documents\Abc\Xyz\Xyz.txt=Q:\Foo \VFS\CSIDL_PERSONAL\Xyz\Xyz.txt C:\Documents\Foo\=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\ C:\Documents\Foo\Foo.ini=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\Foo.ini C:\Documents\Y2\=Q:\Foo\ VFS\CSIDL_PERSONAL\Y2\ C:\Documents\Poof.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Poof.txt C:\Documents\Xyzzy\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyzzy\

VFS Mappings

Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll

Virtual View
Drive C: Documents Abc Aaa.txt Abc.txt Xyz Xyz.txt Foo Foo.ini Y2 Plugh.doc Zork.doc Windows System32 Explorer.exe Foo.dll Bar.dll Win.ini

49

Resources for IT Professionals


www.microsoft.com/teched
TechTalks Live Simulcasts TechEd Bloggers Virtual Labs

http://microsoft.com/technet

Evaluation licenses, pre-released products, and MORE!

Related App-V Content


Breakout Sessions VIR359 VIR352 VIR450 Microsoft Application Virtualization 4.5 Features Microsoft Application Virtualization 4.5 Enterprise Management and SCCM Application Virtualization 4.5 Sequencing Deep Dive

Interactive Theater Sessions

VIR50-TLC VIR51-TLC VIR53-TLC VIR55-TLC VIR56-TLC


Hands-on Labs VIR52-HOL VIR57-HOL VIR58-HOL

Application Virtualization Discussion Application Virtualization and Presentation Virtualization Q&A Application Virtualization Package and Data Management Application Virtualization Customer Discussion Application Virtualization 4.5 Customer Stories

Application Virtualization 4.5 Publishing Lab Application Virtualization 4.5 Sequencing Lab (Basics) Application Virtualization 4.5 Sequencing Lab (Advanced)

MDOP activities at TechEd


CLI358, Thursday, June 12 8:30 AM - 9:45 AM, S320 A MDOP: Managing GPOs with Advanced Group Policy Management; Mark Gray, Winni Verhoef CLI350, Thursday, June 12 2:45 PM - 4:00 PM, S220 E MDOP: Microsoft Diagnostics and Recovery Toolset (DaRT); Jameel Khalfan

Also: VIR450, MGT371

Breakouts IC / TLC

VIR359, Thursday, June 12 4:30 PM - 5:45 PM, S230 E Microsoft Desktop Optimization Pack: Microsoft Application Virtualization 4.5 (Formerly SoftGrid) Features, Gene Ferioli VIR362, Friday, June 13 2:45 PM - 4:00 PM, S310 C Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization, Formerly from Kidaro; Niamh Burke, Eric Borst CLI370, Friday, June 13 4:30 PM - 5:45 PM, S320 E MDOP: System Center Desktop Error Monitoring (DEM); Jameel Khalfan CLI351, Friday, June 13 8:30 AM - 9:45 AM, N230 MDOP: Asset Inventory Services (AIS) will count your software and your licenses; Paul Bourgeau, Niamh Burke VIR50, Thursday, June 12 2:45 PM - 4:00 PM, Blue Theater 1 Microsoft Desktop Optimization Pack (MDOP): Microsoft Application Virtualization (Formerly SoftGrid) Discussion VIR61-TLC, Friday, June 13 1:00 PM - 2:15 PM, Blue Theater 1 Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization Changed content VIR53-TLC, Wednesday, June 11 10:15 AM - 11:30 AM, Blue Theater 1 MDOP: Microsoft Application Virtualization 4.5 (Formerly SoftGrid), Package and Data Management

Hands-on-labs: VIR57-HOL; VIR51-HOL; VIR58-HOL; VIR52-HOL; CLI59-HOL; CLI50-HOL; CLI55-HOL


22 MDOP colleagues! 3 kiosks at TLC / Expo floor!

Give us your opinion at the Speak-Your-Mind booth!

52

Resources
Technical Communities, Webcasts, Blogs, Chats & User Groups http://www.microsoft.com/communities/default.mspx Microsoft Learning and Certification http://www.microsoft.com/learning/default.mspx Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdn http://microsoft.com/technet

More info on MDOP products http://www.windowsvista.com/optmizeddesktop

53

Subscription!

1 Year

Complete an evaluation on CommNet and enter to win!

2008 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.

55

Вам также может понравиться