Edit

Share via


Approve-CMScript

Approve a PowerShell script in Configuration Manager.

Syntax

ByScript

Approve-CMScript
    -InputObject <IResultObject>
    [-Comment <String>]
    [-DisableWildcardHandling]
    [-ForceWildcardHandling]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByScriptId

Approve-CMScript
    -ScriptGuid <String>
    [-Comment <String>]
    [-DisableWildcardHandling]
    [-ForceWildcardHandling]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Use this cmdlet to approve a Powershell script in Configuration Manager. These scripts are integrated and managed in Configuration Manager. You can't run a script on devices until it's approved. After you approve a script, to run it use the Invoke-CMScript cmdlet.

By default, you can't approve scripts that you author.

For more information, see Create and run PowerShell scripts from the Configuration Manager console.

Note

Run Configuration Manager cmdlets from the Configuration Manager site drive, for example PS XYZ:\>. For more information, see getting started.

Examples

Example 1: Approve a script by using the script ID

This command approves a script that has the ID DF8E7546-FD66-4A3D-A129-53AF5AA54F80.

Approve-CMScript -ScriptGuid "DF8E7546-FD66-4A3D-A129-53AF5AA54F80"

Example 2: Approve a script by using script object variable

The first command gets a script object with ID DF8E7546-FD66-4A3D-A129-53AF5AA54F80. It then stores the object in the $ScriptObj variable.

The second command approves the script stored in the variable.

$ScriptObj = Get-CMScript -Id "DF8E7546-FD66-4A3D-A129-53AF5AA54F80"
Approve-CMScript -InputObject $ScriptObj

Example 3: Bulk approve all unapproved scripts

This command gets all scripts in Configuration Manager that aren't approved. It then loops through each script in the scripts array. If the current user is not the author of the script, it approves it.

$scripts = Get-CMScript -Fast | Where-Object { -not $_.ApprovalState }

$me = $env:userdomain + "\" + $env:username
foreach ( $script in $scripts ) {
  if ( $script.Author -ne $me ) {
    Approve-CMScript -InputObject $script
  }
}

Parameters

-Comment

Specifies a comment about the approval of the script.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False
Aliases:cf

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-DisableWildcardHandling

This parameter treats wildcard characters as literal character values. You can't combine it with ForceWildcardHandling.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ForceWildcardHandling

This parameter processes wildcard characters and may lead to unexpected behavior (not recommended). You can't combine it with DisableWildcardHandling.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-InputObject

Specify a script object to approve. To get this object, use the Get-CMScript cmdlet.

Parameter properties

Type:IResultObject
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

ByScript
Position:Named
Mandatory:True
Value from pipeline:True
Value from pipeline by property name:False
Value from remaining arguments:False

-ScriptGuid

Specify the ID of the script to approve. The format is a standard GUID.

Parameter properties

Type:String
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

ByScriptId
Position:Named
Mandatory:True
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet doesn't run.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False
Aliases:wi

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Outputs

System.Object