Esporta (0) Stampa
Espandi tutto

Usare uno script di PowerShell come attività di avvio

Aggiornamento: maggio 2014

Per eseguire attività di avvio per istanze di ruoli Web e di lavoro, si possono usare script di PowerShell. Gli script di Windows PowerShell possono offrire potenza e flessibilità significative per le attività di avvio.

Gli script di Windows PowerShell non possono essere chiamati direttamente dal file ServiceDefinition.csdef, ma possono essere richiamati da un file batch di avvio.

Per impostazione predefinita in Windows PowerShell non vengono eseguiti script non firmati. Se non si firmano gli script, Windows PowerShell deve essere configurato per eseguire script non firmati. Per eseguire script non firmati, ExecutionPolicy deve essere impostato su Unrestricted. L'impostazione di ExecutionPolicy da usare dipende dalla versione di Windows PowerShell.

La versione di Windows PowerShell disponibile per l'istanza del ruolo è basata sull'impostazione di osFamily nel file ServiceConfiguration.csdef. Per altre informazioni sulle famiglie e sulle versioni di sistemi operativi, vedere Rilasci del sistema operativo guest Azure e matrice di compatibilità SDK.

Se si conosce la versione di Windows PowerShell in uso nell'istanza del ruolo, si può richiamare lo script con ExecutionPolicyUnrestricted mediante il parametro per la versione specifica di Windows PowerShell.

Se non si è certi della versione di Windows PowerShell in uso, si può aggiungere la logica al file batch di avvio che consente l'esecuzione dello script con ExecutionPolicyUnrestricted, indipendentemente dalla versione di PowerShell.

Se si esegue Windows PowerShell 2.0 con il parametro -Version 2.0, lo script viene eseguito come script in versione 2.0. Ad ogni modo, l'esecuzione di Windows PowerShell 1.0 con il parametro -Version 2.0 restituisce un errore con un valore di errorlevel di -393216. Quando questo errorlevel viene rilevato, si può usare la sintassi 1.0 per eseguire lo script.

L'esempio seguente descrive un file startup.cmd usato per richiamare uno script con criteri di esecuzione Unrestricted, indipendentemente dalla versione di Windows PowerShell:

REM   Attempt to set the execution policy by using PowerShell version 2.0 syntax.
PowerShell -Version 2.0 -ExecutionPolicy Unrestricted .\startup.ps1 >> "%TEMP%\StartupLog.txt" 2>&1

IF %ERRORLEVEL% EQU -393216 (
   REM   PowerShell version 2.0 isn't available. Set the execution policy by using the PowerShell version 1.0 calling method.

   PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
   PowerShell .\startup.ps1 >> "%TEMP%\StartupLog.txt" 2>&1
)

REM   If an error occurred, return the errorlevel.
EXIT /B %errorlevel%

Mostra:
© 2014 Microsoft