Date post: | 12-Mar-2015 |
Category: |
Documents |
Upload: | userfrominternet |
View: | 201 times |
Download: | 0 times |
2
MicrosoftApplication Virtualization 4.5Sequencing Deep Dive
Chris LordSenior Program ManagerMicrosoft
Session Code: VIR450
3
Dynamically streaming
software as a centrally
managed service
DEM
System Center
Operations
Manager 2007
Translating software inventory
into business intelligence
Enhancing group policy through
change management
Proactively managing application and
operating system failures
Powerful tools to accelerate
desktop repair
Simplifying deployment and
management of Virtual PCs
New
(formerly SoftGrid)
4
Session OverviewWhat to know, what to do, and how to do it
TheoryInside the App-V Application Model
Behind the Scenes of the Sequencing Process
A View from Inside the Virtual File System
Demonstration
PracticeA Look at the Artifacts (OSDs, SFTs, Manifests)
Advanced OSD Scripting and Configuration
Applying Virtual Environment Policies
5
What to Know
Inside the concepts and behind the scenes of the sequencing process.
6
3. Customize
Sequencing ProcessThe sequencing process at 30,000 feet
1. Install the Application 2. Run the Application
4. Save the Package
7
Application ModelBasic components of an application model
RuntimeManagement
StateManagement
ApplicationModel
LifecycleManagement
ApplicationDescription
8
An application is described by Open Software Description (OSD), an XML vocabulary for software components and their relationships to other components.
An OSD contains:
Name, GUID, version information
Platform and environment settings
Dependencies
Target package and application
Reference to immutable state
Shell integration
Pre/Post processing scripts
Application ModelApplication description
RuntimeManagement
StateManagement
ApplicationModel
LifecycleManagement
ApplicationDescription
9
Application ModelLifecycle management
RuntimeManagement
StateManagement
ApplicationModel
LifecycleManagement
ApplicationDescription
The application lifecycle is managed through a single self-contained package, the SFT, that captures and contains installation and application data and metadata.
A package contains:
All application assets
Classifications and versions
Immutable state
Security descriptors
History of servicing
Optimized streaming layout
10
Application ModelState management
RuntimeManagement
StateManagement
ApplicationModel
LifecycleManagement
ApplicationDescription
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:
Specific to each user
Changes isolated to each user
Attached to user profile, not system
Public State is:
Shared across all users
Changes isolated to specific users
Attached to system, not user profile
11
Application ModelRuntime management
RuntimeManagement
StateManagement
ApplicationModel
LifecycleManagement
ApplicationDescription
The runtime of an application is managed through a virtual environment instance associated with the application package.
The Virtual Environment:
Manages namespaces and visibility
Ensures isolation between objects
Enforces interaction policies
Directs modifications
12
Installation Phase
Sequencing ProcessThe key activities of producing a package
Launch Phase
Customization Phase
Save Phase
13
Sequencing ProcessBehind the scenes of the install phase
Start Monitor Install Process
Package Name for MSIOptional Advanced Options
Apply SDs to Package RootIntercept Shell, AppInfo,
Service Controller
Stop/InterceptWindows Update
Upload Empty EnvironmentMonitor File Operations
Privatize SxS AssembliesCapture Registry ChangesCapture Services Changes
Capture File Changes
Intercept Reboot Requests
Simulate Reboot OperationsDownload Captured StatePrivatize SxS Assemblies
Create File ListCreate Virtual Registry
Create Virtual FS MappingsCreate Font and Service List
Classify User and App StateSet Opacity/Translucency
Remove Excluded DataMake State Portable
14
Configure Launch Process Sequence/Save
Add/Delete ApplicationsDefine Shortcuts
Define File Type Associations
Monitor File OperationsMonitor File I/O
Stop Windows Update
Upload Previous StateCreate Application Process
Privatize SxS AssembliesCapture Registry ChangesCapture Services Changes
Capture File Changes
Wait for Process Exit
Simulate Reboot OperationsDownload Captured StatePrivatize SxS Assemblies
Create File ListCreate Virtual Registry
Create Virtual FS MappingsCreate Font and Service List
Classify User and App StateSet Opacity/Translucency
Remove Excluded DataMake State Portable
Create Package MetadataSave Security DescriptorsCompute Feature Blocks
Generate OSDsGenerate SFTGenerate MSI
Sequencing ProcessBehind the scenes of the launch phase
15
Translucent(Merge, Virtual)
Merge with Local Data
Opaque(Override, Pure Virtual)
Mask Local Data
Sequencing ProcessHow opacity and file mappings are determined
Opacity
Did registry keyor file path already
exist?
End
No Yes
VFS Mapping
Data Redirected to Q:
No Mapping
Data Accessed via Q:
VFSMap
Was file createdoutside installation
path?
End
No Yes
16
Pre-Install Installation Package Virtual ViewVFS Mappings
Sequencing ProcessBehind the scenes of the virtual file system
CSIDL_WINDOWS
Foo.dll
Bar.dll
Foo
CSIDL_PERSONAL
Y2
Foo.ini
VFS
FooApp.100
Windows
Plugh.doc
Win.ini
Documents
System32
Explorer.exe
Xyzzy
Windows
Foo.dll
Bar.dll
Foo
Plugh.doc
Win.ini
Documents
System32
Explorer.exe
Y2
Foo.ini
Abc.txt
Abc
Abc.txt
Abc
Xyz
Xyz.txt
Xyz
Xyz.txt
Poof.txt
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\
Windows
Foo.dll
Bar.dll
Foo
Documents
Y2
Foo.ini
Xyzzy
Abc
Abc.txt
Xyz
Xyz.txt
Poof.txt
Bin
Drive C: Drive Q:Drive C:
Drive Q:
FooApp.100
Drive Q:
FooApp.100
FooApp.exe
FooApp.dat
Bin
FooApp.exe
FooApp.dat
Drive C:
Aaa.txt Aaa.txt
Drive Q:
FooApp.100
17
Sequencing ProcessCreating system and user independent packages
Excluder ClassifierParser
Registryand
File SystemMappings
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.510C:\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…
osguard.cp
18
What to Do
Sequencing an application is as easy as1-2-3: install, launch, save.
19
How to Do It
How to tailor the sequencing process and artifacts to your environment and needs.
20
File
Sequencing ArtifactsWhere they are created and consumed
.SPRJSequencing project with references to OSDs, default package settings, list of all parser items, classifications and exclusions.
.SFTBinary file containing all assets and state organized into
streamable feature blocks. Optionally a DSFT (Differential SFT).
.MSIInstaller to publish and load (“install”) a virtual application package in standalone environments. Embeds all but SFT.
.XML Manifest
.OSDDescription of an application including environment,
dependencies, package location, shell integration, scripts.
.ICOIcons associated with each shortcut or FTA defined in an OSD or
Manifest. These are extracted from application resources.
Publishing parameters for all applications in a package. Includes definitions of shell integration (FTAs, Shortcuts, DDE, etc.).
Description
Consumed as an input Generated as an output
21
Sequencing ArtifactsRelationships between sequencing output files
SFT
PackageFile
OSDs
ApplicationDescription
SPRJ
SequencerProject
ICOs
Shortcutand FTA Icons
Manifest
StandalonePublishing
MSI Setup
StandaloneSetup Utility
MSI
22
Inside the OSDA 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>
23
Inside the OSDControlling 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 “pre-shutdown” option.
Where the script runs: inside the virtual
(protected) environment or outside. How the script runs:
synchronously or asynchronously, and
optionally seconds to wait for synchronous scripts.
Optional action to take on script exit: continue only on specific success result, or silently fail on specific
abort result. Commands to execute as a batch script in the user’s
context. May also use a single HREF instead to run
a single program or external script.
24
Inside the OSDExamples of OSD scripting
<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>
<SCRIPT EVENT="LAUNCH" PROTECT="TRUE" TIMING="PRE" WAIT="TRUE“SUCCESSRESULT="1" ABORTRESULT="0"> <SCRIPTBODY>
@echo off\nset net35loc=%windir%\\Microsoft.NET\\Framework\\v3.5\nset file35=%net35loc%\\csc.exe\nif not exist "%file35%" (\n
echo .NET 3.5 Framework must be installed for this application.\npause\nexit 0 )\n
exit 1</SCRIPTBODY> </SCRIPT>
Pre-Launch Script to Check Prerequisites
Pre-Launch/Post-Shutdown Registry “Passthru”
25
Inside the OSDExamples of registry and environment settings
<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>
<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>
Custom Registry Settings to Enable Diagnostics
Environment Variables to Setup Paths
26
Inside the OSDExample 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>
27
Inside the OSDVirtual environment options and policies
Attribute or Policy
TERMINATECHILDREN†
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.
LOCAL_INTERACTION_ALLOWED‡
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.
VIRTUAL_SERVICES_DISABLED‡ Disables the virtualization of services. Typically used for diagnostics. Default is enabled.
VIRTUAL_REGISTRY_DISABLED‡
VIRTUAL_FILE_SYSTEM_DISABLED‡ Disables virtualization of the file system. Typically used for diagnostics. Default is enabled.
Disables virtualization of the registry. Typically used for diagnostics. Default is enabled.
Description
‡ Set using <POLICIES><policy>TRUE|FALSE</policy></POLICIES> in OSD. First OSD launched determines VE policy for lifetime of instance.
†Set using TERMINATECHILDREN=“TRUE” attribute in VIRTUALENV element. Applies to each application independently, even within same package.
28
Inside Customization
Behind the Installation Phase
Behind the Launch Phase
Inside Artifacts
Inside the App-V Application Model
ConclusionWhere we have been today
RuntimeManagement
StateManagement
ApplicationModel
ApplicationDescription
LifecycleManagement
29
More to ExploreSome useful sites, tools, forums and blogs
Web
site
sB
logs
an
d F
oru
ms
Resource Description
Application Virtualization forums supported by MVPs and product team
http://forums.microsoft.com/TechNet/default.aspx?ForumGroupID=497&SiteID=17
Too
ls
SFT Explorer by Kalle Saunamäki, an MVP, that allows detailed look inside SFTs
http://www.virtualapp.net/sft-explorer.html
OSD Editor that supports easy customization and dynamic suiting
http://www.loginconsultants.com/
The illustrated OSD and other App-V tools and info by Tim Mangan, an MVP
http://www.tmurgent.com/
App-V (SoftGrid) product team bloghttp://blogs.technet.com/softgrid/
Forum run by Ruben Spruijt, an MVPhttp://www.softgridguru.com/
Blog by Rodney Medina, an MVPhttp://www.softgridblog.com/
Sequencing Best Practices and Office 2007 Prescriptive Guidance
http://support.microsoft.com/kb/932137http://support.microsoft.com/kb/939796
Microsoft Application Virtualization 4.5 RC Release available June 16
https://connect.microsoft.com
Blog by Justin Zarb and Andrew Bennetthttp://blogs.technet.com/virtualworld/
Brian Madden on App Delivery Topicshttp://www.brianmadden.com/
Related App-V Content
Breakout Sessions
VIR359 App-V 4.5 Features (6/12 4:30)VIR352 App-V 4.5 Enterprise Management and SCCM (6/13 10:15)
Interactive Theater Sessions
VIR50-TLC Application Virtualization DiscussionVIR51-TLC Application Virtualization and Presentation Virtualization Q&AVIR53-TLC Application Virtualization Package and Data ManagementVIR55-TLC Application Virtualization Customer DiscussionVIR56-TLC Application Virtualization 4.5 Customer Stories
Hands-on Labs
VIR52-HOL Application Virtualization 4.5 Publishing LabVIR57-HOL Application Virtualization 4.5 Sequencing Lab (Basics)VIR58-HOL Application Virtualization 4.5 Sequencing Lab (Advanced)
31
32
Slides for VIR53-TLC
Additional slides for Microsoft Application Virtualization 4.5 Package and Data Management session.
33
MicrosoftApplication Virtualization 4.5 Package and Data Management
Chris LordSenior Program ManagerMicrosoft
Session Code: VIR53-TLC
34
Session OverviewInside out, outside in and inside out again
Inside OutHow Files Get Into a Package
How User and Application Files are Classified
Outside InHow the File System Organizes Package Volumes
What Happens During Launch, Upgrade, Shutdown
What Happens during Unload/Delete, Repair/Clear
Inside OutWhat the File System Looks Like from Inside
What the Virtual View Looks Like from Inside
35
Application File
User File
Sequencing ProcessHow application and user files are classified
Install Phase File
Start
Is type cp|exe|dll|com|config|
manifest?
Was createdduring install
phase?
Is file in csidl_profile,csidl_appdata|
userprofile?
Is file incsidl_program_files\
MicrosoftShared?
Is typedat|ini|dot|
mdw?
End
No
No
Yes
Yes
Yes
Yes
Yes
Launch Phase File
No
No
No
36
Inside State ManagementIsolation from local system and user state
Logged on User on Local SystemUser andSystemState
PackageState
UserState
Virtualized ApplicationProcesses
User-SpecificApplication Package
Environment
SharedApplication Package
Environment
LocalApplicationProcesses
37
Inside State ManagementIsolation between multiple application packages
Logged on User on Local SystemUser andSystemState
Package BState
Package BUserState
Package BApplicationProcesses
Package BUser-SpecificEnvironment
Package BShared
Environment
Package AState
Package AUserState
Package AApplicationProcesses
Package AUser-SpecificEnvironment
Package AShared
Environment
38
Inside State ManagementIsolation between multiple users
Local System SystemState
Package AState
Package AUser 2State
Package A User 2ApplicationProcesses
Package AUser 2-SpecificEnvironment
Package AUser 1State
Package A User 1ApplicationProcesses
Package AUser 1-SpecificEnvironment
Package AShared
Environment
Logged onUser 2
Logged onUser 1
User 2State
User 1State
39
Inside State Management Dynamic suite composition state management
Logged on User on Local SystemUser andSystemState
Package CState
Package CUserState
Package C and DApplicationProcesses
Package C and DUser-SpecificEnvironment
Primary Package C
Environment
Package AState
Package AUserState
Package AApplicationProcesses
Package AUser-SpecificEnvironment
Package AShared
Environment
Package DState
DependentPackage D
Environment
40
Application Stack
Plug-in Collection
Shared Base Application
Shared Middleware or Utility Application
Dynamic Suite CompositionFour typical scenarios for suiting applications
Suite
Add-on App
Primary App
Plug-in 2
Foundation
Applet 3Applet 1 Applet 2
Utility
App 3App 1 App 2
Add-on App
Plug-in 1
Example: Oracle with separately published applications, possibly with separate entitlements.
Example: JRE, Acrobat Reader or Snag-It with separately published primary applications.
Example: Office, Communicator, and Live Meeting published together.
Example: Internet Explorer with Silverlight, JRE and Flash, each updated separately.
41
Volume OrganizationGlobal file system container volumes
sffs.fsg
File System Install
New data from allowed system processes not associated with
any package or virtual environment
sftfs.fsd
File System Install
All loaded package datafrom streamed content. This is
RO and fully recoverable by restreaming package content.
Per
Syst
em C
on
ten
t
Name and Initialization Content
‡Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
†Located in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access.Application Data User Data
User Location ‡System Location†
File SystemData Cache
File SystemUser Cache
42
Volume OrganizationPer-package file system container volumes
User Location ‡System Location†
UsrlVol_sftfs_v1.pkg
Load or Shutdown of User Launch of Package
New or Modified User-Specific Package Data;
User Processes Settings.cp
UsrVol_sftfs_v1.pkg
Load or Shutdown of First Package Launch
New or Modified User-Specific Package Data from Allowed
System Processes
GlblVol_sftfs_v1_S-1-5-20.pkg
Load or Shutdown of First Package Launch
Modified Application-Specific Package Data from System
Processes;System Processes Settings.cp
GlblVol_sftfs_v1_<SID>.pkg
Load or Shutdown of User Launch of Package
New or Modified Application-Specific Package Data
Per
Syst
em C
on
ten
tPe
r U
ser
Co
nte
nt
‡Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
†Located in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access.
Name and Initialization Content
Application Data User Data
UserPackageVolume
App DataIsolationVolume
GlobalPackageVolume
GlobalUser
Volume
43
Volume OrganizationPackage volume names and locations
UserPackageVolume
App DataIsolationVolume
GlobalPackageVolume
GlobalUser
Volume
File SystemData Cache
File SystemUser Cache
44
Volume ManagementWhat happens during launch and shutdown
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
Per
Syst
emPe
r U
ser
GlblVol_sftfs_v1_S-1-5-20.tmp
GlblVol_sftfs_v1_S-1-5-20.pkg
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_S-1-5-20.tmp
GlblVol_sftfs_v1_S-1-5-20.pkg
Subsequent Launch
GlblVol_sftfs_v1_S-1-5-20.tmp
Shutdown
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_<SID>.tmp
GlblVol_sftfs_v1_<SID>.pkg
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_<SID>.tmp
GlblVol_sftfs_v1_<SID>.pkg
GlblVol_sftfs_v1_<SID>.tmp
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.tmp
Initial Launch
GlobalPackageVolume
GlobalPackageVolume
GlobalPackageVolume
GlobalPackageVolume
GlobalPackageVolume
GlobalUser
Volume
GlobalUser
Volume
GlobalUser
Volume
App DataIsolationVolume
App DataIsolationVolume
App DataIsolationVolume
App DataIsolationVolume
App DataIsolationVolume
UserPackageVolume
UserPackageVolume
UserPackageVolume
UserPackageVolume
UserPackageVolume
GlobalUser
Volume
GlobalUser
Volume
Application Data User Data
45
Volume ManagementWhat happens during package upgrade
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
Per
Syst
emPe
r U
ser
GlblVol_sftfs_v1_S-1-5-20.tmp
GlblVol_sftfs_v1_S-1-5-20.pkg
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_S-1-5-20.tmp
GlblVol_sftfs_v1_S-1-5-20.pkg
Subsequent Launch Shutdown
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_<SID>.tmp
GlblVol_sftfs_v1_<SID>.pkg
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_<SID>.tmp
GlblVol_sftfs_v1_<SID>.pkg
ReplacedData
UpdatedData
GlobalPackageVolume
GlobalUser
Volume
GlobalUser
Volume
File SystemData Cache
GlobalPackageVolume
GlobalPackageVolume
GlobalPackageVolume
App DataIsolationVolume
App DataIsolationVolume
UserPackageVolume
UserPackageVolume
GlobalUser
Volume
GlobalUser
Volume
App DataIsolationVolume
App DataIsolationVolume
UserPackageVolume
UserPackageVolume
Application Data User Data
46
Volume ManagementWhat happens during administrative actions
Per
Syst
emPe
r U
ser
Unload/DeleteLoadRepair/Clear
UsrVol_sftfs_v1.pkg
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_S-1-5-20.pkgUsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_S-1-5-20.tmp
GlblVol_sftfs_v1_S-1-5-20.pkg
UsrVol_sftfs_v1.tmp
UsrVol_sftfs_v1.pkg
GlblVol_sftfs_v1_<SID>.tmp
GlblVol_sftfs_v1_<SID>.pkg GlblVol_sftfs_v1_<SID>.pkg
sftfs.fsd
PackageData
Application Data User Data
GlobalUser
Volume
GlobalUser
Volume
UserPackageVolume
UserPackageVolume
GlobalPackageVolume
GlobalPackageVolume
App DataIsolationVolume
App DataIsolationVolume
UserPackageVolume
App DataIsolationVolume
GlobalPackageVolume
GlobalUser
Volume
File SystemData Cache
47
Inside the File SystemA view from inside the file system
UserPackageVolume
App DataIsolationVolume
GlobalPackageVolume
GlobalUser
Volume
File SystemData Cache
AppData
UserData
A B C
X Y Z
B C
Z
D
F
B
Z
D
F
A
X Y
Z
E
A B
A
Y Z
EC
XUser
ProcessView
SystemProcess
View
Y
B
48
Pre-Install Installation PackageVFS Mappings
Sequencing ProcessBehind the scenes of the virtual file system
CSIDL_WINDOWS
Foo.dll
Bar.dll
Foo
CSIDL_PERSONAL
Y2
Foo.ini
VFS
FooApp.100
Windows
Plugh.doc
Win.ini
Documents
System32
Explorer.exe
Xyzzy
Abc.txt
Abc
Xyz
Xyz.txt
Poof.txt
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\
Windows
Foo.dll
Bar.dll
Foo
Documents
Y2
Foo.ini
Xyzzy
Abc
Abc.txt
Xyz
Xyz.txt
Poof.txt
Bin
Drive C: Drive Q:Drive C:
Drive Q:
FooApp.100
Drive Q:
FooApp.100
FooApp.exe
FooApp.dat
Bin
FooApp.exe
FooApp.dat
Aaa.txt
49
Local System Package Virtual ViewVFS Mappings
Inside the Virtual File SystemA view from inside the virtual file system
CSIDL_WINDOWS
Foo.dll
Bar.dll
Foo
CSIDL_PERSONAL
Y2
Foo.ini
VFS
FooApp.100
Windows
Plugh.doc
Win.ini
Documents
System32
Explorer.exe
Xyzzy
Windows
Foo.dll
Bar.dll
Foo
Plugh.doc
Win.ini
Documents
System32
Explorer.exe
Y2
Foo.ini
Abc.txt
Abc
Abc.txt
Abc
Xyz
Xyz.txt
Xyz
Xyz.txt
Poof.txt
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\
Bin
Drive C: Drive Q:
FooApp.exe
FooApp.dat
Drive C:
Aaa.txt Aaa.txt
Zork.doc
Zork.doc
www.microsoft.com/techedTech·Talks Tech·Ed BloggersLive Simulcasts Virtual Labs
http://microsoft.com/technet
Evaluation licenses, pre-released products, and MORE!
Resources for IT Professionals
Related App-V Content
Breakout Sessions
VIR359 Microsoft Application Virtualization 4.5 FeaturesVIR352 Microsoft Application Virtualization 4.5 Enterprise Management and SCCMVIR450 Application Virtualization 4.5 Sequencing Deep Dive
Interactive Theater Sessions
VIR50-TLC Application Virtualization DiscussionVIR51-TLC Application Virtualization and Presentation Virtualization Q&AVIR53-TLC Application Virtualization Package and Data ManagementVIR55-TLC Application Virtualization Customer DiscussionVIR56-TLC Application Virtualization 4.5 Customer Stories
Hands-on Labs
VIR52-HOL Application Virtualization 4.5 Publishing LabVIR57-HOL Application Virtualization 4.5 Sequencing Lab (Basics)VIR58-HOL Application Virtualization 4.5 Sequencing Lab (Advanced)
52
Bre
ako
uts
MDOP activities at TechEd
VIR359, Thursday, June 12 4:30 PM - 5:45 PM, S230 EMicrosoft Desktop Optimization Pack: Microsoft Application Virtualization 4.5 (Formerly SoftGrid) Features, Gene Ferioli
CLI351, Friday, June 13 8:30 AM - 9:45 AM, N230MDOP: Asset Inventory Services (AIS) will count your software and your licenses; Paul Bourgeau, Niamh Burke
CLI358, Thursday, June 12 8:30 AM - 9:45 AM, S320 AMDOP: Managing GPOs with Advanced Group Policy Management; Mark Gray, Winni Verhoef
VIR362, Friday, June 13 2:45 PM - 4:00 PM, S310 CMicrosoft 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 EMDOP: System Center Desktop Error Monitoring (DEM); Jameel Khalfan
CLI350, Thursday, June 12 2:45 PM - 4:00 PM, S220 EMDOP: Microsoft Diagnostics and Recovery Toolset (DaRT); Jameel Khalfan
Hands-on-labs: VIR57-HOL; VIR51-HOL; VIR58-HOL; VIR52-HOL; CLI59-HOL; CLI50-HOL; CLI55-HOL
VIR50, Thursday, June 12 2:45 PM - 4:00 PM, Blue Theater 1Microsoft Desktop Optimization Pack (MDOP): Microsoft Application Virtualization (Formerly SoftGrid) Discussion
VIR61-TLC, Friday, June 13 1:00 PM - 2:15 PM, Blue Theater 1Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization Changed content
IC /
TLC
VIR53-TLC, Wednesday, June 11 10:15 AM - 11:30 AM, Blue Theater 1MDOP: Microsoft Application Virtualization 4.5 (Formerly SoftGrid), Package and Data Management
22 MDOP colleagues! 3 kiosks at TLC / Expo floor! Give us your opinion at the Speak-Your-Mind booth!
Also: VIR450, MGT371
53
ResourcesTechnical Communities, Webcasts, Blogs, Chats & User Groupshttp://www.microsoft.com/communities/default.mspx
Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdnhttp://microsoft.com/technet
More info on MDOP productshttp://www.windowsvista.com/optmizeddesktop
Microsoft Learning and Certificationhttp://www.microsoft.com/learning/default.mspx
1 Year Subscription!
Complete an
evaluation on
CommNet and
enter to win!
55
© 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.