Invoke-CMScript

在 Configuration Manager 中运行 PowerShell 脚本。

语法

Invoke-CMScript
      [-Collection <IResultObject>]
      [-CollectionId <String>]
      [-CollectionName <String>]
      [-Device <IResultObject[]>]
      -InputObject <IResultObject>
      [-PassThru]
      [-ScriptParameter <Hashtable>]
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CMScript
      [-Collection <IResultObject>]
      [-CollectionId <String>]
      [-CollectionName <String>]
      [-Device <IResultObject[]>]
      [-PassThru]
      -ScriptGuid <String>
      [-ScriptParameter <Hashtable>]
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

说明

使用此 cmdlet 在 Configuration Manager 中运行 PowerShell 脚本。 这些脚本在 Configuration Manager 中集成和管理。

在脚本获得批准之前,无法运行该脚本。 若要以编程方式批准脚本,请使用 Approve-CMScript cmdlet。

有关详细信息,请参阅 从 Configuration Manager 控制台创建和运行 PowerShell 脚本

注意

从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门

示例

示例 1:使用脚本 ID 运行脚本

此命令运行 ID DF8E7546-FD66-4A3D-A129-53AF5AA54F80为 的脚本。

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

示例 2:使用对象变量运行脚本

第一个命令按其 ID 获取脚本对象,并将其存储在 $ScriptObj 变量中。 第二个命令运行存储在该变量中的脚本。

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

Invoke-CMScript -InputObject $ScriptObj

示例 3:将参数传递给目标脚本

第一行将参数存储在哈希表中。 第二行在目标设备上运行脚本,并在哈希表中传递参数。

$parameters = @{
  "FolderName"="c:\test\test1"
  "FileName"="test2"
}

Invoke-CMScript -ScriptGuid $scriptGuid -Device (Get-CMDevice -Name $targetPCName) -ScriptParameter $parameters

参数

-Collection

指定要运行此脚本的集合对象。 若要获取此对象,请使用 Get-CMCollection cmdlet。

类型:IResultObject
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CollectionId

指定要运行此脚本的集合的 ID。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CollectionName

指定要运行此脚本的集合的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Device

为设备指定对象以运行此脚本。 若要获取此对象,请使用 Get-CMDevice cmdlet。

类型:IResultObject[]
别名:Devices
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisableWildcardHandling

此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ForceWildcardHandling

此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

指定要运行的脚本对象。 若要获取此对象,请使用 Get-CMScript cmdlet。

类型:IResultObject
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-PassThru

返回一个 对象,该对象表示正在使用的项。 默认情况下,此 cmdlet 可能不会生成任何输出。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ScheduleTime

指定 UTC DateTime 以计划稍后执行脚本。

类型:DateTime
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ScriptGuid

指定要运行的脚本的 ID。 格式是标准 GUID。

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-ScriptParameter

适用于版本 2010 及更高版本。 使用此参数可将参数传递给目标脚本。 使用所需参数指定哈希表。 有关用法的示例,请参阅 示例

类型:Hashtable
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示在 cmdlet 运行时发生的情况。 该 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

输出

System.Object