關於 App-V 5.0 動態設定
適用於: Application Virtualization 5.0, Application Virtualization 5.0 SP1, Application Virtualization 5.0 SP2, Application Virtualization 5.0 SP3
您可以使用動態設定來自訂使用者的 App-V 5.0 封裝。使用下列資訊可建立或編輯現有的動態設定檔案。
當您編輯動態設定檔案時,它會自訂 App-V 5.0 封裝針對使用者或群組執行的方式。如此可提供更方便的方法來進行封裝自訂,而不需要使用所需的設定將封裝重新排序,並且提供可讓封裝內容與自訂設定各自獨立的方式。
進階:動態設定
虛擬應用程式封裝包含資訊清單,可為封裝提供所有核心資訊。這項資訊包括封裝設定的預設值,並以最基本的形式 (不含額外的自訂) 來決定設定。如果您想要為特定使用者或群組調整這些預設值,您可以建立和編輯下列檔案:
使用者設定檔
部署設定檔
先前的 .xml 檔案會指定封裝設定,並允許自訂封裝,而不會直接影響封裝。封裝建立後,排序器會使用封裝資訊清單資料,自動產生預設部署和使用者設定 .xml 檔案。因此,這些自動產生的設定檔只會反映封裝原本如何在排序期間設定事物的預設設定。如果您以排序器產生的形式,將這些設定檔套用至封裝,這些封裝將會具有來自其資訊清單的相同預設設定。如果必須變更任何預設值,這可以提供您封裝特定的範本來開始進行。
注意
下列資訊僅可用來修改排序器產生的設定檔,以配合特定使用者或群組的需求來自訂封裝。
動態設定檔案內容
設定檔中的所有新增、刪除及更新動作,都必須依照封裝資訊清單資訊所指定的預設值來進行。請檢閱下表:
使用者設定 .xml 檔 |
部署設定 .xml 檔 |
封裝資訊清單 |
上表顯示將會用來讀取檔案的方式。第一個項目代表最後讀取的項目,因此,其內容為優先。因此,所有封裝原本就包含並提供來自封裝資訊清單的預設設定。如果套用具有自訂設定的部署設定 .xml 檔,將會覆寫封裝資訊清單預設值。如果在此之前已套用具有自訂設定的使用者設定 .xml 檔,則部署設定和封裝資訊清單預設值都會被覆寫。
下列清單顯示這兩種檔案類型的相關資訊:
使用者設定檔案 (UserConfig) – 可以讓您指定或修改封裝的自訂設定。將封裝部署到執行 App-V 5.0 用戶端的電腦時,將對於特定使用者套用這些設定。
部署設定檔案 (DeploymentConfig) – 可以讓您指定或修改封裝的預設設定。將封裝部署到執行 App-V 5.0 用戶端的電腦時,將對於所有使用者套用這些設定。
若要對於電腦上特定一組使用者自訂封裝的設定,或進行將套用於 HKCU 等本機使用者位置的變更,應該使用 UserConfig 檔案。若要對於電腦上所有的使用者修改預設設定,或進行將套用於 HKEY_LOCAL_MACHINE 等全域位置和所有使用者資料夾的變更,應該使用 DeploymentConfig 檔案。
UserConfig 檔案提供可套用於單一使用者的組態設定,完全不影響用戶端上其他任何使用者:
將對於各個使用者整合於原生系統的擴充:捷徑、檔案類型關聯、URL 通訊協定、AppPaths、軟體用戶端及 COM
虛擬子系統:應用程式物件、環境變數、登錄修改、服務及字型
指令碼 (僅限使用者內容)
管理授權單位 (使用 App-V 4.6 控制封裝的並存)
DeploymentConfig 檔案提供兩個區段的組態設定,一個與電腦內容有關,另一個與提供以上 UserConfig 清單所列的相同功能的使用者內容有關:
以上所有 UserConfig 設定
僅對於所有使用者全域套用的擴充
可對於全域機器位置設定的虛擬子系統,例如登錄
產品來源 URL
指令碼 (僅限電腦內容)
終止子處理序的控制項
檔案結構
下節將說明 App-V 5.0 動態設定檔案的結構。
動態使用者設定檔案
標頭 - 動態使用者設定檔案的標頭如下:
<?xml version="1.0" encoding="utf-8"?><UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="https://schemas.microsoft.com/appv/2010/userconfiguration">
PackageId 是資訊清單檔中存在的同一個值。
內文 - 動態使用者設定檔案的內文可以包含在資訊清單檔中定義的所有應用程式擴充點,以及用以設定虛擬應用程式的資訊。內文可分為四個子區段:
應用程式 - 封裝中的資訊清單檔包含的所有應用程式擴充將被指派應用程式識別碼,這也會在資訊清單檔中定義。這能夠讓您對於封裝中指定的應用程式啟用或停用所有擴充。應用程式識別碼必須存在於資訊清單檔中,否則將予以忽略。
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="https://schemas.microsoft.com/appv/2010/userconfiguration">
<Applications>
<!-- 無法在原則中定義任何新應用程式。AppV Client 將會忽略未同時存在資訊清單檔案中的任何應用程式識別碼 -->
<Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
</Application>
</Applications>
…
</UserConfiguration>
Subsystems - 應用程式延伸模組和其他子系統會以子節點的形式排列在 <Subsystems> 下方:
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="https://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
使用 “Enabled” 屬性可以啟用/停用各個子系統。以下是各種子系統和使用範例。
擴充:
部份子系統 (擴充子系統) 控制擴充。這些子系統包括:捷徑、檔案類型關聯、URL 通訊協定、AppPaths、軟體用戶端及 COM
延伸模組子系統可在不考慮內容的情況下啟用和停用。因此如果啟用捷徑,用戶端預設將使用資訊清單內包含的捷徑。每個延伸模組子系統都可以包含 <Extensions> 節點。如果這個子項目存在,用戶端將忽略該子系統的資訊清單檔中出現的內容,而只會使用設定檔案中的內容。
使用捷徑子系統的範例:
如果使用者在動態或部署設定檔案中定義這一項:
<Shortcuts Enabled="true">
<Extensions>
...
</Extensions>
</Shortcuts>
將會忽略資訊清單中的內容。
如果使用者只定義下列項目:
<Shortcuts Enabled="true"/>
則資訊清單中的內容會在發佈時整合。
如果使用者定義下列項目
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
則資訊清單中所有的捷徑仍將予以忽略。不會有任何捷徑被整合。
支援的擴充子系統包括:
**捷徑:**將整合到本機系統的控制項捷徑:以下是 2 個捷徑的範例:
<Subsystems>
<Shortcuts Enabled="true">
<Extensions>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>[{Common Programs}]\Microsoft Contoso\Microsoft ContosoApp Filler 2010.lnk</File>
<Target>[{PackageRoot}]\Contoso\ContosoApp.EXE</Target>
<Icon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\inficon.exe</Icon>
<Arguments />
<WorkingDirectory />
<AppUserModelId>ContosoApp.Filler.3</AppUserModelId>
<Description>使用 Microsoft ContosoApp 填寫動態表單以收集並重複使用整個組織的資訊。</Description>
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<ApplicationId>[{PackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
</Shortcut>
</Extension>
<Extension Category="AppV.Shortcut">
<Shortcut>
<File>[{AppData}]\Microsoft\Contoso\Recent\Templates.LNK</File>
<Target>[{AppData}]\Microsoft\Templates</Target>
<Icon />
<Arguments />
<WorkingDirectory />
<AppUserModelId />
<Description />
<Hotkey>0</Hotkey>
<ShowCommand>1</ShowCommand>
<!-- 注意,應用程式是選用項目 -->
</Shortcut>
</Extension>
</Extensions>
</Shortcuts>
**檔案類型關聯:**使檔案類型與預設開啟和設定操作功能表的程式產生關聯。(可以使用子系統設定 MIME 類型)。範例檔案類型關聯如下:
<FileTypeAssociations Enabled="true">
<Extensions>
<Extension Category="AppV.FileTypeAssociation">
<FileTypeAssociation>
<FileExtension MimeAssociation="true">
<Name>.docm</Name>
<ProgId>contosowordpad.DocumentMacroEnabled.12</ProgId>
<PerceivedType>document</PerceivedType>
<ContentType>application/vnd.ms-contosowordpad.document.macroEnabled.12</ContentType>
<OpenWithList>
<ApplicationName>wincontosowordpad.exe</ApplicationName>
</OpenWithList>
<OpenWithProgIds>
<ProgId>contosowordpad.8</ProgId>
</OpenWithProgIds>
<ShellNew>
<Command />
<DataBinary />
<DataText />
<FileName />
<NullFile>true</NullFile>
<ItemName />
<IconPath />
<MenuText />
<Handler />
</ShellNew>
</FileExtension>
<ProgId>
<Name>contosowordpad.DocumentMacroEnabled.12</Name>
<DefaultIcon>[{Windows}]\Installer\{90140000-0011-0000-0000-0000000FF1CE}\contosowordpadicon.exe,15</DefaultIcon>
<Description>Blah Blah Blah</Description>
<FriendlyTypeName>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,9182</FriendlyTypeName>
<InfoTip>[{FOLDERID_ProgramFilesX86}]\Microsoft Contoso 14\res.dll,1424</InfoTip>
<EditFlags>0</EditFlags>
<ShellCommands>
<DefaultCommand>Open</DefaultCommand>
<ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Edit</Name>
<FriendlyName>&Edit</FriendlyName>
<CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /vu "%1"</CommandLine>
</ShellCommand>
</ShellCommand>
<ApplicationId>{e56fa627-c35f-4a01-9e79-7d36aed8225a}</ApplicationId>
<Name>Open</Name>
<FriendlyName>&Open</FriendlyName>
<CommandLine>"[{PackageRoot}]\Contoso\WINcontosowordpad.EXE" /n "%1"</CommandLine>
<DropTargetClassId />
<DdeExec>
<Application>mscontosowordpad</Application>
<Topic>ShellSystem</Topic>
<IfExec>[SHELLNOOP]</IfExec>
<DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ProgId>
</FileTypeAssociation>
</Extension>
</Extensions>
</FileTypeAssociations>
URL 通訊協定:這會控制整合到用戶端電腦本機登錄的 URL 通訊協定,例如 “mailto:”。
<URLProtocols Enabled="true">
<Extensions>
<Extension Category="AppV.URLProtocol">
<URLProtocol>
<Name>mailto</Name>
<ApplicationURLProtocol>
<DefaultIcon>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE,-9403</DefaultIcon>
<EditFlags>2</EditFlags>
<Description />
<AppUserModelId />
<FriendlyTypeName />
<InfoTip />
<SourceFilter />
<ShellFolder />
<WebNavigableCLSID />
<ExplorerFlags>2</ExplorerFlags>
<CLSID />
<ShellCommands>
<DefaultCommand>open</DefaultCommand>
<ShellCommand>
<ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>
<Name>open</Name>
<CommandLine>[{ProgramFilesX86}\Microsoft Contoso\Contoso\contosomail.EXE" -c OEP.Note /m "%1"</CommandLine>
<DropTargetClassId />
<FriendlyName />
<Extended>0</Extended>
<LegacyDisable>0</LegacyDisable>
<SuppressionPolicy>2</SuppressionPolicy>
<DdeExec>
<NoActivateHandler />
<Application>contosomail</Application>
<Topic>ShellSystem</Topic>
<IfExec>[SHELLNOOP]</IfExec>
<DdeCommand>[SetForeground][ShellNewDatabase "%1"]</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ApplicationURLProtocol>
</URLProtocol>
</Extension>
</Extension>
</URLProtocols>
軟體用戶端:允許應用程式登錄成為電子郵件用戶端、新聞閱讀程式、媒體播放器,並且使應用程式在 [設定程式存取和電腦預設值] UI 中出現。在大多數情況下,您只需要啟用和停用它。如果您要該用戶端以外的其他用戶端維持啟用,另外有一個控制項可啟用和停用電子郵件用戶端。
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
AppPaths:例如,如果以 “myapp” 的 apppath 名稱登錄 contoso.exe 應用程式,您在執行功能表輸入 “myapp” 即可開啟 contoso.exe。
<AppPaths Enabled="true">
<Extensions>
<Extension Category="AppV.AppPath">
<AppPath>
<ApplicationId>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationId>
<Name>contosomail.exe</Name>
<ApplicationPath>[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE</ApplicationPath>
<PATHEnvironmentVariablePrefix />
<CanAcceptUrl>false</CanAcceptUrl>
<SaveUrl />
</AppPath>
</Extension>
</Extensions>
</AppPaths>
COM:允許應用程式登錄本機 COM 伺服器。模式可以是整合、隔離或關閉。若是 Isol。
<COM Mode="Isolated"/>
其他設定:
除了擴充之外,可啟用/停用和編輯其他子系統:
虛擬核心物件:
<Objects Enabled="false" />
虛擬登錄:如果要在 HKCU 的虛擬登錄中設定登錄,即可使用
<Registry Enabled="true">
<Include>
<Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\ABC">
<Value Type="REG_SZ" Name="Bar" Data="NewValue" />
</Key>
<Key Path="\REGISTRY\USER\[{AppVCurrentUserSID}]\Software\EmptyKey" />
</Include>
<刪除>
</Registry>
虛擬檔案系統
<FileSystem Enabled="true" />
虛擬字型
<Fonts Enabled="false" />
虛擬環境變數
<EnvironmentVariables Enabled="true">
<Include>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
<Variable Name="UserLib" Value="%UserProfile%\ABC" />
</Include>
<刪除>
<Variable Name="lib" />
</Delete>
</EnvironmentVariables>
虛擬服務
<Services Enabled="false" />
UserScripts – 指令碼可用來設定或變更虛擬環境,並且在部署或移除時或在應用程式執行前執行指令碼,也可以用於在應用程式終止時「清理」環境。請參照排序器輸出的範例使用者設定檔案來查看範例指令碼。以下的指令碼區段提供各種可用的觸發相關的詳細資訊。
ManagingAuthority – 同一部電腦上並存 2 個版本的封裝,一個部署於 App-V 4.6 而另一個部署於 App-V 5.0 時,即可使用。若要允許 App-V vNext 接管具名封裝的 App-V 4.6 擴充點,請在 UserConfig 檔案中輸入下列內容 (其中 PackageName 是 App-V 4.6 中的封裝 GUID:
<ManagingAuthority TakeoverExtensionPointsFrom46="true" PackageName="032630c0-b8e2-417c-acef-76fc5297fe81" />
動態部署設定檔案
標頭 - 部署設定檔案的標頭如下:
<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="https://schemas.microsoft.com/appv/2010/deploymentconfiguration">
PackageId 是資訊清單檔中存在的同一個值。
內文 - 部署設定檔案的內文包含兩個區段:
使用者設定區段 – 允許與上一段所述的使用者設定檔案相同的內容。將封裝發佈給使用者時,此區段中的任何 appextensions 組態設定將覆寫封裝內的資訊清單中對應的設定,除非另外也提供使用者設定檔案才不予以覆寫。如果另外也提供 UserConfig 檔案,則將使用此檔案,而不使用部署設定檔案中的使用者設定。如果全域發佈封裝,則只有部署設定檔案的內容會結合資訊清單一併使用。
電腦設定區段 – 包含只能對於整部電腦 (而無法對於電腦上的特定使用者) 設定的資訊。例如,VFS 中的 HKEY_LOCAL_MACHINE 登錄機碼。
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="https://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>
使用者設定 - 如需部署設定檔案的使用者設定區段中提供的設定相關資訊,請使用先前的動態使用者設定檔案區段。
電腦設定 - 部署設定檔案的電腦設定區段將用來設定只能對於整部電腦 (而無法對於電腦上的特定使用者) 設定的資訊。例如,虛擬登錄中的 HKEY_LOCAL_MACHINE 登錄機碼。這個項目可分為四個子區段
Subsystems - 應用程式延伸模組和其他子系統會以子節點的形式排列在 <Subsystems> 下方:
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
以下區段顯示各種子系統和使用範例。
擴充:
只能套用於所有使用者的部份子系統 (擴充子系統) 控制擴充。子系統是應用程式功能。由於這僅適用於所有使用者,因此必須全域發佈封裝,這種類型的擴充才能整合於本機系統。對於使用者設定中的擴充同樣適用的控制項和設定規則也適用於 MachineConfiguration 區段中的擴充。
應用程式功能:由預設程式用於 Windows 作業系統介面中。可讓應用程式將本身登錄為具備開啟特定副檔名的功能、開始功能表網際網路瀏覽器空位的競爭者,以及具備開啟特定 Windows MIME 類型的功能。此延伸模組也可讓虛擬應用程式顯示在 [設定預設程式] UI 中:
<ApplicationCapabilities Enabled="true">
<Extensions>
<Extension Category="AppV.ApplicationCapabilities">
<ApplicationCapabilities>
<ApplicationId>[{PackageRoot}]\LitView\LitViewBrowser.exe</ApplicationId>
<參考資料>
<Name>LitView Browser</Name>
<Path>SOFTWARE\LitView\Browser\Capabilities</Path>
</Reference>
<CapabilityGroup>
<Capabilities>
<Name>@[{ProgramFilesX86}]\LitView\LitViewBrowser.exe,-12345</Name>
<Description>@[{ProgramFilesX86}]\LitView\LitViewBrowser.exe,-12346</Description>
<Hidden>0</Hidden>
<EMailSoftwareClient>Lit View E-Mail Client</EMailSoftwareClient>
<FileAssociationList>
<FileAssociation Extension=".htm" ProgID="LitViewHTML" />
<FileAssociation Extension=".html" ProgID="LitViewHTML" />
<FileAssociation Extension=".shtml" ProgID="LitViewHTML" />
</FileAssociationList>
<MIMEAssociationList>
<MIMEAssociation Type="audio/mp3" ProgID="LitViewHTML" />
<MIMEAssociation Type="audio/mpeg" ProgID="LitViewHTML" />
</MIMEAssociationList>
<URLAssociationList>
<URLAssociation Scheme="http" ProgID="LitViewHTML.URL.http" />
</URLAssociationList>
</Capabilities>
</CapabilityGroup>
</ApplicationCapabilities>
</Extension>
</Extensions>
</ApplicationCapabilities>
其他設定:
除了擴充之外,可編輯其他子系統:
電腦範圍虛擬登錄:要在 HKEY_Local_Machine 的虛擬登錄中設定登錄機碼時,即可使用
<登錄>
<Include>
<Key Path="\REGISTRY\Machine\Software\ABC">
<Value Type="REG_SZ" Name="Bar" Data="Baz" />
</Key>
<Key Path="\REGISTRY\Machine\Software\EmptyKey" />
</Include>
<刪除>
</Registry>
電腦範圍虛擬核心物件
<Objects>
<NotIsolate>
<Object Name="testObject" />
</NotIsolate>
</Objects>
ProductSourceURLOptOut:指出是否能夠透過 PackageSourceRoot 全域修改封裝的 URL (支援分公司案例)。預設為 false,設定變更會在下次啟動時生效。
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts – 可設定封裝在部署、發佈或移除時執行指令碼。請參照排序器產生的範例部署設定檔案來查看範例指令碼。以下的指令碼區段提供各種可用的觸發相關的詳細資訊
TerminateChildProcess:可以指定應用程式執行檔,其中的子處理序將在應用程式 exe 處理序終止時終止。
<MachineConfiguration>
..
<TerminateChildProcesses>
<Application Path="[{PackageRoot}]\Contoso\ContosoApp.EXE" />
<Application Path="[{PackageRoot}]\LitView\LitViewBrowser.exe" />
<Application Path="[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE" />
</TerminateChildProcesses>
..
</MachineConfiguration>
指令碼
下表說明各種指令碼事件和可執行的環境。
指令碼執行時間 | 可以在部署設定中指定 | 可以在使用者設定中指定 | 可以在封裝的虛擬環境中執行 | 可以在特定應用程式的環境中執行 | 在系統/使用者環境中執行:(部署設定、使用者設定) |
---|---|---|---|---|---|
AddPackage |
X |
(系統、無) |
|||
PublishPackage |
X |
X |
(系統、使用者) |
||
UnpublishPackage |
X |
X |
(系統、使用者) |
||
RemovePackage |
X |
(系統、無) |
|||
StartProcess |
X |
X |
X |
X |
(使用者、使用者) |
ExitProcess |
X |
X |
X |
(使用者、使用者) |
|
StartVirtualEnvironment |
X |
X |
X |
(使用者、使用者) |
|
TerminateVirtualEnvironment |
X |
X |
(使用者、使用者) |
使用 App-V 5.0 資訊清單檔建立動態設定檔案
您可以使用下列三種方法的其中一種建立動態設定檔案:手動、使用 App-V 5.0 管理主控台或排序封裝,這將產生 2 個範例檔案。
如需如何使用 App-V 5.0 管理主控台建立檔案的詳細資訊,請參閱如何使用 App-V 5.0 管理主控台來建立自訂設定檔。
若要手動建立檔案,先前區段中的資訊可以結合為一個檔案。建議使用排序器產生的檔案。
您對於 App-V 有任何建議嗎?
您可以在這裡加入您的建議,或對建議進行票選。您如有任何 App-V 方面的問題,可利用 App-V TechNet 論壇。
另請參閱
工作
如何使用 PowerShell 套用部署組態檔
如何使用 PowerShell 套用使用者組態檔
其他資源
-----
您可以在 TechNet Library 中深入瞭解 MDOP、在 TechNet Wiki 上搜尋疑難排解資訊,或是在 Facebook 或 Twitter 上追蹤我們的動態。
-----