關於 App-V 動態設定

適用於:

  • Windows 10
  • Windows 11

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

編輯動態組態檔時,它會自訂 App-V 套件將為使用者或群組執行的方式。 因此,無需使用所需的設定重新排序套件,並提供保持套件內容和自訂設定獨立的方法,使套件自訂變得更加方便。

進階:動態設定

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

  • 使用者設定檔
  • 部署設定檔案

這些 .xml 檔案會指定套件設定,可讓您自訂套件,而不會直接影響套件。 建立套件時,排序器會使用套件資訊清單資料自動產生預設部署和使用者組態 .xml 檔案。 這些自動產生的設定檔會反映排序期間所設定的套件預設設定。 如果您以排序器產生的形式將這些設定檔套用至套件,則套件將具有來自其資訊清單的相同預設設定。 如果必須變更任何預設值,這個結果會提供套件特定的範本來開始使用。

注意

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

動態組態檔案內容

組態檔中的所有新增、刪除和更新都需要與套件資訊清單資訊指定的預設值相關。 下列清單代表了這些檔案之間的關聯性,從多到低優先順序排列:

  • 使用者設定 .xml 檔案
  • 部署組態 .xml 檔案
  • 封裝資訊清單

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

設定檔有兩種類型:

  • 使用者設定檔 (UserConfig) : 允許您指定或修改套件的自訂設定。 將套件部署到執行 App-V 用戶端的電腦後,會在特定使用者中套用這些設定。
  • 部署設定檔 (DeploymentConfig) :可讓您指定或修改套件的預設設定。 將套件部署到執行 App-V 用戶端的電腦後,會套用所有使用者的這些設定。

您可以使用 UserConfig 檔案,為電腦上一組特定使用者自訂套件的設定,或進行套用至本機使用者位置的變更,例如 HKCU。 您可以使用 DeploymentConfig 檔案修改電腦上所有使用者的套件預設設定,或進行套用至全域位置的變更,例如 HKEY_LOCAL_MACHINE 和 [所有使用者] 資料夾。

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

  • 將針對每位使用者整合至原生系統的擴充功能:捷徑、File-Type 關聯、URL 通訊協定、AppPaths、軟體用戶端和 COM。
  • 虛擬子系統:應用程式物件、環境變數、登錄修改、服務和字型。
  • 指令碼僅 (使用者內容) 。

DeploymentConfig 檔案以兩個區段提供組態設定,一個相對於電腦內容,另一個相對於使用者內容,提供在前面的 UserConfig 清單中所列的相同功能:

  • 本主題前一節中的所有 UserConfig 設定
  • 只能針對所有使用者全域套用的擴充功能
  • 可針對全域電腦位置設定的虛擬子系統,例如登錄
  • 產品來源網址
  • 僅限電腦內容 (指令碼)
  • 終止子處理程序的控制項

檔案結構

下列章節將說明 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 檔案,則會使用它來代替部署組態檔中的使用者設定。 如果套件是全域發佈,則只有部署組態檔的內容會與資訊清單結合使用。
  • [電腦組態] 區段包含只能針對整個電腦設定的資訊,而不能為電腦上的特定使用者設定。 例如,在 VFS 中HKEY_LOCAL_MACHINE登錄機碼。
<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 作業系統介面中的預設程式會使用應用程式功能延伸功能;它可讓應用程式將本身註冊為能夠開啟特定副檔名、作為 [開始] 功能表網際網路瀏覽器位置的競爭者,以及能夠開啟特定 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:套件可設定為在部署、發佈或移除時執行指令碼。 若要查看範例指令碼,請參閱排序器產生的範例部署組態檔。 下一節提供可用來設定指令碼之各種觸發器的詳細資訊。

  • 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 (系統, N/A)
PublishPackage X X (系統、使用者)
UnpublishPackage X X (系統、使用者)
RemovePackage X (系統, 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 轉換為 Windows 用戶端的 App-V 套件。 若要啟用多個指令碼的使用,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 資訊清單檔案建立動態設定檔案

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

如需如何使用 App-V Management Console 建立檔案的詳細資訊,請參閱如何使用 App-V Management Console 建立自訂設定檔案。

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