共用方式為


關於 App-V 動態設定

適用於

  • Windows 10
  • Windows 11

您可以使用動態設定來自定義使用者的 App-V 套件。 本文將告訴您如何建立或編輯現有的動態組態檔。

當您編輯動態組態檔時,它會自定義App-V套件如何為使用者或群組執行。 因此,套件自定義會藉由移除使用所需設定來重新排序套件的需求,並提供讓套件內容和自定義設定保持獨立的方式,讓套件自定義變得更方便。

進階:動態設定

虛擬應用程式套件包含指令清單,可提供套件的所有核心資訊。 此資訊包含套件設定的預設值,並以最基本的形式決定設定, (沒有進一步的自定義) 。 如果您想要調整特定使用者或群組的這些預設值,您可以建立和編輯下列檔案:

  • 用戶組態檔
  • 部署組態檔

這些 .xml 檔案會指定套件設定,可讓您自定義套件,而不會直接影響套件。 建立封裝時,排序器會使用套件指令清單數據自動產生預設部署和用戶設定 .xml 檔案。 這些自動產生的組態檔會反映封裝在排序期間所設定的預設設定。 如果您將這些組態檔套用至 Sequencer 所產生表單中的封裝,則套件會有來自其指令清單的相同預設設定。 如果必須變更任何預設值,此結果會為您提供套件特定的範本以開始使用。

注意

下列資訊只能用來修改排序器產生的組態檔,以自定義套件以符合特定使用者或群組需求。

動態組態檔案內容

組態檔中的所有新增、刪除和更新都必須與套件指令清單資訊所指定的預設值相關。 下列清單代表這些檔案之間的關聯性,以了解它們的讀取方式,從多數到最低優先順序:

  • 用戶組態 .xml 檔
  • 部署組態 .xml 檔案
  • 套件指令清單

第一個專案代表最後要讀取的專案。 因此,其內容優先。 所有套件原本就包含並提供套件指令清單中的預設設定,但其優先順序也最低。 如果您將部署組態套用 .xml 具有自訂設定的檔案,它會覆寫套件指令清單的預設值。 如果您在封裝指令清單的預設值覆寫之前,使用自定義設定套用使用者組態 .xml 檔案,它會覆寫部署組態和套件指令清單的預設值。

組態檔有兩種類型:

  • 用戶組態檔 (UserConfig) :可讓您指定或修改套件的自定義設定。 當套件部署至執行App-V用戶端的電腦時,這些設定會套用至特定使用者。
  • DeploymentConfig) (部署 組態檔:可讓您指定或修改套件的預設設定。 當套件部署至執行App-V用戶端的電腦時,這些設定會套用至所有使用者。

您可以使用 UserConfig 檔案來自定義電腦上特定使用者集合的套件設定,或進行將套用至 HKCU 等本機使用者位置的變更。 您可以使用 DeploymentConfig 檔案來修改電腦上所有使用者的套件預設設定,或進行將套用至全域位置的變更,例如 HKEY_LOCAL_MACHINE 和 All Users 資料夾。

UserConfig 檔案提供組態設定,您可以套用至單一使用者,而不會影響用戶端上的任何其他使用者:

  • 每個使用者將整合到原生系統的延伸模組:快捷方式、File-Type 關聯、URL 通訊協定、AppPaths、軟體用戶端和 COM。
  • 虛擬子系統:應用程式對象、環境變數、登錄修改、服務和字型。
  • 只) (用戶內容的腳本。

DeploymentConfig 檔案提供兩個區段中的組態設定,一個相對於計算機內容,另一個相對於用戶內容,提供上述 UserConfig 列表中所列的相同功能:

  • 本主題上一節中的所有UserConfig設定
  • 只能針對所有使用者全域套用的擴充功能
  • 可針對全域計算機位置設定的虛擬子系統,例如登錄
  • 產品來源 URL
  • 僅限計算機內容 (腳本)
  • 終止子進程的控件

檔案結構

下一節說明App-V動態組態檔的結構。

動態使用者組態檔

動態使用者組態檔的標頭範例如下:

<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">

PackageId 是指令清單檔案中存在的相同值。

動態使用者組態檔案本文

動態使用者組態檔的主體可以包含指令清單檔案中定義的所有應用程式擴充點,以及用來設定虛擬應用程式的資訊。 本文中允許四個子區段:

應用程式:封裝內指令清單檔案中包含的所有應用程式擴充功能都會以應用程式標識碼指派,而應用程式標識碼也會定義在指令清單檔案中。 這可讓您啟用或停用套件內指定應用程式的所有延伸模組。 應用程式 識別碼 必須存在於指令清單檔案中,否則會被忽略。

    <UserConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
    <Applications>
    <!-- No new application can be defined in policy. AppV Client will ignore any application ID that is not also in the Manifest file -->
    <Application Id="{a56fa627-c35f-4a01-9e79-7d36aed8225a}" Enabled="false">
    </Application>
    </Applications>
    …
    </UserConfiguration>

子系統:AppExtensions 和其他子系統會排列為 下的 <Subsystems>子節點,如下列範例所示。

    <UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
    <Subsystems>
    ..
    </Subsystems>
    ..
    </UserConfiguration>

您可以使用 Enabled 屬性來啟用/停 每個子系統。 下列各節說明各種子系統和使用方式範例。

動態使用者設定擴展名

延伸模組子系統控制延伸模組。 這些子系統包括快捷方式、File-Type 關聯、URL 通訊協定、AppPaths、軟體用戶端和 COM。

擴充功能子系統可以獨立於內容中啟用和停用。  因此,如果啟用快捷方式,客戶端預設會使用指令清單中包含的快捷方式。 每個延伸模組子系統都可以包含一個 <Extensions> 節點。 如果此子專案存在,用戶端會忽略該子系統指令清單檔案中的內容,且只會使用組態檔中的內容。

快捷方式子系統的範例

範例 1

如果使用者在動態或部署設定檔中定義下列語法,則會忽略內容:

                                     <Shortcuts  Enabled="true">
                                                 <Extensions
                                                  ...
                                                 </Extensions>
                                     </Shortcuts>

範例 2

如果使用者只定義下列語法,則會在發佈期間整合指令清單中的內容:


                                    `<Shortcuts  Enabled="true"/>`

範例 3

如果使用者定義下列語法,將會忽略指令清單中的所有快捷方式,而且不會整合任何快捷方式:

                           <Shortcuts  Enabled="true">
                                                 <Extensions/>
                                     </Shortcuts>

支援的延伸模組子系統

快捷方式:此子系統會控制將整合到本機系統的快捷方式。 下列範例有兩個快捷方式:

    <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>Fill out dynamic forms to gather and reuse information throughout the organization using 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>
          <!-- Note the ApplicationId is optional -->
        </Shortcut>
      </Extension>
     </Extensions>
    </Shortcuts>

檔類型關聯:將檔類型與預設要開啟的程式建立關聯,並設定操作功能表。 (MIME 類型也可以使用此子系統設定。) FileType 關聯的範例為:

    <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:如果應用程式,例如 contoso.exe,註冊的 apppath 名稱為 “myapp”,則此子系統可讓您在執行功能表中輸入 “myapp” 來開啟應用程式。

    <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" />
```xml

**Virtual Registry**: use this if you want to set a registry in the Virtual Registry within HKCU.

```xml
    <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>
    <Delete>
      </Registry>

虛擬檔案系統

          <FileSystem Enabled="true" />

虛擬字型

          <Fonts Enabled="false" />

虛擬環境變數

    <EnvironmentVariables Enabled="true">
    <Include>
           <Variable Name="UserPath" Value="%path%;%UserProfile%" />
           <Variable Name="UserLib" Value="%UserProfile%\\ABC" />
           </Include>
          <Delete>
           <Variable Name="lib" />
            </Delete>
            </EnvironmentVariables>

虛擬服務

          <Services Enabled="false" />

UserScripts

腳本可用來設定或改變虛擬環境,並在部署或移除時、在應用程式執行之前執行腳本,或在應用程式終止之後清除環境。 請參閱排序器的範例用戶組態檔輸出,以查看範例腳本。 如需可用來設定腳本的各種觸發程式詳細資訊,請參閱 腳本一 節。

動態部署組態檔

動態部署組態檔標頭

部署組態檔的標頭看起來應該像這樣:

<?xml version="1.0" encoding="utf-8"?><DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">

PackageId 與指令清單檔案中存在的值相同。

動態部署組態檔案本文

部署組態檔的本文包含兩個區段:

  • [使用者組態] 區段允許與上一節所述的用戶組態檔相同的內容。 當套件發佈給使用者時,除非同時提供使用者組態檔,否則本節中的任何 appextensions 組態設定都會覆寫套件內指令清單中的對應設定。 如果也提供 UserConfig 檔案,則會使用它,而不是部署組態檔中的用戶設定。 如果封裝是全域發佈,則只有部署組態檔的內容會與指令清單一起使用。
  • [機器組態] 區段包含的資訊只能針對整部計算機進行設定,而不能針對計算機上的特定用戶設定。 例如,HKEY_LOCAL_MACHINE VFS 中的登錄機碼。
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>

用戶設定:如需本節的詳細資訊,請參閱 動態用戶設定

機器組態:部署組態檔的 [機器組態] 區段會設定只能針對整部計算機設定的資訊,而非計算機上的特定使用者,例如虛擬登錄中HKEY_LOCAL_MACHINE登錄機碼。 這個專案可以有下列四個子區段。

子系統

AppExtensions 和其他子系統會排列為 下的 <Subsystems>子節點:

    <MachineConfiguration>
      <Subsystems>
      ..
      </Subsystems>
    ..
    </MachineConfiguration>

下一節說明各種子系統和使用方式範例。

擴充功能

某些子系統 (延伸模組子系統) 只能套用至所有使用者的控件延伸模組。 子系統是應用程式功能。 因為此子系統只能套用至所有使用者,所以套件必須全域發佈,才能將這種類型的擴充功能整合到本機系統中。 使用者設定延伸模組控制項和設定的規則也適用於計算機元件中的規則。

應用程式功能

Windows OS 介面中的預設程式會使用應用程式功能擴充功能;它可讓應用程式將自己註冊為能夠開啟特定的擴展名、作為 [開始] 功能表的因特網瀏覽器位置,以及能夠開啟特定 Windows MIME 類型。 此擴充功能也會讓虛擬應用程式顯示在 [設定預設程式] UI 中。

    <ApplicationCapabilities Enabled="true">
      <Extensions>
       <Extension Category="AppV.ApplicationCapabilities">
        <ApplicationCapabilities>
         <ApplicationId>\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe</ApplicationId>
         <Reference>
          <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 內的虛擬登錄中設定登錄機碼時,請使用此子系統。
    <Registry>
    <Include>
      <Key Path="\\REGISTRY\\Machine\\Software\\ABC">
        <Value Type="REG\_SZ" Name="Bar" Data="Baz" />
       </Key>
      <Key Path="\\REGISTRY\\Machine\\Software\\EmptyKey" />
     </Include>
    <Delete>
    </Registry>
  • 全機器的虛擬核心物件
    <Objects>
    <NotIsolate>
       <Object Name="testObject" />
     </NotIsolate>
    </Objects>
  • ProductSourceURLOptOut:指出是否可透過 PackageSourceRoot 全域修改套件的 URL,以支援分公司案例。 默認會設定為 False。 值的變更會在下次啟動時生效。
    <MachineConfiguration>
      ..
      <ProductSourceURLOptOut Enabled="true" />
      ..
    </MachineConfiguration>
  • MachineScripts:封裝可設定為在部署、發佈或移除時執行腳本。 若要查看範例腳本,請參閱 Sequencer 所產生的範例部署組態檔。 下一節提供可用來設定腳本的各種觸發程式的詳細資訊。

  • TerminateChildProcess:您可以使用此子系統來指定當 application.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 (SYSTEM、N/A)
PublishPackage X X (SYSTEM、使用者)
UnpublishPackage X X (SYSTEM、使用者)
RemovePackage X (SYSTEM、N/A)
StartProcess X X X X (使用者、使用者)
ExitProcess X X X (使用者、使用者)
StartVirtualEnvironment X X X (使用者、使用者)
TerminateVirtualEnvironment X X (使用者、使用者)

在單一事件觸發程式上使用多個腳本

App-V 支援在 App-V 套件的單一事件觸發程式上使用多個腳本,包括您從 App-V 4.6 轉換成 App-V for Windows 用戶端的套件。 為了啟用多個腳本的使用,App-V 會使用名為 ScriptRunner.exe 的腳本啟動器應用程式,此應用程式包含在 App-V 用戶端中。

如何在單一事件觸發程式上使用多個腳本

針對您想要執行的每個腳本,將該腳本當做自變數傳遞至 ScriptRunner.exe 應用程式。 應用程式會個別執行每個文稿,以及您為每個腳本指定的自變數。 每個觸發程式只能使用一個腳本 (ScriptRunner.exe) 。

注意

建議您先從命令提示字元執行多腳本行,以確保所有自變數都已正確建置,再將它們新增至部署組態檔。

範例腳本和參數描述

使用下列範例檔案和數據表,修改部署或使用者組態檔,以新增您想要執行的腳本。

<MachineScripts>
 <AddPackage>
   <Path>ScriptRunner.exe</Path>
   <Arguments>
   -appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10
   -appvscript script2.vbs arg1 arg2
   -appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 –rollbackonerror
   </Arguments>
   <Wait timeout=”40” RollbackOnError=”true”/>
 </AddPackage>
</MachineScripts>
範例檔案中的參數 描述
<AddPackage> 您執行文稿的事件觸發程式名稱,例如新增或發佈套件時。
ScriptRunner.exe App-V 用戶端中包含的腳本啟動器應用程式。

雖然 app-V 用戶端中包含 ScriptRunner.exe,但 App-V 用戶端的位置必須位於 %path% 或 ScriptRunner 不會執行。 ScriptRunner.exe 通常位於 C:\Program Files\Microsoft Application Virtualization\Client 資料夾中。
-appvscript script1.exe arg1 arg2 –appvscriptrunnerparameters –wait –timeout=10

-appvscript script2.vbs arg1 arg2

-appvscript script3.bat arg1 arg2 –appvscriptrunnerparameters –wait –timeout=30 -rollbackonerror
-appvscript—表示您想要執行之實際腳本的令牌。
script1.exe—您想要執行的腳本名稱。
arg1 arg2—您想要執行之腳本的自變數。
-appvscriptrunnerparameters—表示 script1.exe 執行選項的令牌。
-wait— 令牌,告知 ScriptRunner 等候執行 script1.exe 完成,然後再繼續進行下一個腳本。
-timeout=x—通知 ScriptRunner 在 x 秒數之後停止執行目前腳本的令牌。 所有其他指定的腳本仍會執行。
-rollbackonerror— 令牌,告知 ScriptRunner 停止執行所有尚未執行的腳本,並將錯誤回復至 App-V 用戶端。
<Wait timeout=”40” RollbackOnError=”true”/> 等候整體完成 ScriptRunner.exe。

將整體執行器的逾時值設定為大於或等於個別腳本上的逾時值總和。

如果有任何個別腳本回報錯誤,且 rollbackonerror 設定為 True,則 ScriptRunner 應該向 App-V 用戶端回報錯誤。

ScriptRunner 將會執行檔類型與電腦上安裝之應用程式相關聯的任何腳本。 如果遺漏相關聯的應用程式,或腳本的檔類型未與任何計算機的應用程式相關聯,則不會執行腳本。

使用 App-V 指令清單檔案 Create 動態組態檔

您可以使用下列三種方法之一來建立動態組態檔:手動、使用App-V管理控制台,或是排序套件,這會產生具有兩個範例檔案的套件。

如需如何使用App-V管理控制台建立檔案的詳細資訊,請參閱 如何使用App-V管理控制台建立自定義組態檔

若要手動建立檔案,您可以將上一節中列出的元件合併成單一檔案。 不過,建議您使用由排序器產生的檔案,而不是手動建立的檔案。