New-CMTSStepRunPowerShellScript

Creare il passaggio Esegui script di PowerShell in una sequenza di attività.

Sintassi

New-CMTSStepRunPowerShellScript
   -Name <String>
   [-SuccessCode <Int32[]>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSStepRunPowerShellScript
   [-ExecutionPolicy <ExecutionPolicyType>]
   -Name <String>
   [-OutputVariableName <String>]
   [-Parameter <String>]
   -SourceScript <String>
   [-SuccessCode <Int32[]>]
   [-TimeoutMins <Int32>]
   [-UserName <String>]
   [-UserPassword <SecureString>]
   [-WorkingDirectory <String>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSStepRunPowerShellScript
   [-ExecutionPolicy <ExecutionPolicyType>]
   -Name <String>
   [-OutputVariableName <String>]
   -PackageId <String>
   [-Parameter <String>]
   -ScriptName <String>
   [-SuccessCode <Int32[]>]
   [-TimeoutMins <Int32>]
   [-UserName <String>]
   [-UserPassword <SecureString>]
   [-WorkingDirectory <String>]
   [-Condition <IResultObject[]>]
   [-ContinueOnError]
   [-Description <String>]
   [-Disable]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descrizione

Questo cmdlet crea un nuovo oggetto passaggio Esegui script di PowerShell . Usare quindi il cmdlet Add-CMTaskSequenceStep per aggiungere il passaggio a una sequenza di attività. Per altre informazioni su questo passaggio, vedere Informazioni sui passaggi della sequenza di attività: Eseguire script di PowerShell.

Nota

Eseguire Configuration Manager cmdlet dall'unità del sito Configuration Manager, ad esempio PS XYZ:\>. Per altre informazioni, vedere Introduzione.

Esempio

Esempio 1

In questo esempio viene prima creato un oggetto per il passaggio Esegui script di PowerShell . Specifica il pacchetto con il nome dello script da eseguire. Imposta i criteri di esecuzione di PowerShell sul livello AllSigned più sicuro, che richiede che lo script sia firmato digitalmente.

Ottiene quindi un oggetto sequenza di attività e aggiunge questo nuovo passaggio alla sequenza di attività in corrispondenza dell'indice 11.

$step = New-CMTSStepRunPowerShellScript -Name "Run PowerShell Script" -PackageId "XYZ00821" -ScriptName "Add-ContosoBranding.ps1" -ExecutionPolicy AllSigned 

$tsNameOsd = "Default OS deployment"
$tsOsd = Get-CMTaskSequence -Name $tsNameOsd -Fast

$tsOsd | Add-CMTaskSequenceStep -Step $step -InsertStepStartIndex 11

Parametri

-Condition

Specificare un oggetto condizione da usare con questo passaggio. Per ottenere questo oggetto, usare uno dei cmdlet della condizione della sequenza di attività. Ad esempio, Get-CMTSStepConditionVariable.

Type:IResultObject[]
Aliases:Conditions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede la conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinueOnError

Aggiungere questo parametro per abilitare l'opzione di passaggio Continua in caso di errore. Quando si abilita questa opzione, se il passaggio ha esito negativo, la sequenza di attività continua.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Specificare una descrizione facoltativa per questo passaggio della sequenza di attività.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Disable

Aggiungere questo parametro per disabilitare questo passaggio della sequenza di attività.

Type:SwitchParameter
Aliases:DisableThisStep
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableWildcardHandling

Questo parametro considera i caratteri jolly come valori letterali. Non è possibile combinarlo con ForceWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExecutionPolicy

Specificare i criteri di esecuzione di PowerShell per gli script consentiti per l'esecuzione nel computer. Scegliere uno dei criteri seguenti:

  • AllSigned: esegue solo script firmati da un autore attendibile.

  • Undefined: non definire criteri di esecuzione.

  • Bypass: caricare tutti i file di configurazione ed eseguire tutti gli script. Se si scarica uno script non firmato da Internet, PowerShell non richiede l'autorizzazione prima di eseguire lo script.

Type:ExecutionPolicyType
Aliases:PowerShellExecutionPolicy
Accepted values:AllSigned, Undefined, Bypass
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceWildcardHandling

Questo parametro elabora caratteri jolly e può causare un comportamento imprevisto (non consigliato). Non è possibile combinarlo con DisableWildcardHandling.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specificare un nome per questo passaggio per identificarlo nella sequenza di attività.

Type:String
Aliases:StepName
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutputVariableName

Specificare il nome di una variabile della sequenza di attività personalizzata. Quando si usa questo parametro, il passaggio salva gli ultimi 1000 caratteri dell'output del comando nella variabile.

Type:String
Aliases:Output, OutputVariable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PackageId

Specificare l'ID pacchetto per il pacchetto con lo script di PowerShell. Il pacchetto non richiede un programma. Un pacchetto può contenere più script.

Questo valore è un ID pacchetto standard, ad esempio XYZ00821.

Usare quindi il parametro ScriptName per specificare il nome dello script.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Parameter

Specificare i parametri passati allo script di PowerShell. Questi parametri sono gli stessi dei parametri di script di PowerShell nella riga di comando. Specificare i parametri utilizzati dallo script, non per la riga di comando di PowerShell.

L'esempio seguente contiene parametri validi :

-MyParameter1 MyValue1 -MyParameter2 MyValue2

L'esempio seguente contiene parametri non validi . I primi due elementi sono parametri della riga di comando di PowerShell (NoLogo ed ExecutionPolicy). Lo script non usa questi parametri.

-NoLogo -ExecutionPolicy Unrestricted -File MyScript.ps1 -MyParameter1 MyValue1 -MyParameter2 MyValue2

Se un valore di parametro include un carattere speciale o uno spazio, usare virgolette singole (') intorno al valore. L'uso di virgolette doppie (") può causare l'elaborazione errata del parametro da parte del passaggio della sequenza di attività.

Ad esempio: -Arg1 '%TSVar1%' -Arg2 '%TSVar2%'

È anche possibile impostare questo parametro su una variabile della sequenza di attività. Ad esempio, se si specifica %MyScriptVariable%, quando la sequenza di attività esegue lo script, aggiunge il valore di questa variabile personalizzata alla riga di comando di PowerShell.

Type:String
Aliases:Parameters
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptName

Specificare il nome dello script da eseguire. Questo script si trova nel pacchetto specificato dal parametro PackageId .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SourceScript

Anziché usare i parametri PackageId e ScriptName , usare questo parametro per specificare direttamente i comandi dello script. Questo valore stringa è costituito dai comandi di PowerShell eseguiti in questo passaggio.

È possibile leggere il contenuto di un file di script esistente in una variabile stringa e quindi usare tale variabile per questo parametro. Ad esempio:

$script = [IO.File]::ReadAllText( "C:\temp\script.ps1" )

Type:String
Aliases:SourceCode
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SuccessCode

Specificare una matrice di valori integer come codici di uscita dallo script che il passaggio deve valutare come esito positivo.

Type:Int32[]
Aliases:SuccessCodes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutMins

Specificare un valore intero che rappresenta per quanto tempo Configuration Manager consente l'esecuzione dello script. Questo valore può essere compreso tra 1 minuti e 999 minuti. Il valore predefinito è 15 minuti.

Se si immette un valore che non consente il completamento dello script specificato, questo passaggio avrà esito negativo. L'intera sequenza di attività potrebbe non riuscire a seconda delle condizioni del passaggio o del gruppo. Se il timeout scade, Configuration Manager termina il processo di PowerShell.

Type:Int32
Aliases:TimeoutInMinutes
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserName

Usare questo parametro per eseguire lo script come account utente di Windows e non come account di sistema locale. Specificare il nome dell'account utente di Windows. Per specificare la password dell'account, usare il parametro UserPassword .

Type:String
Aliases:User
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserPassword

Usare questo parametro per specificare la password dell'account specificato con UserName.

Type:SecureString
Aliases:Password
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Mostra cosa accade se viene eseguito il cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WorkingDirectory

Specificare la cartella in cui viene avviato il comando. Questo percorso può contenere fino a 127 caratteri.

Type:String
Aliases:StartIn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Output

IResultObject

Note

Per altre informazioni su questo oggetto restituito e sulle relative proprietà, vedere SMS_TaskSequence_RunPowerShellScriptAction classe WMI del server.