App-V 5.1 동적 구성 정보

동적 구성을 사용하면 동적 구성 파일을 편집하여 사용자 또는 그룹에 대해 App-V 5.1 패키지가 실행되는 방식을 사용자 지정할 수 있습니다. 패키지 사용자 지정은 원하는 설정을 사용하여 패키지를 다시 구문 분석할 필요가 없습니다. 패키지 콘텐츠와 사용자 지정 설정을 독립적으로 유지하는 방법도 제공합니다.

가상 애플리케이션 패키지에는 패키지에 대한 모든 핵심 정보를 제공하는 매니페스트가 포함되어 있습니다. 이 정보에는 패키지 설정의 기본값이 포함되며, 추가 사용자 지정 없이 가장 기본적인 형식으로 설정을 결정합니다.

패키지를 만들면 sequencer는 패키지 매니페스트 데이터를 사용하여 자동으로 기본 배포 및 사용자 구성 .xml 파일을 생성합니다. 따라서 이러한 생성된 파일은 시퀀싱 중에 구성된 기본 설정을 반영합니다. 시퀀서에서 생성된 양식의 패키지에 이러한 파일을 적용하는 경우 패키지에는 매니페스트에서 나온 것과 동일한 기본 설정이 있습니다.

필요한 경우 이러한 생성된 파일을 사용하여 패키지에 직접적인 영향을 주지 않는 변경 작업을 할 수 있습니다. 구성 파일을 추가, 삭제 또는 업데이트하려면 매니페스트 정보의 기본값을 변경합니다.

파일이 읽는 순서는 다음과 같습니다.

  • UserConfig.xml
  • DeploymentConfig.xml
  • 매니페스트

첫 번째 항목은 마지막으로 읽는 항목을 나타냅니다. 따라서 해당 콘텐츠가 우선적으로 적용되며 모든 패키지는 기본적으로 패키지 매니페스트의 기본 설정을 포함하고 제공합니다.

  1. DeploymentConfig.xml 파일을 사용자 지정하고 사용자 지정 설정을 적용하는 경우 패키지 매니페스트의 기본 설정이 재정의됩니다.
  2. UserConfig.xml 사용자 지정하고 사용자 지정된 설정을 적용하는 경우 배포 구성과 패키지 매니페스트 모두에 대한 기본 설정이 재정의됩니다.

사용자 구성 파일 콘텐츠(UserConfig.xml)

UserConfig 파일은 App-V 5.1 클라이언트를 실행하는 컴퓨터에 패키지를 배포할 때 특정 사용자에게 적용되는 구성 설정을 제공합니다. 이러한 설정은 클라이언트의 다른 사용자에게 영향을 주지 않습니다.

UserConfig 파일을 사용하여 패키지에 대한 사용자 지정 설정을 지정하거나 수정합니다.

  • 사용자당 네이티브 시스템에 통합된 확장: 바로 가기, 파일 형식 연결, URL 프로토콜, AppPaths, 소프트웨어 클라이언트 및 COM
  • 가상 하위 시스템: 애플리케이션 개체, 환경 변수, 레지스트리 수정, 서비스 및 글꼴
  • 스크립트(사용자 컨텍스트에만 해당)
  • 관리 기관(App-V 4.6을 사용한 패키지 공존 제어)

동적 사용자 구성 파일의 헤더는 다음과 같습니다.

<?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는 매니페스트 파일에 있는 것과 동일한 값입니다.

Body

동적 사용자 구성 파일의 본문에는 매니페스트 파일에 정의된 모든 앱 확장 지점과 가상 애플리케이션을 구성하는 정보가 포함될 수 있습니다. 본문에는 다음 네 개의 하위 섹션이 허용됩니다.

  1. 응용 프로그램
  2. 하위
  3. UserScripts
  4. ManagingAuthority

응용 프로그램

패키지 내의 매니페스트 파일에 포함된 모든 앱 확장에는 매니페스트 파일에서 찾을 수 있는 애플리케이션 ID가 할당되어 있습니다. 애플리케이션 ID를 사용하면 패키지 내에서 지정된 애플리케이션에 대한 모든 확장을 사용하거나 사용하지 않도록 설정할 수 있습니다. 애플리케이션 ID는 매니페스트 파일에 있어야 합니다. 그렇지 않으면 무시됩니다.

<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 및 하위 노드로 정렬된 기타 하위 시스템입니다.

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

<Subsystems>

..

</Subsystems>

..

</UserConfiguration>

Enabled 특성을 사용하여 각 하위 시스템을 사용하거나 사용하지 않도록 설정할 수 있습니다.

Extensions

일부 하위 시스템(확장 하위 시스템) 컨트롤 확장. 이러한 하위 시스템은 바로 가기, File-Type 연결, URL 프로토콜, AppPaths, 소프트웨어 클라이언트 및 COM입니다.

확장 하위 시스템은 콘텐츠와 독립적으로 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. 예를 들어 바로 가기를 사용하도록 설정하면 클라이언트는 기본적으로 매니페스트에 포함된 바로 가기를 사용합니다. 각 확장 하위 시스템에는 확장> 노드가 <포함될 수 있습니다. 이 자식 요소가 있는 경우 클라이언트는 해당 하위 시스템에 대한 매니페스트 파일의 콘텐츠를 무시하고 구성 파일의 콘텐츠만 사용합니다.

예제:

  • 사용자 또는 배포 구성 파일에서 이를 정의하면 매니페스트의 콘텐츠가 무시됩니다.

    
    <Shortcuts  Enabled="true"\>
    
    <Extensions>
    
    ...
    
    </Extensions>
    
    </Shortcuts>
    
  • 다음만 정의하면 게시하는 동안 매니페스트의 콘텐츠가 통합됩니다.

    
    <Shortcuts  Enabled="true"/>
    
  • 다음을 정의하면 매니페스트 내의 모든 바로 가기가 무시됩니다. 즉, 바로 가기가 통합되지 않습니다.

    
    <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 형식을 사용하여 하위 시스템을 설정할 수 있습니다.


<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-000000FF1CE}\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}]\MicrosoftContoso\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 을 입력하고 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 서버에 등록된 애플리케이션을 허용합니다. 모드는 다음과 같습니다.

  • 통합
  • 격리
  • 꺼짐

<COM Mode="Isolated"/>

가상 커널 개체


<Objects Enabled="false" />

Virtual Registry 는 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>

<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

UserScripts를 사용하여 가상 환경을 설정하거나 변경합니다. 배포 시 스크립트를 실행하거나 애플리케이션이 종료된 후 환경을 정리할 수도 있습니다. 샘플 스크립트를 보려면 시퀀서에서 생성된 사용자 구성 파일을 참조하세요. 아래 스크립트 섹션에서는 사용할 수 있는 다양한 트리거에 대한 자세한 정보를 제공합니다.

ManagingAuthority

패키지의 두 버전이 동일한 컴퓨터에 공존하는 경우 ManagingAuthority를 사용합니다. 하나는 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" />

배포 구성 파일(DeploymentConfig.xml)

DeploymentConfig 파일은 컴퓨터 컨텍스트 및 사용자 컨텍스트에 대한 구성 설정을 제공하여 UserConfig 파일에 나열된 것과 동일한 기능을 제공합니다. App-V 5.1 클라이언트를 실행하는 컴퓨터에 패키지를 배포할 때 설정이 적용됩니다.

DeploymentConfig 파일을 사용하여 패키지에 대한 사용자 지정 설정을 지정하거나 수정합니다.

  • 모든 UserConfig 설정
  • 모든 사용자에 대해서만 전역적으로 적용할 수 있는 확장
  • 전역 머신 위치에 대한 가상 하위 시스템(예: 레지스트리)
  • 제품 원본 URL
  • 스크립트(컴퓨터 컨텍스트에만 해당)
  • 자식 프로세스를 종료하는 컨트롤

헤더

동적 배포 구성 파일의 헤더는 다음과 같습니다.

<?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는 매니페스트 파일에 있는 것과 동일한 값입니다.

Body

동적 배포 구성 파일의 본문에는 다음 두 섹션이 포함됩니다.

  • UserConfiguration: 이전 섹션에서 설명한 사용자 구성 파일과 동일한 콘텐츠를 허용합니다. 사용자에게 패키지를 게시할 때 사용자 구성 파일을 제공하지 않는 한 이 섹션의 모든 appextensions 구성 설정은 패키지 내 매니페스트의 해당 설정을 재정의합니다. UserConfig 파일도 제공하는 경우 배포 구성 파일의 사용자 설정 대신 사용됩니다. 패키지를 전역적으로 게시하는 경우 배포 구성 파일의 콘텐츠만 매니페스트와 함께 사용됩니다. 자세한 내용은 사용자 구성 파일 콘텐츠(UserConfig.xml)를 참조하세요.

  • MachineConfiguration: 컴퓨터의 특정 사용자가 아닌 전체 컴퓨터에 대해서만 구성할 수 있는 정보를 포함합니다. 예를 들어 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>

UserConfiguration

이 섹션에 제공된 설정에 대한 자세한 내용은 사용자 구성 파일 콘텐츠(UserConfig.xml) 를 참조하세요.

MachineConfiguration

MachineConfiguration 섹션을 사용하여 전체 컴퓨터에 대한 정보를 구성합니다. 컴퓨터의 특정 사용자에 대한 것이 아닙니다. 예를 들어 가상 레지스트리의 레지스트리 키를 HKEY_LOCAL_MACHINE. 이 요소 아래에는 다음 네 개의 하위 섹션이 허용됩니다.

  1. 하위
  2. ProductSourceURLOptOut
  3. MachineScripts
  4. TerminateChildProcess

하위

AppExtensions 및 하위 노드로 정렬된 기타 하위 시스템입니다.


<MachineConfiguration>

  <Subsystems>

  …

  </Subsystems>

…

</MachineConfiguration>

Enabled 특성을 사용하여 각 하위 시스템을 사용하거나 사용하지 않도록 설정할 수 있습니다.

Extensions

일부 하위 시스템(확장 하위 시스템) 컨트롤 확장. 하위 시스템은 기본 프로그램에서 사용하는 애플리케이션 기능입니다. 이러한 유형의 확장의 경우 로컬 시스템에 통합하기 위해 패키지를 전역적으로 게시해야 합니다. 사용자 구성의 확장에도 적용되는 컨트롤 및 설정에 대한 동일한 규칙이 MachineConfiguration 섹션에 적용됩니다.

애플리케이션 기능: 애플리케이션이 자신을 다음과 같이 등록할 수 있도록 하는 기본 프로그램에서 사용됩니다.

  • 특정 파일 확장자를 열 수 있습니다.
  • 시작 메뉴 인터넷 브라우저 슬롯의 경쟁자
  • 특정 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>

지원되는 확장 하위 시스템:

Machine Wide Virtual Registry 확장 하위 시스템은 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>

Machine Wide Virtual Kernel 개체


<Objects>

<NotIsolate>

   <Object Name="testObject" />

 </NotIsolate>

</Objects>

ProductSourceURLOptOut

ProductSourceURLOptOut을 사용하여 패키지의 URL을 PackageSourceRoot 를 통해 전역적으로 수정할 수 있음을 나타냅니다(지점 시나리오 지원). 변경 내용은 다음 시작에 적용됩니다.


<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 (SYSTEM, N/A)
PublishPackage X X (SYSTEM, User)
UnpublishPackage X X (SYSTEM, User)
RemovePackage X (SYSTEM, N/A)
StartProcess X X X X (사용자, 사용자)
ExitProcess X X X (사용자, 사용자)
StartVirtualEnvironment X X X (사용자, 사용자)
TerminateVirtualEnvironment X X (사용자, 사용자)

단일 이벤트 트리거에서 여러 스크립트 사용

App-V 5.1은 App-V 4.6에서 App-V 5.0 이상으로 변환하는 패키지를 포함하여 App-V 패키지에 대한 단일 이벤트 트리거에서 여러 스크립트 사용을 지원합니다. 여러 스크립트를 사용하도록 설정하기 위해 App-V 5.1은 App-V 클라이언트 설치의 일부로 설치된 ScriptRunner.exe 스크립트 시작 관리자 애플리케이션을 사용합니다.

단일 이벤트 트리거에서 여러 스크립트를 사용하는 방법

실행하려는 각 스크립트에 대해 해당 스크립트를 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</Path>

App-V 클라이언트 설치의 일부로 설치된 스크립트 시작 관리자 애플리케이션입니다.

참고

ScriptRunner.exe App-V 클라이언트의 일부로 설치되어 있지만 App-V 클라이언트의 위치는 %path%에 있어야 합니다. 그렇지 않으면 ScriptRunner가 실행되지 않습니다. ScriptRunner.exe 일반적으로 C:FilesApplication Virtualizationfolder에 있습니다.

<인수>

-appvscript - 실행하려는 실제 스크립트를 나타내는 토큰입니다.

script1.exe – 실행할 스크립트의 이름입니다.

arg1 arg2 – 실행하려는 스크립트에 대한 인수입니다.

-appvscriptrunnerparameters – script1.exe 대한 실행 옵션을 나타내는 토큰입니다.

-wait – ScriptRunner가 다음 스크립트로 진행하기 전에 script1.exe 실행이 완료되기를 기다리도록 알리는 토큰입니다.

-timeout=x – x초 후 현재 스크립트 실행을 중지하도록 ScriptRunner에 알리는 토큰입니다. 지정된 다른 모든 스크립트는 계속 실행됩니다.

-rollbackonerror – 아직 실행되지 않은 모든 스크립트 실행을 중지하고 App-V 클라이언트에 오류를 롤백하도록 ScriptRunner에 알리는 토큰입니다.

<대기 시간 제한="40" RollbackOnError="true"/>

ScriptRunner.exe 전체 완료를 기다립니다.

전체 실행기의 시간 제한 값을 개별 스크립트의 시간 제한 값 합계보다 크거나 같게 설정합니다.

개별 스크립트가 오류를 보고하고 rollbackonerror가 true로 설정된 경우 ScriptRunner는 App-V 클라이언트에 오류를 보고합니다.

ScriptRunner는 파일 형식이 컴퓨터에 설치된 애플리케이션과 연결된 모든 스크립트를 실행합니다. 연결된 애플리케이션이 없거나 스크립트의 파일 형식이 컴퓨터의 애플리케이션과 연결되지 않은 경우 스크립트가 실행되지 않습니다.

App-V 5.1 매니페스트 파일을 사용하여 동적 구성 파일 만들기

세 가지 방법 중 하나를 사용하여 동적 구성 파일을 만들 수 있습니다. 즉, 수동으로 App-V 5.1 관리 콘솔을 사용하거나 패키지를 시퀀싱하여 두 개의 샘플 파일을 생성합니다. App-V 5.1 관리 콘솔을 사용하여 파일을 만드는 방법에 대한 자세한 내용은 App-V 5.1 관리 콘솔을 사용하여 사용자 지정 구성 파일을 만드는 방법을 참조하세요.

파일을 수동으로 만들려면 이전 섹션의 위의 정보를 단일 파일로 결합할 수 있습니다. 시퀀서에서 생성된 파일을 사용하는 것이 좋습니다.

App-V 문제의 경우 App-V TechNet 포럼을 사용합니다.