Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
- Windows 10
- Windows 11
È possibile usare la configurazione dinamica per personalizzare un pacchetto App-V per un utente. Questo articolo spiega 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. Pertanto, la personalizzazione dei pacchetti è resa più semplice eliminando la necessità di risequenziare i pacchetti utilizzando le impostazioni desiderate e fornisce un modo per mantenere indipendenti il contenuto del pacchetto e le impostazioni personalizzate.
Impostazioni avanzate: configurazione dinamica
I pacchetti di applicazioni virtuali contengono un manifesto che fornisce tutte le informazioni di base del 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 utente o un gruppo specifico, è possibile creare e modificare i file seguenti:
- File di configurazione utente
- File di configurazione distribuzione
Questi file .xml specificano le impostazioni dei pacchetti, consentono di personalizzare i pacchetti senza influire direttamente sui pacchetti. Quando viene creato un pacchetto, Sequencer genera automaticamente i file di distribuzione e configurazione utente predefiniti .xml utilizzando i dati 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 relativo manifesto. Questo risultato fornisce un modello specifico del pacchetto per iniziare se è necessario modificare una delle impostazioni predefinite.
Nota
Le informazioni seguenti possono essere utilizzate solo per modificare i file di configurazione generati da sequencer per personalizzare i pacchetti in base a requisiti specifici dell'utente o del gruppo.
Contenuto del file di configurazione dinamica
Tutte le aggiunte, le eliminazioni e gli aggiornamenti nei file di configurazione devono essere effettuati in relazione ai valori predefiniti specificati dalle informazioni del manifesto del pacchetto. L'elenco seguente rappresenta la relazione tra questi file nel modo in cui verranno letti, dal più al meno precedente:
- File di .xml di configurazione utente
- File di configurazione .xml distribuzione
- Manifesto del pacchetto
Il primo elemento rappresenta ciò che verrà letto per ultimo. Di conseguenza, il suo contenuto ha la precedenza. Tutti i pacchetti contengono e forniscono intrinsecamente le impostazioni predefinite del manifesto del pacchetto, ma hanno anche la precedenza minima. Se si applica un file di .xml Configurazione distribuzione con impostazioni personalizzate, verranno sostituite le impostazioni predefinite del manifesto del pacchetto. Se si applica un file di .xml di configurazione utente con impostazioni personalizzate prima dell'override delle impostazioni predefinite del manifesto del pacchetto, verrà eseguito l'override sia della configurazione di distribuzione che delle 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 a un utente specifico quando il pacchetto viene distribuito in un computer che esegue il client App-V.
- File di configurazione 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 da applicare alle posizioni degli utenti 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 alle posizioni globali, ad esempio 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 sugli altri utenti di un client:
- Estensioni che verranno integrate nel sistema nativo per utente: collegamenti, associazioni di 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 globali dei computer, 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 di 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 presente nel file manifesto.
Corpo del file di configurazione utente dinamico
Il corpo del file di configurazione utente dinamico 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: a tutte le estensioni app contenute nel file manifesto all'interno di un pacchetto viene assegnato un ID applicazione, anch'esso definito 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 essere presente nel file manifesto, altrimenti 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 utilizzando l'attributo Enabled . Le sezioni seguenti descrivono i vari sottosistemi e gli esempi di utilizzo.
Estensioni file di Configurazione utente dinamica
Estensione I sottosistemi controllano le estensioni. Questi sottosistemi sono collegamenti, associazioni di File-Type, protocolli URL, AppPath, client software e COM.
I sottosistemi di estensione possono essere abilitati e disabilitati indipendentemente dal contenuto. Pertanto, se le scelte rapide sono abilitate, il client utilizzerà le scelte rapide da tastiera contenute 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 utilizzerà solo il contenuto nel file di configurazione.
Esempi del sottosistema Scelte rapide da tastiera
Esempio 1
Il contenuto verrà ignorato se l'utente ha definito le seguenti sintassi 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 seguente sintassi:
`<Shortcuts Enabled="true"/>`
Esempio 3
Tutte le scelte rapide da tastiera nel manifesto verranno ignorate e non verranno integrate scelte rapide da tastiera 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. L'esempio seguente presenta 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 da aprire per impostazione predefinita e per configurare il menu di scelta rapida. Con questo sottosistema è possibile configurare anche i tipi MIME. 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 del computer. Nella maggior parte dei casi, è sufficiente abilitarla e disabilitarla. Esiste anche un controllo che consente di abilitare o disabilitare il client di posta elettronica solo nel caso in cui si desideri che tutti gli altri client rimangano così come sono.
<SoftwareClients Enabled="true">
<ClientConfiguration EmailEnabled="false" />
</SoftwareClients>
Percorsi app: se un'applicazione, ad esempio contoso.exe, è registrata con il 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 Integrazione, Isolata o Disattivata. Quando Isol.
<COM Mode="Isolated"/>
Altre impostazioni per il file di configurazione utente dinamico
Oltre alle estensioni, è possibile abilitare/disabilitare e modificare i seguenti altri sottosistemi.
Oggetti kernel virtuale
<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" />
Caratteri 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 oppure possono pulire l'ambiente dopo la chiusura dell'applicazione. Fai riferimento a un file di configurazione utente di esempio restituito dal sequencer per visualizzare uno script di esempio. Per altre informazioni sui vari trigger che è possibile usare per configurare gli script, vedere la sezione Script .
File di configurazione della distribuzione dinamica
Intestazione file di configurazione della distribuzione dinamica
L'intestazione di un file di configurazione 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 presente nel file manifesto.
Corpo del file di configurazione della 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 per un utente, le impostazioni di configurazione delle appextensions in questa sezione sostituiranno 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, in combinazione con il manifesto verrà usato solo il contenuto del file di configurazione della distribuzione.
- La sezione Configurazione macchina contiene informazioni che possono essere configurate solo per un intero computer, non per un utente specifico sul computer. Ad esempio, HKEY_LOCAL_MACHINE le chiavi del Registro di sistema nel 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 ulteriori informazioni su questa sezione, vedere Configurazione utente dinamica.
Configurazione computer: la sezione Configurazione computer del file di configurazione distribuzione configura informazioni che possono essere impostate solo per un intero computer, non per un utente specifico sul computer, come le chiavi del Registro di sistema HKEY_LOCAL_MACHINE nel Registro virtuale. Questo elemento può avere le seguenti quattro sottosezioni.
Sottosistemi
AppExtensions e altri sottosistemi sono disposti come sottonodi in <Subsystems>:
<MachineConfiguration>
<Subsystems>
..
</Subsystems>
..
</MachineConfiguration>
La sezione seguente descrive i vari sottosistemi e gli esempi di utilizzo.
Estensioni
Alcuni sottosistemi (sottosistemi di estensione) controllano estensioni che possono essere applicate solo a tutti gli utenti. Il sottosistema sono le funzionalità dell'applicazione. Poiché questo sottosistema può essere applicato solo a tutti gli utenti, il pacchetto deve essere pubblicato globalmente per poter integrare questo tipo di estensione nel sistema locale. Le regole per i controlli e le impostazioni dell'estensione Configurazione utente si applicano anche a quelle in Configurazione macchina.
Funzionalità dell'applicazione
L'estensione Application Capabilities viene utilizzata 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 concorrente per lo slot del browser Internet del menu Start e come in grado di aprire determinati tipi MIME di Windows. Questa estensione rende anche l'applicazione virtuale visibile 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
Oltre alle estensioni, è possibile modificare altri sottosistemi:
- Registro virtuale a livello di computer: utilizzare questo sottosistema per impostare una chiave del Registro di sistema nel registro 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 virtuale 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 di succursale. Per impostazione predefinita, l'opzione è impostata su False. Le modifiche apportate al valore hanno effetto al successivo avvio.
<MachineConfiguration>
..
<ProductSourceURLOptOut Enabled="true" />
..
</MachineConfiguration>
MachineScripts: il pacchetto può essere configurato per eseguire script al momento della distribuzione, della pubblicazione o della rimozione. Per visualizzare uno script di esempio, vedere un file di configurazione della distribuzione di esempio generato da sequencer. La sezione seguente fornisce altre informazioni sui vari trigger che è possibile usare per configurare gli script.
TerminateChildProcess: è possibile utilizzare questo sottosistema per specificare che i processi figlio di un eseguibile di un'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 degli 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 | Esecuzione in contesto sistema/utente: (configurazione distribuzione, configurazione utente) |
|---|---|---|---|---|---|
| AddPackage | X | (SISTEMA, N/A) | |||
| PublishPackage | X | X | (SISTEMA, Utente) | ||
| UnpublishPackage | X | X | (SISTEMA, Utente) | ||
| RemovePackage | X | (SISTEMA, N/A) | |||
| 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 ad App-V per il client Windows. Per consentire l'uso di più script, App-V usa un'applicazione di avvio degli script, denominata ScriptRunner.exe, inclusa nel client App-V.
Come usare più script in un singolo trigger di evento
Per ogni script che si desidera eseguire, passarlo come argomento all'applicazione ScriptRunner.exe. L'applicazione eseguirà ogni script separatamente, insieme agli argomenti specificati dall'utente per ogni script. Usare un solo script (ScriptRunner.exe) per trigger.
Nota
È consigliabile eseguire prima la riga multi-script da un prompt dei comandi per assicurarsi che tutti gli argomenti siano stati compilati correttamente prima di aggiungerli al file di configurazione della distribuzione.
Descrizioni di script e parametri di esempio
Utilizzando il file e la tabella di esempio seguenti, modificare il file di distribuzione o di configurazione utente per aggiungere gli script che si desidera 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 sta eseguendo uno script, ad esempio durante l'aggiunta o la pubblicazione di un pacchetto. |
ScriptRunner.exe |
Applicazione di avvio degli script inclusa nel client App-V. Anche se ScriptRunner.exe è incluso nel client App-V, il percorso del client App-V deve essere in %path%, altrimenti ScriptRunner non verrà eseguito. ScriptRunner.exesi trova in genere nella cartella 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—che rappresenta lo script effettivo che si desidera eseguire.script1.exe—nome dello script che si desidera eseguire.arg1 arg2—per lo script che si desidera eseguire.-appvscriptrunnerparameters- 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 passare allo script successivo.-timeout=x—token che informa ScriptRunner di interrompere l'esecuzione dello script corrente dopo un numero x di secondi. Tutti gli altri script specificati verranno comunque eseguiti.-rollbackonerror—token che indica a ScriptRunner di interrompere l'esecuzione di tutti gli script che non sono ancora stati eseguiti e di eseguire il rollback di un errore nel client App-V. |
<Wait timeout=”40” RollbackOnError=”true”/> |
Attende il completamento complessivo di ScriptRunner.exe. Impostare il valore di timeout per il corridore complessivo in modo che sia maggiore o uguale alla somma dei valori di timeout nei singoli script. Se un singolo script segnala un errore e rollbackonerror è 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 sul computer. Se l'applicazione associata manca o il tipo di file dello script non è associato ad alcuna delle applicazioni del computer, lo script non verrà eseguito.
Creare un file di configurazione dinamica con un file manifesto di 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 personalizzato usando la console di gestione di App-V.
Per creare il file manualmente, puoi combinare i componenti elencati nelle sezioni precedenti in un unico file. Tuttavia, ti consigliamo di utilizzare i file generati dal sequencer invece di quelli creati manualmente.