New-CMTSStepRunPowerShellScript

작업 순서에서 PowerShell 스크립트 실행 단계를 만듭니다.

Syntax

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>]

Description

이 cmdlet은 새 PowerShell 스크립트 실행 단계 개체를 만듭니다. 그런 다음 Add-CMTaskSequenceStep cmdlet을 사용하여 단계를 작업 순서에 추가합니다. 이 단계에 대한 자세한 내용은 작업 순서 단계 정보: PowerShell 스크립트 실행을 참조하세요.

참고

Configuration Manager 사이트 드라이브에서 Configuration Manager cmdlet을 실행합니다(예: PS XYZ:\>). 자세한 내용은 시작을 참조하세요.

예제

예 1

이 예제에서는 먼저 PowerShell 스크립트 실행 단계에 대한 개체를 만듭니다. 실행할 스크립트의 이름을 가진 패키지를 지정합니다. PowerShell 실행 정책을 가장 안전한 AllSigned 수준으로 설정하므로 스크립트에 디지털 서명이 필요합니다.

그런 다음 작업 순서 개체를 가져오고 인덱스 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

매개 변수

-Condition

이 단계에서 사용할 조건 개체를 지정합니다. 이 개체를 얻으려면 작업 순서 조건 cmdlet 중 하나를 사용합니다. 예를 들어 Get-CMTSStepConditionVariable입니다.

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

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

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

-ContinueOnError

이 매개 변수를 추가하여 오류 발생시 단계 옵션 계속을 사용하도록 설정합니다. 이 옵션을 사용하도록 설정하면 단계가 실패하면 작업 순서가 계속됩니다.

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

-Description

이 작업 순서 단계에 대한 선택적 설명을 지정합니다.

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

-Disable

이 매개 변수를 추가하여 이 작업 순서 단계를 사용하지 않도록 설정합니다.

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

-DisableWildcardHandling

이 매개 변수는 와일드카드 문자를 리터럴 문자 값으로 처리합니다. ForceWildcardHandling과 결합할 수 없습니다.

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

-ExecutionPolicy

컴퓨터에서 실행할 수 있는 스크립트에 대한 PowerShell 실행 정책을 지정합니다. 다음 정책 중 하나를 선택합니다.

  • AllSigned: 신뢰할 수 있는 게시자가 서명한 스크립트만 실행합니다.

  • Undefined: 실행 정책을 정의하지 마세요.

  • Bypass: 모든 구성 파일을 로드하고 모든 스크립트를 실행합니다. 인터넷에서 서명되지 않은 스크립트를 다운로드하는 경우 PowerShell은 스크립트를 실행하기 전에 사용 권한을 묻는 메시지를 표시하지 않습니다.

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

이 매개 변수는 와일드카드 문자를 처리하고 예기치 않은 동작(권장되지 않음)으로 이어질 수 있습니다. DisableWildcardHandling과 결합할 수 없습니다.

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

-Name

이 단계의 이름을 지정하여 작업 순서에서 식별합니다.

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

-OutputVariableName

사용자 지정 작업 순서 변수의 이름을 지정합니다. 이 매개 변수를 사용하면 명령 출력의 마지막 1000자를 변수에 저장합니다.

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

-PackageId

PowerShell 스크립트가 있는 패키지의 패키지 ID 를 지정합니다. 패키지에는 프로그램이 필요하지 않습니다. 하나의 패키지에는 여러 스크립트가 포함될 수 있습니다.

이 값은 표준 패키지 ID(예 XYZ00821: )입니다.

그런 다음 ScriptName 매개 변수를 사용하여 스크립트의 이름을 지정합니다.

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

-Parameter

PowerShell 스크립트에 전달된 매개 변수를 지정합니다. 이러한 매개 변수는 명령줄의 PowerShell 스크립트 매개 변수와 동일합니다. PowerShell 명령줄이 아닌 스크립트에서 사용하는 매개 변수를 제공합니다.

다음 예제에는 유효한 매개 변수가 포함되어 있습니다 .

-MyParameter1 MyValue1 -MyParameter2 MyValue2

다음 예제에는 잘못된 매개 변수가 포함되어 있습니다. 처음 두 항목은 PowerShell 명령줄 매개 변수(NoLogoExecutionPolicy)입니다. 스크립트는 이러한 매개 변수를 사용하지 않습니다.

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

매개 변수 값에 특수 문자 또는 공백이 포함된 경우 값 주위에 작은따옴표(')를 사용합니다. 큰따옴표(")를 사용하면 작업 순서 단계에서 매개 변수를 잘못 처리할 수 있습니다.

예: -Arg1 '%TSVar1%' -Arg2 '%TSVar2%'

이 매개 변수를 작업 순서 변수로 설정할 수도 있습니다. 예를 들어 작업 순서에서 스크립트를 실행할 때 를 지정 %MyScriptVariable%하면 이 사용자 지정 변수의 값이 PowerShell 명령줄에 추가됩니다.

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

-ScriptName

실행할 스크립트의 이름을 지정합니다. 이 스크립트는 PackageId 매개 변수로 지정된 패키지에 있습니다.

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

-SourceScript

PackageIdScriptName 매개 변수를 사용하는 대신 이 매개 변수를 사용하여 스크립트 명령을 직접 지정합니다. 이 문자열 값은 이 단계가 실행되는 PowerShell 명령입니다.

기존 스크립트 파일의 내용을 문자열 변수로 읽은 다음 이 매개 변수에 해당 변수를 사용할 수 있습니다. 예시:

$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

단계가 성공으로 평가되어야 하는 스크립트의 종료 코드로 정수 값 배열을 지정합니다.

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

-TimeoutMins

Configuration Manager 스크립트를 실행할 수 있는 기간을 나타내는 정수 값을 지정합니다. 이 값은 분에서 1 분까지 999 일 수 있습니다. 기본값은 분입니다 15 .

지정된 스크립트가 성공적으로 완료될 때까지 충분한 시간을 허용하지 않는 값을 입력하면 이 단계가 실패합니다. 단계 또는 그룹 조건에 따라 전체 작업 순서가 실패할 수 있습니다. 시간 제한이 만료되면 Configuration Manager PowerShell 프로세스를 종료합니다.

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

-UserName

이 매개 변수를 사용하여 로컬 시스템 계정이 아닌 Windows 사용자 계정으로 스크립트를 실행합니다. Windows 사용자 계정의 이름을 지정합니다. 계정 암호를 지정하려면 UserPassword 매개 변수를 사용합니다.

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

-UserPassword

이 매개 변수를 사용하여 UserName으로 지정하는 계정의 암호를 지정합니다.

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

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여줍니다. cmdlet이 실행되지 않습니다.

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

-WorkingDirectory

명령이 시작되는 폴더를 지정합니다. 이 경로는 최대 127자까지 가능합니다.

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

입력

None

출력

IResultObject

참고

이 반환 개체 및 해당 속성에 대한 자세한 내용은 SMS_TaskSequence_RunPowerShellScriptAction 서버 WMI 클래스를 참조하세요.