執行 .NET 腳本
執行 .NET 腳本活動會執行以 VB.NET、JScript、C# 和 Windows PowerShell 撰寫的腳本。 此活動與 .NET CLR 2.0 版和更新版本相容。 使用 Microsoft System Center - Orchestrator 執行 .NET 腳本活動,以針對可用的 API 執行剖析數據或執行函式的腳本。
設定執行 .NET 腳本活動
設定執行 .NET 文稿活動之前,您需要判斷下列各項:
您要執行的程式代碼。
您想要使用的連結庫。
您想要發佈的數據。
使用下列資訊來設定執行 .NET 腳本活動。
注意
您無法設定此活動的個別安全性認證。 它會在執行活動實例的 Runbook 伺服器上,針對 Runbook 服務所設定的服務帳戶執行。 此帳戶必須具有存取資源的許可權,並執行此活動所需的動作。
詳細資料索引標籤
設定 | 設定指示 |
---|---|
類型 | 選取文本語言。 使用省略號按鈕 (...) 來瀏覽語言。 |
指令碼 | 輸入將在活動執行時執行的程序代碼。 |
進階索引標籤
設定 | 設定指示 |
---|---|
Namespace | 針對將用於程式代碼中的每個 .NET 命名空間新增命名空間。 這可讓您呼叫程式代碼,而不需針對每個類別使用完整名稱。 Orchestrator 建議將系統命名空間新增至每個執行 .NET 腳本活動。 |
參考 | 新增每個元件 (DLL) 參考,其中包含您想要使用的連結庫。 新增位於 Windows\Microsoft.NET\Framework\<.NET 版本>目錄中的System.dll。 |
已發佈資料
新增您想要此活動發佈之已發佈的數據項。 您新增的每個已發佈數據項都可以在數據總線上使用。 請務必判斷已發佈的數據項是否會多重值。 執行 .NET 腳本活動會藉由對齊不同項目,自動相互關聯來自不同專案的多重值數據。 例如,如果您選擇發佈標示為 [名稱 ] 和 [電子郵件 ] 為集合的兩個專案,則 [執行 .NET] 腳本會嘗試將 Name 集合中的每個專案與 Email 集合中的每個專案排列在一起。 如果集合大小不相等,則執行 .NET 腳本活動會為集合建立較少專案的空白值。 下列已發佈的數據表會列出此活動所發行的數據項和對應的描述。
已發佈的數據索引標籤
設定 | 設定指示 |
---|---|
名稱 | 輸入已發佈數據的名稱。 當其他活動訂閱執行 .NET 腳本活動所發行的數據時,就會顯示這個名稱。 |
類型 | 您可以選取 [日期/時間]、 [整數] 或 [字串]。 如果想要的類型無法使用,請選取 [字串]。 使用活動的 ToString 方法,將值指派給這個已發佈的數據。 |
集合 | 如果您的數據是多重值數據,請選取 [集合]。 使用集合時,您必須使用 Add 方法將專案新增至集合。 如果您未使用集合,您可以使用指派運算子 (=) 來指派值。 |
變數名稱 | 使用唯一命名來確保變數名稱不會與您腳本內的現有變數或 .NET 中可用的類別和關鍵詞發生衝突。 建議您在變數前面加上 OPD_。 例如,如果您想要將變數 命名為 myString,請將它 命名為OPD_myString。 執行 .NET 腳本活動會自動為此專案建立 .NET 屬性。 如果此變數是集合,則會使用 List<T 來建立,其中 T> 是您選取的 Type 。 不過,如果不是集合,則會根據您選取的 Type,使用 String、Integer 或 Date/Time 來建立屬性。 |
已發佈資料
項目 | 說明 |
---|---|
標準錯誤 | 執行 .NET 腳本活動所發佈的任何標準錯誤輸出。 |
命名空間 | 使用的命名空間。 |
標準輸出 | 執行 .NET 腳本活動所發佈的標準輸出。 |
參考資料 | 活動中使用的元件。 |
腳本本文 | 執行的腳本。 |
腳本語言 | 針對腳本選取的語言。 |
使用執行 .NET 腳本活動執行 64 位 PowerShell Cmdlet
您可以在 Orchestrator Run.Net 腳本 活動中執行 64 位 Windows PowerShell。 使用下列步驟:
從 系統活動群組建立執行 .NET 腳本活動。
在 [詳細數據類型]>中,選取 [PowerShell] 作為語言。
在 [腳本] 中,將 PowerShell 命令括在下列程式代碼中:
Invoke-Command -ScriptBlock {YOUR CODE} -ComputerName localhost
選取 [完成]。
注意
若要驗證 PowerShell 版本,請在執行 .NET 腳本活動中使用下列腳本,併發佈 64 位和 PowerShell 版本變數。
$Result = Invoke-Command -ComputerName localhost {
$Is64BitProcess = [Environment]::Is64BitProcess
$PSVersion = $PSVersionTable.PSVersion
RETURN $Is64BitProcess, $PSVersion
}
$64bit = $Result[0]
$PSVersion = $Result[1]