Informazioni sulla configurazione dinamica di App-V
Si applica a:
- Windows 10
- Windows 11
È possibile usare la configurazione dinamica per personalizzare un pacchetto App-V per un utente. Questo articolo illustra come creare o modificare un file di configurazione dinamica esistente.
Quando si modifica il file di configurazione dinamica, viene personalizzato il modo in cui verrà eseguito un pacchetto App-V per un utente o un gruppo. Di conseguenza, la personalizzazione del pacchetto è resa più comoda rimuovendo la necessità di ri-sequenziare i pacchetti usando le impostazioni desiderate e offre un modo per mantenere indipendenti il contenuto del pacchetto e le impostazioni personalizzate.
Avanzate: configurazione dinamica
I pacchetti dell'applicazione virtuale contengono un manifesto che fornisce tutte le informazioni di base per il pacchetto. Queste informazioni includono le impostazioni predefinite per le impostazioni del pacchetto e determinano le impostazioni nel formato più semplice (senza ulteriori personalizzazioni). Se si desidera modificare queste impostazioni predefinite per un determinato utente o gruppo, è possibile creare e modificare i file seguenti:
- File di configurazione utente
- File di configurazione della distribuzione
Questi file .xml specificano le impostazioni del pacchetto che consentono di personalizzare i pacchetti senza influire direttamente sui pacchetti. Quando viene creato un pacchetto, sequencer genera automaticamente la distribuzione predefinita e la configurazione utente .xml file usando i dati del manifesto del pacchetto. Questi file di configurazione generati automaticamente riflettono le impostazioni predefinite del pacchetto configurate durante la sequenziazione. Se si applicano questi file di configurazione a un pacchetto nel formato generato dal sequencer, i pacchetti avranno le stesse impostazioni predefinite provenienti dal manifesto. Questo risultato fornisce un modello specifico del pacchetto per iniziare se è necessario modificare una delle impostazioni predefinite.
Nota
Le informazioni seguenti possono essere usate solo per modificare i file di configurazione generati dal sequencer per personalizzare i pacchetti in base ai requisiti specifici di utenti o gruppi.
Contenuto del file di configurazione dinamica
Tutte le aggiunte, le eliminazioni e gli aggiornamenti nei file di configurazione devono essere eseguiti in relazione ai valori predefiniti specificati dalle informazioni sul manifesto del pacchetto. L'elenco seguente rappresenta la relazione tra questi file nel modo in cui verranno letti, dalla maggior parte alla precedenza minima:
- File di .xml configurazione utente
- File di .xml di configurazione della distribuzione
- Manifesto del pacchetto
Il primo elemento rappresenta l'ultima lettura. Pertanto, il contenuto ha la precedenza. Tutti i pacchetti contengono e forniscono impostazioni predefinite dal manifesto del pacchetto, ma hanno anche la precedenza minima. Se si applica un file di configurazione della distribuzione .xml con impostazioni personalizzate, verrà eseguito l'override delle impostazioni predefinite del manifesto del pacchetto. Se si applica un file di configurazione utente .xml con impostazioni personalizzate prima dell'override delle impostazioni predefinite del manifesto del pacchetto, sostituirà sia la configurazione di distribuzione che le impostazioni predefinite del manifesto del pacchetto.
Esistono due tipi di file di configurazione:
- File di configurazione utente (UserConfig):consente di specificare o modificare le impostazioni personalizzate per un pacchetto. Queste impostazioni verranno applicate per un utente specifico quando il pacchetto viene distribuito in un computer che esegue il client App-V.
- File di configurazione della distribuzione (DeploymentConfig):consente di specificare o modificare le impostazioni predefinite per un pacchetto. Queste impostazioni verranno applicate a tutti gli utenti quando un pacchetto viene distribuito in un computer che esegue il client App-V.
È possibile usare il file UserConfig per personalizzare le impostazioni di un pacchetto per un set specifico di utenti in un computer o apportare modifiche che verranno applicate ai percorsi utente locali, ad esempio HKCU. È possibile usare il file DeploymentConfig per modificare le impostazioni predefinite di un pacchetto per tutti gli utenti di un computer o apportare modifiche che verranno applicate a posizioni globali come HKEY_LOCAL_MACHINE e la cartella Tutti gli utenti.
Il file UserConfig fornisce impostazioni di configurazione che è possibile applicare a un singolo utente senza influire su altri utenti in un client:
- Estensioni che verranno integrate nel sistema nativo per utente: collegamenti, associazioni File-Type, protocolli URL, AppPath, client software e COM.
- Sottosistemi virtuali: oggetti applicazione, variabili di ambiente, modifiche del Registro di sistema, servizi e tipi di carattere.
- Script (solo contesto utente).
Il file DeploymentConfig fornisce le impostazioni di configurazione in due sezioni, una relativa al contesto del computer e una relativa al contesto utente che fornisce le stesse funzionalità elencate nell'elenco UserConfig precedente:
- Tutte le impostazioni UserConfig della sezione precedente in questo argomento
- Estensioni che possono essere applicate solo a livello globale per tutti gli utenti
- Sottosistemi virtuali che possono essere configurati per le posizioni del computer globale, ad esempio il Registro di sistema
- URL origine prodotto
- Script (solo contesto computer)
- Controlli per terminare i processi figlio
Struttura dei file
La struttura del file di configurazione dinamica di App-V è illustrata nella sezione seguente.
File di configurazione utente dinamico
Intestazione
Un esempio dell'intestazione di un file di configurazione utente dinamica è:
<?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 è lo stesso valore esistente nel file manifesto.
Corpo del file di Configurazione utente dinamica
Il corpo del file configurazione utente dinamica può includere tutti i punti di estensione dell'app definiti nel file manifesto e le informazioni per configurare le applicazioni virtuali. Nel corpo sono consentite quattro sottosezioni:
Applicazioni: tutte le estensioni dell'app contenute nel file manifesto all'interno di un pacchetto vengono assegnate con un ID applicazione, definito anche nel file manifesto. In questo modo è possibile abilitare o disabilitare tutte le estensioni per una determinata applicazione all'interno di un pacchetto. L'ID applicazione deve esistere nel file manifesto oppure verrà ignorato.
<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>
Sottosistemi: AppExtensions e altri sottosistemi sono disposti come sottonodi in <Subsystems>
, come illustrato nell'esempio seguente.
<UserConfiguration **PackageId**="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/userconfiguration">
<Subsystems>
..
</Subsystems>
..
</UserConfiguration>
Ogni sottosistema può essere abilitato/disabilitato usando l'attributo Enabled . Le sezioni seguenti descrivono i vari sottosistemi e gli esempi di utilizzo.
Estensioni di file di Configurazione utente dinamica
Estensioni di controllo dei sottosistemi di estensione. Questi sottosistemi sono collegamenti, associazioni File-Type, protocolli URL, AppPath, client software e COM.
I sottosistemi di estensione possono essere abilitati e disabilitati indipendentemente dal contenuto. Pertanto, se i collegamenti sono abilitati, il client userà i collegamenti contenuti nel manifesto per impostazione predefinita. Ogni sottosistema di estensione può contenere un <Extensions>
nodo. Se questo elemento figlio è presente, il client ignorerà il contenuto nel file Manifesto per tale sottosistema e userà solo il contenuto nel file di configurazione.
Esempi del sottosistema shortcuts
Esempio 1
Il contenuto verrà ignorato se l'utente ha definito le sintassi seguenti nel file di configurazione dinamico o di distribuzione:
<Shortcuts Enabled="true">
<Extensions
...
</Extensions>
</Shortcuts>
Esempio 2
Il contenuto nel manifesto verrà integrato durante la pubblicazione se l'utente ha definito solo la sintassi seguente:
`<Shortcuts Enabled="true"/>`
Esempio 3
Tutti i collegamenti nel manifesto verranno ignorati e non verranno integrati collegamenti se l'utente definisce le sintassi seguenti:
<Shortcuts Enabled="true">
<Extensions/>
</Shortcuts>
Sottosistemi di estensione supportati
Collegamenti: questo sottosistema controlla i collegamenti che verranno integrati nel sistema locale. Nell'esempio seguente sono disponibili due collegamenti:
<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>
Associazioni di tipi di file: associa i tipi di file ai programmi per aprire per impostazione predefinita e configurare il menu di scelta rapida. I tipi MIME possono essere configurati anche con questo sottosistema. Un esempio di associazione 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>
Protocolli URL: questo sottosistema controlla i protocolli URL integrati nel registro locale del computer client. Nell'esempio seguente viene illustrato il protocollo "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>
Client software: consente all'app di registrarsi come client di posta elettronica, lettore di notizie o lettore multimediale e rende l'app visibile nell'interfaccia utente Imposta accesso al programma e Impostazioni predefinite computer. Nella maggior parte dei casi, è sufficiente abilitarlo e disabilitarlo. Esiste anche un controllo che consente di abilitare o disabilitare il client di posta elettronica solo nel caso in cui tutti gli altri client rimangano così come sono.
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
AppPaths: se un'applicazione, ad esempio contoso.exe, è registrata con un nome apppath "myapp", questo sottosistema consente di aprire l'app immettendo "myapp" nel menu esegui.
<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: consente a un'applicazione di registrare i server COM locali. La modalità può essere Integration, Isolated o Off. Quando Isol.
<COM Mode="Isolated"/>
Altre impostazioni per il file di configurazione utente dinamica
Oltre alle estensioni, gli altri sottosistemi seguenti possono essere abilitati/disabilitati e modificati.
Oggetti kernel virtuali
<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>
File system virtuale
<FileSystem Enabled="true" />
Tipi di carattere virtuali
<Fonts Enabled="false" />
Variabili di ambiente virtuale
<EnvironmentVariables Enabled="true">
<Include>
<Variable Name="UserPath" Value="%path%;%UserProfile%" />
<Variable Name="UserLib" Value="%UserProfile%\\ABC" />
</Include>
<Delete>
<Variable Name="lib" />
</Delete>
</EnvironmentVariables>
Servizi virtuali
<Services Enabled="false" />
UserScripts
Gli script possono essere usati per configurare o modificare l'ambiente virtuale ed eseguire script durante la distribuzione o la rimozione, prima dell'esecuzione di un'applicazione o per pulire l'ambiente dopo il termine dell'applicazione. Per visualizzare uno script di esempio, fare riferimento a un output di file di configurazione utente di esempio del sequencer. Per altre informazioni sui vari trigger che è possibile usare per configurare gli script, vedere la sezione Script .
File di configurazione della distribuzione dinamica
Intestazione del file di configurazione della distribuzione dinamica
L'intestazione di un file di configurazione della distribuzione dovrebbe essere simile alla seguente:
<?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 è lo stesso valore di quello esistente nel file manifesto.
Corpo del file di Configurazione distribuzione dinamica
Il corpo del file di configurazione della distribuzione include due sezioni:
- La sezione Configurazione utente consente lo stesso contenuto del file di configurazione utente descritto nella sezione precedente. Quando il pacchetto viene pubblicato in un utente, tutte le impostazioni di configurazione appextensions in questa sezione sostituiscono le impostazioni corrispondenti nel manifesto all'interno del pacchetto, a meno che non venga fornito anche un file di configurazione utente. Se viene fornito anche un file UserConfig, verrà usato al posto delle impostazioni utente nel file di configurazione della distribuzione. Se il pacchetto viene pubblicato a livello globale, verrà usato solo il contenuto del file di configurazione della distribuzione in combinazione con il manifesto.
- La sezione Configurazione computer contiene informazioni che possono essere configurate solo per un intero computer, non per un utente specifico nel computer. Ad esempio, HKEY_LOCAL_MACHINE chiavi del Registro di sistema in VFS.
<DeploymentConfiguration PackageId="1f8488bf-2257-46b4-b27f-09c9dbaae707" DisplayName="Reserved" xmlns="http://schemas.microsoft.com/appv/2010/deploymentconfiguration">
<UserConfiguration>
..
</UserConfiguration>
<MachineConfiguration>
..
</MachineConfiguration>
..
</MachineConfiguration>
</DeploymentConfiguration>
Configurazione utente: per altre informazioni su questa sezione, vedere Configurazione utente dinamica.
Configurazione computer: la sezione Configurazione computer del file di configurazione della distribuzione configura informazioni che possono essere impostate solo per un intero computer, non per un utente specifico nel computer, ad esempio le chiavi del Registro di sistema HKEY_LOCAL_MACHINE nel Registro di sistema virtuale. Questo elemento può avere le quattro sottosezioni seguenti.
Sottosistemi
AppExtensions e altri sottosistemi sono disposti come sottonodi in <Subsystems>
:
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
Nella sezione seguente vengono descritti i vari sottosistemi e gli esempi di utilizzo.
Estensioni
Alcuni sottosistemi (sottosistemi di estensione) controllano le estensioni che possono essere applicate solo a tutti gli utenti. Il sottosistema è costituito dalle funzionalità dell'applicazione. Poiché questo sottosistema può essere applicato solo a tutti gli utenti, il pacchetto deve essere pubblicato a livello globale affinché questo tipo di estensione venga integrato nel sistema locale. Le regole per i controlli e le impostazioni dell'estensione Configurazione utente si applicano anche a quelle in Configurazione computer.
Funzionalità dell'applicazione
L'estensione Funzionalità dell'applicazione viene usata dai programmi predefiniti nell'interfaccia del sistema operativo Windows; consente a un'applicazione di registrarsi come in grado di aprire determinate estensioni di file, come contendente per lo slot del browser Internet del menu Start e come in grado di aprire determinati tipi MIME di Windows. Questa estensione rende anche visibile l'applicazione virtuale nell'interfaccia utente Imposta programmi predefiniti.
<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>
Altre impostazioni per il file di configurazione della distribuzione dinamica
È possibile modificare altri sottosistemi oltre alle estensioni:
- Registro virtuale a livello di computer: usare questo sottosistema quando si vuole impostare una chiave del Registro di sistema nel Registro di sistema virtuale all'interno di 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>
- Oggetti kernel virtuali a livello di computer
<Objects>
<NotIsolate>
<Object Name="testObject" />
</NotIsolate>
</Objects>
- ProductSourceURLOptOut: indica se l'URL del pacchetto può essere modificato a livello globale tramite PackageSourceRoot per supportare gli scenari delle succursali. È impostato su False per impostazione predefinita. Le modifiche al valore hanno effetto all'avvio successivo.
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts: il pacchetto può essere configurato per eseguire script durante la distribuzione, la pubblicazione o la rimozione. Per visualizzare uno script di esempio, vedere un file di configurazione della distribuzione di esempio generato dal sequencer. Nella sezione seguente vengono fornite altre informazioni sui vari trigger che è possibile usare per configurare gli script.
TerminateChildProcess: è possibile usare questo sottosistema per specificare che i processi figlio di un eseguibile dell'applicazione verranno terminati quando il processo application.exe viene terminato.
<MachineConfiguration>
..
<TerminateChildProcesses>
<Application Path="\[{PackageRoot}\]\\Contoso\\ContosoApp.EXE" />
<Application Path="\[{PackageRoot}\]\\LitView\\LitViewBrowser.exe" />
<Application Path="\[{ProgramFilesX86}\]\\Microsoft Contoso\\Contoso\\contosomail.EXE" />
</TerminateChildProcesses>
..
</MachineConfiguration>
Script
Nella tabella seguente vengono descritti i vari eventi script e il contesto in cui possono essere eseguiti.
Tempo di esecuzione dello script | Può essere specificato in Configurazione distribuzione | Può essere specificato in Configurazione utente | Può essere eseguito nell'ambiente virtuale del pacchetto | Può essere eseguito nel contesto di un'applicazione specifica | Esecuzioni nel contesto di sistema/utente: (Configurazione distribuzione, Configurazione utente) |
---|---|---|---|---|---|
AddPackage | X | (SYSTEM, N/D) | |||
PublishPackage | X | X | (SYSTEM, User) | ||
Annulla pubblicazionePacchetto | X | X | (SYSTEM, User) | ||
RemovePackage | X | (SYSTEM, N/D) | |||
StartProcess | X | X | X | X | (Utente, Utente) |
ExitProcess | X | X | X | (Utente, Utente) | |
StartVirtualEnvironment | X | X | X | (Utente, Utente) | |
TerminateVirtualEnvironment | X | X | (Utente, Utente) |
Uso di più script in un singolo trigger di evento
App-V supporta l'uso di più script in un singolo trigger di evento per i pacchetti App-V, inclusi i pacchetti convertiti da App-V 4.6 a App-V per il client Windows. Per abilitare l'uso di più script, App-V usa un'applicazione di avvio di script denominata ScriptRunner.exe, inclusa nel client App-V.
Come usare più script in un singolo trigger di evento
Per ogni script da eseguire, passare lo script come argomento all'applicazione ScriptRunner.exe. L'applicazione eseguirà ogni script separatamente, insieme agli argomenti specificati per ogni script. Usare un solo script (ScriptRunner.exe) per ogni trigger.
Nota
È consigliabile eseguire prima la riga multi-script da un prompt dei comandi per assicurarsi che tutti gli argomenti siano compilati correttamente prima di aggiungerli al file di configurazione della distribuzione.
Descrizioni di script e parametri di esempio
Usando il file e la tabella di esempio seguenti, modificare il file di distribuzione o di configurazione utente per aggiungere gli script da eseguire.
<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>
Parametro nel file di esempio | Descrizione |
---|---|
<AddPackage> |
Nome del trigger di evento per cui si esegue uno script, ad esempio quando si aggiunge o si pubblica un pacchetto. |
ScriptRunner.exe |
Applicazione di avvio script inclusa nel client App-V. Anche se ScriptRunner.exe è incluso nel client App-V, la posizione del client App-V deve essere in %path% o ScriptRunner non verrà eseguita. ScriptRunner.exe si trova in genere nella cartella C:\Programmi\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 -token che rappresenta lo script effettivo che si vuole eseguire.script1.exe — nome dello script da eseguire.arg1 arg2 - argomenti per lo script che si desidera eseguire.-appvscriptrunnerparameters -token che rappresenta le opzioni di esecuzione per script1.exe.-wait -token che indica a ScriptRunner di attendere il completamento dell'esecuzione di script1.exe prima di procedere allo script successivo.-timeout=x -token che informa ScriptRunner di interrompere l'esecuzione dello script corrente dopo x numero di secondi. Tutti gli altri script specificati continueranno a essere eseguiti.-rollbackonerror -token che indica a ScriptRunner di interrompere l'esecuzione di tutti gli script che non sono ancora stati eseguiti ed eseguire il rollback di un errore al client App-V. |
<Wait timeout=”40” RollbackOnError=”true”/> |
Attende il completamento complessivo di ScriptRunner.exe. Impostare il valore di timeout per lo strumento di esecuzione complessivo su maggiore o uguale alla somma dei valori di timeout nei singoli script. Se uno script singolo ha segnalato un errore e rollbackonerror è stato impostato su True, ScriptRunner deve segnalare l'errore al client App-V. |
ScriptRunner eseguirà qualsiasi script il cui tipo di file è associato a un'applicazione installata nel computer. Se l'applicazione associata è mancante o il tipo di file dello script non è associato a nessuna delle applicazioni del computer, lo script non verrà eseguito.
Create un file di configurazione dinamica usando un file manifesto App-V
È possibile creare il file di configurazione dinamica usando uno dei tre metodi seguenti: manualmente, usando la console di gestione di App-V o sequenziando un pacchetto, che genererà un pacchetto con due file di esempio.
Per altre informazioni su come creare il file usando La console di gestione di App-V, vedere Come creare un file di configurazione personalizzata usando la Console di gestione App-V.
Per creare manualmente il file, è possibile combinare i componenti elencati nelle sezioni precedenti in un unico file. Tuttavia, è consigliabile usare i file generati dal sequencer anziché quelli creati manualmente.