共用方式為


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

Description

使用此 Cmdlet 在 Configuration Manager 中執行 PowerShell 腳本。 這些腳本會在 Configuration Manager 中整合和管理。

在腳本獲得核准之前,您無法執行該腳本。 若要以程序設計方式核准腳本,請使用 Approve-CMScript Cmdlet。

如需詳細資訊,請參閱 從 Configuration Manager 控制台建立和執行 PowerShell 腳本

注意事項

從 Configuration Manager 月臺磁碟驅動器執行 Configuration Manager Cmdlet,例如 PS XYZ:\>。 如需詳細資訊,請 參閱開始使用

範例

範例 1:使用腳本的標識碼執行腳本

此命令會執行識別碼為的 DF8E7546-FD66-4A3D-A129-53AF5AA54F80腳本。

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

範例 2:使用物件變數執行腳本

第一個命令會依標識符取得腳本物件,並將它儲存在 $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

指定要執行此文稿之集合的識別碼。

類型: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

指定要執行之腳本的識別碼。 格式為標準 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