Next Topic

Previous Topic

Book Contents

IF-ELSE-STEP 指令

以下是 VSA 代理程序中所用 IF-ELSE-STEP 指令的摘要。

IF 定義

應用程式正在執行

測試以查看指定的應用程式是否正在執行。

檢查註冊表值

評估指定的註冊表值。

檢查 64 位元註冊表值

評估指定的 64 位元註冊表值。

檢查變數

評估指定的代理變數。請參閱「使用變數」。

評估表示式

與提供的的值比較變數。

服務正在執行

確定服務是否正在受管電腦上執行。

測試檔案

測試檔案是否存在。

測試目錄路徑中的檔案

測試由「從註冊表獲取目錄路徑」傳回的目前目錄路徑中檔案是否存在。

測試註冊表項

測試指定的註冊表項是否存在。

測試 64 位元註冊表項

測試指定的 64 位元註冊表項是否存在。

True

始終傳回「True」,執行 IF 分支。

使用者已登入

測試特定使用者或任意使用者是否登入。

使用者回應為「是」

為使用者提供「是/否」對話方塊。

STEP 定義

關閉應用程式

關閉正在執行的應用程式。

刪除檔案

從受管電腦刪除檔案。

刪除目錄路徑中的檔案

刪除由「從註冊表獲取目錄路徑」傳回的目錄中的檔案。

刪除註冊表項

從註冊表中刪除註冊表項。

刪除 64 位元註冊表項

從註冊表中刪除 64 位元註冊表項。

刪除註冊表值

從註冊表中刪除值。

刪除 64 位元註冊表值

從註冊表中刪除 64 位元值。

執行檔案

就像從 Windows 開始選單執行項目一樣執行任意檔案。

執行目錄路徑中的檔案

像執行檔案一樣。檔案位置相對於「從註冊表獲取目錄路徑」傳回的目錄。

執行程序

在目前電腦上啟動另一個 VSA 代理程序。

執行 Shell 指令

從 Shell 指令執行任意指令。

從註冊表獲取目錄路徑

傳回儲存在特定位置註冊表中的目錄路徑。後續步驟中使用的結果。

獲取檔案

從受管電腦獲取檔案並將其儲存在 KServer 上。

獲取目錄路徑中的檔案

從位置位於相對於「從註冊表獲取目錄路徑」傳回的目錄中的受管電腦獲取檔案,並將其儲存在 KServer 上。

獲取 URL

傳回 URL 的文字和 HTML 內容,並將其儲存在受管電腦上的檔案中。

獲取變數

從受管電腦的代理上獲取值並將其分配給變數。請參閱「使用變數」。

模擬使用者

當指定「作為使用者執行」時,使用指定的使用者帳戶執行檔案或 Shell。

暫停程序

暫停程序 N 秒。

重新啟動

重新啟動受管電腦。

重新命名鎖定的檔案

重新命名目前正使用的檔案,

重新命名目錄路徑中鎖定的檔案

重新命名由「從註冊表獲取目錄路徑」傳回的目錄中目前正使用的檔案。

計劃程序

計劃要在指定電腦上執行的代理程序。

發送電子郵件

發送電子郵件給一個或多個收件人。

發送訊息

在受管電腦上的對話方塊中顯示訊息。

發送 URL

在受管電腦上開啟針對特定 URL 的瀏覽器。

設定註冊表值

將註冊表值設定為特定值。

設定 64 位元註冊表值

64 位元註冊表值設定為特定值。

更新系統資訊

使用指定值更新選定的「系統資訊」欄位。

使用認證

指定「作為使用者執行」時,使用「設定認證」中電腦 ID 的使用者登入認證集來執行檔案或 Shell 指令。

寫入目錄

從伺服器寫入目錄到受管電腦。

寫入檔案

將儲存在 KServer 上的檔案寫入到受管電腦。

在目錄路徑中寫入檔案

使用由「從註冊表獲取目錄路徑」傳回的目錄,將儲存在 KServer 上的檔案寫入到受管電腦。

寫入程序日誌項目

將字串寫入代理程序日誌。

IF 指令

應用程式正在執行

檢查指定的應用程式目前是否在受管電腦上執行,如果應用程式正在執行,IF 指令已執行;否則,ELSE 指令已執行。從下拉清單中選擇此選項時,系統會顯示「輸入應用程式名稱」欄位。為想要測試的應用程式指定進程名稱,例如,要測試計算器應用程式,請指定 calc.exe,這是顯示在 Windows 任務管理員的「進程」標籤中的進程名稱。

檢查註冊表值/檢查 64 位元註冊表值

輸入註冊表路徑後,系統會傳回註冊表項中包含的值。您可以進行是否存在、等同性或大小差異的檢查,例如,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPaths\AgentMon.exe\path 包含標識代理在目標電腦上的安裝位置的目錄路徑。測試會確定為此註冊表項儲存的值是否存在,從而驗證代理是否已經安裝。

註冊表項結尾的反斜線 \ 傳回該註冊表項的預設值。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE\ 傳回預設值,例如 %ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE

可用測試如下:

  • 存在:如果配置單元中存在註冊表項,則為 True。
  • 不存在:如果配置單元中存在註冊表項,則為 True。
  • =:如果註冊表項的值等於測試值,則為 True。
  • 不 =:如果註冊表項的值等於測試值,則為 True。
  • >:如果註冊表項的值大於測試值 (值必須為數字),則為 True。
  • >=:如果註冊表項的值大於或等於測試值 (值必須為數字),則為 True。
  • <:如果註冊表項的值小於測試值 (值必須為數字),則為 True。
  • <=:如果註冊表項的值小於或等於測試值 (值必須為數字),則為 True。
  • 包含:如果測試值是註冊表項值的子字串 (值必須為數字),則為 True。
  • 不包含:如果測試值不是註冊表項值的子字串 (值必須為數字),則為 True。

檢查變數

在提供的空格中以格式 #var_name# 輸入變數名稱。「檢查變數」會評估目前分配的 #var_name# 值並將其與提供的值進行比較。提供的值還可能是格式為 #var_name2# 的另一個變數名稱。 如果檢查結果為 True,則會執行 IF 指令;如果檢查結果為 False,則會執行 ELSE 步驟。請參閱「使用變數」。可用測試如下:

  • 存在:如果變數存在,則為 True。
  • 不存在:如果變數存在,則為 True。
  • =:如果變數的值等於測試值,則為 True。
  • 不 =:如果變數的值等於測試值,則為 True。
  • >:如果變數的值大於測試值,則為 True。
  • >=:如果變數的值大於或等於測試值,則為 True。
  • <:如果變數的值小於測試值,則為 True。
  • <=:如果變數的值小於或等於測試值,則為 True。
  • 包含:如果測試值是變數值的子字串,則為 True。
  • 不包含:如果測試值是變數值的子字串,則為 True。
  • 開始於:如果測試值開始於變數值,則為 True。
  • 結束於:如果測試值結束於變數值,則為 True。

對於測試 =不 =>>=<<=,比較的變數可能是字串、數字、格式為 yyyy/mm/ddyyyy/mm/dd hh:mmyyyy/mm/dd hh:mm:ss 的日期或包含圓點的版本號 (例如1.2.34,5,6,7)。如果日期格式已指定,可以使用 + dd:hh:mm:ss- dd:hh:mm:ss。 僅 dd 天是必需的; hh 小時、mm 分鐘和 ss 秒可以忽略,在缺少的情況下可以假定為零。可以指定  CURRENT_TIMESTAMP 以指示程序在執行時,目前時間在比較中被替換, 例如,CURRENT_TIMESTAMP - 7:12:00:00 將被評估為從執行程序的時間減去 7 天 12 小時。

評估表示式

在提供的空格中,以格式 #var_name# 輸入包含一個或多個變數名稱的表示式。 評估表示式 使用分配給 每個 #var_name# 的目前值、評估數學表示式,並將其與提供的值進行比較。 提供的值還包括另一個表示式,  數學表示式可以包含 +- * /(), 例如,  (3.7 + (200 * #countA#)) / (#countB# - #countC#)。 如果檢查結果為 True,則執行 IF 步驟;如果檢查結果為 False,則會執行 ELSE 步驟。可用測試如下:

  • =:如果變數的值等於測試值,則為 True。
  • 不 =:如果變數的值不等於測試值,則為 True。
  • >:如果變數的值大於測試值,則為 True。
  • >=:如果變數的值大於或等於測試值,則為 True。
  • <:如果變數的值小於測試值,則為 True。
  • <=:如果變數的值小於或等於測試值,則為 True。

    Note:不能配合存在不存在包含不包含運算子使用。

服務正在執行

確定服務是否正在受管電腦上執行。指定服務名稱

  • 如果服務名稱正在執行,則為 True。
  • 如果服務名稱已停止或不存在,則為 False。

    Note: 請確保使用服務的服務名稱,而不是服務的顯示名稱。例如,用於 Microsoft SQL Server 服務的顯示名稱SQL Server (MSSQLSERVER),而服務的服務名稱MSSQLSERVER。對於 Windows 電腦,右鍵按一下「服務」視窗中的任務服務並按一下「內容」選項,以查看該服務的服務名稱

測試檔案

測試檔案在受管電腦上是否存在,輸入完整路徑和檔案名稱。測試檔案會將完整路徑和檔案名稱與提供的值進行比較。如果檢查結果為 True,則會執行 IF 指令;如果檢查結果為 False,則會執行 ELSE 步驟。

Note: 您可以接受環境變數,例如%windir%\notepad.exe

可用測試如下:

  • 存在:如果完整路徑和檔案名稱存在,則為 True。
  • 不存在:如果完整路徑和檔案名稱存在,則為 True。
  • 包含:如果測試值是檔案內容的子字串,則為 True。
  • 不包含:如果測試值是檔案內容的子字串,則為 True。
  • 開始於:如果測試值開始於變數值,則為 True。
  • 結束於:如果測試值結束於變數值,則為 True。

測試目錄路徑中的檔案

使用「從註冊表獲取目錄路徑」步驟測試位於傳回的路徑中的指定檔案。可用測試如下:

  • 存在:如果檔案名稱存在,則為 True。
  • 不存在:如果檔案名稱存在,則為 True。
  • 包含:如果測試值是檔案內容的子字串,則為 True。
  • 不包含:如果測試值是檔案內容的子字串,則為 True。
  • 開始於:如果測試值開始於變數值,則為 True。
  • 結束於:如果測試值結束於變數值,則為 True。

測試註冊表項/測試 64 位元註冊表項

測試註冊表項是否存在。「測試註冊表項」與「檢查註冊表值」不同,因為它可以檢查僅包含多個註冊表項 (非值) 的目錄級別註冊表項項目。

True

選擇 True 會執行 IF 指令。使用 True 直接執行不需要任何決策點的一系列步驟,例如使用「測試檔案」確定檔案是否存在。

使用者已登入

測試以查看特定使用者或任意使用者是否已登入到受管電腦。輸入電腦使用者的登入名稱或將欄位保留為空,以檢查任意使用者是否已登入;如果使用者已登入,則會執行 IF 指令;如果使用者未登入,則會執行 ELSE 步驟。

使用者回應為「是」

在受管電腦上顯示對話方塊,同時顯示「」和「」按鈕。如果指定的時間已逾時,還會執行 ELSE 指令。如果電腦使用者選定了「」,則會執行 IF 指令;如果選擇逾時或電腦使用者選擇「」,則會執行 ELSE 指令。此功能需要電腦使用者具有繼續執行代理程序的權限。此查詢對於需要在完成前重新啟動受管電腦的代理程序非常有用。

程序變數,例如 #varName# 可能用於「使用者回應為「是」」欄位內,以根據程序資料動態產生訊息。

STEP 指令

關閉應用程式

如果受管電腦上正執行指定的應用程式,則系統會關閉該應用程序。為想要關閉的應用程式指定進程名稱,例如,要關閉計算器應用程式,請指定 calc.exe,這是顯示在 Windows 任務管理員的「進程」標籤中的進程名稱。

刪除檔案

從受管電腦刪除檔案。輸入完整路徑和檔案名稱。

Note: 如果使用者電腦上設定了環境變數,則可以接受環境變數, 例如,使用路徑 %windir%\notepad.exe 與使用 C:\windows\notepad.exe 類似。

Note: 您可以使用「重新命名鎖定的檔案」指令刪除目前正使用的檔案。

刪除目錄路徑中的檔案

使用「從註冊表獲取目錄路徑」指令刪除位於傳回的路徑中的指定檔案。

刪除註冊表項/刪除 64 位元註冊表項

刪除指定的註冊表項及其所有子註冊表項。

刪除註冊表值/刪除 64 位元註冊表值

刪除儲存在指定註冊表項中的值。

執行檔案

在受管電腦上執行指定檔案,此功能使用位於 Microsoft Windows 開始選單中的「執行…」指令複製啟動應用程式。此功能需要三個參數:

  • .exe 檔案的完整路徑檔案名稱。
  • 傳遞到 .exe 檔案的引數清單
  • 直至 .exe 完成與否程序要等待的選項。

    Note: 如果使用者電腦上設定了環境變數,則可以接受環境變數, 例如,使用路徑 %windir%\notepad.exe 與使用 C:\windows\notepad.exe類似。

執行目錄路徑中的檔案

與「執行檔案」相同,除了 .exe 檔案的位置位於「從註冊表獲取目錄路徑」指令傳回的路徑中。

執行程序

可導致另一個命名的程序執行,使用此功能將多個 IF-ELSE-STEP 程序結合到一塊。如果程序不再存在於 KServer 上,程序下拉清單旁會顯示錯誤訊息。您可以使用此指令執行系統程序,還可以將程序嵌套為 10 個級別。

執行 Shell 指令

允許程序將指令傳遞到受管電腦上的指令解釋器。選定此指令時,系統會顯示「輸入要在指令 Shell 中執行的指令」欄位。在欄位中輸入指令,指令必須在語法上正確,並且可以在受管電腦使用作業系統版本執行。包含空格的指令和參數都應用引號括起來。由於指令相對於代理目錄執行,因此輸入指令時應使用絕對路徑。

Note:執行 Shell 指令」會開啟要從中執行動作的受管電腦上的指令提示視窗。如果不想在受管電腦上開啟視窗,因為這樣可能使使用者混亂,則請將所有指令放到批處理檔案中。使用「寫入檔案」指令將該檔案發送到受管電腦,然後使用「執行檔案」指令執行批處理檔案。「執行檔案」不會在受管電腦上開啟視窗。

從註冊表獲取目錄路徑

傳回儲存在指定註冊表項中的檔案路徑,使用此指令獲取檔案位置,例如,使用此指令可以找到已安裝應用程式的目錄。結果在後續步驟中由以下指令使用:

  • 刪除目錄路徑中的檔案
  • 執行目錄路徑中的檔案
  • 獲取目錄路徑中的檔案
  • 重新命名目錄路徑中鎖定的檔案
  • 測試目錄路徑中的檔案 (IF 指令)
  • 在目錄路徑中寫入檔案

獲取檔案

從受管電腦上的指定路徑上傳檔案,請確保輸入想要上傳的完整路徑檔案名稱,例如:news\info.txt。執行「獲取檔案」指令時會建立資料夾 (如果資料夾尚不存在),資料會儲存在 KServer 上每台受管電腦的個人目錄中。使用「代理程序」>「獲取檔案」檢視或執行上傳的檔案。

  • 有選擇性地使用 .bak 副檔名重新命名上傳檔案的現有副本,然後上傳下個檔案,這可讓您檢查檔案的最新版本和以前版本。
  • 如果上傳的檔案不同或與先前上傳的檔案相同,有選擇性地建立「獲取檔案」提示。您必須使用「監控」>「提示 - 獲取檔案」頁面為電腦 ID 建立「獲取檔案」提示,才能使用「獲取檔案」指令啟用提示的發送。為電腦 ID 定義後,相同的「獲取檔案」提示對於任意使用「獲取檔案」指令並在該電腦上執行的代理程序都是可用的。可以在代理程序編輯器中選擇其中一個沒有提示選項的提示,關閉針對特定檔案的提示。

獲取目錄路徑中的檔案

與「獲取檔案」指令類似,但是將從「從註冊表獲取目錄路徑」指令傳回的路徑新增到遠端檔案路徑的開頭。使用「代理程序」>「獲取檔案」功能存取上傳的檔案。

獲取 URL

傳回 URL 的文字和 HTML 內容,並將其儲存在受管電腦上的檔案中。為了說明這一點,請嘗試將 www.kaseya.com 指定為 URL,將 c:\temp\test.htm 指定為檔案以儲存此 URL 的內容,包含此網頁所有文字和 HTML 內容的受管電腦上建立有網頁的副本。您可以在後續指令中搜尋受管電腦上檔案的內容。

另一種方法是下載可從 Web 伺服器獲取的可執行檔案,這樣就不需要將檔案上傳到 VSA 伺服器,也不需要使用 VSA 的頻寬即可將檔案向下寫入到每個代理。您可以使用後續指令在受管電腦上執行下載的可執行檔案。

獲取變數

定義新的代理變數。程序步驟執行時,系統會定義新的變數並根據從受管電腦的代理獲取的資料為其分配值。

Note: 請參閱「使用變數」,以獲取「獲取變數」指令支援的變數值的類型。

模擬使用者

為代理輸入登入使用的使用者名稱、密碼和域,此指令用於在程序中於「執行檔案」、「執行目錄路徑中的檔案」或指定「以登入使用者身份執行」選項的「執行 Shell 指令」前使用。將域留為空以登入本地電腦上的帳戶。 使用「模擬使用者」可以使用由代理程序指定的認證執行代理程序。使用「使用認證」可以使用由受管電腦指定的認證執行代理程序。

暫停程序

暫停程序 N 秒。使用此指令可為 Windows 提供時間完成異步任務,例如啟動或停止服務。

重新啟動

無條件重新啟動受管電腦。要首先提示使用者,請在使用此指令前使用「使用者回應為「是」」指令。「使用者回應為「是」」指令會提示使用者然後再重新啟動電腦。

重新命名鎖定的檔案

重新命名目前正使用的檔案,系統下次重新啟動時會重新命名該檔案。指定的檔案名?是完整的檔案路徑名稱,如果「新檔案名稱」留為空,則可用於刪除目前正使用的檔案,系統重新啟動時會刪除該檔案,

重新命名目錄路徑中鎖定的檔案

重新命名位於「從註冊表獲取目錄路徑」指令傳回的路徑中的目前正使用的檔案,系統下次重新啟動時會重新命名該檔案。如果「新檔案名稱」留為空,則可用於刪除目前正使用的檔案,系統重新啟動時會刪除該檔案,

計劃程序

計劃要在指定電腦上執行的程序,根據需要指定執行此步驟後在執行程序前要等待的時間,並指定要執行程序的指定電腦 ID。如果未指定電腦,則程序會在執行代理程序的相同電腦上執行。輸入電腦的完成名稱,例如 machine.unnamed.org此指令使代理程序可以在一台電腦上執行,以計劃在第二台電腦上執行代理程序。您可以使用此指令執行系統程序,還可以將程序嵌套為 10 個級別。

發送電子郵件

發送電子郵件給一個或多個收件人。指定電子郵件的主題和正文文字。

發送訊息

給受管電腦發送輸入的訊息。如果選中其他核取方塊,則在使用者按一下閃爍的代理系統匣圖示之後發送訊息;如果保留不選中,則系統會立即發送訊息。

發送 URL

在受管電腦的 Web 瀏覽器視窗中顯示輸入的 URL。如果選中其他核取方塊,則在使用者按一下閃爍的代理系統匣圖示之後顯示 URL;如果保留不選中,則系統會立即顯示 URL。

設定註冊表值/設定 64 位元註冊表值

將資料寫入指定的註冊表值,此功能需要三個參數:

  • 輸入包含值的註冊表項的完整路徑 - 通過新增結尾反斜線 \ 為註冊表項指定 (預設) 值,否則,為現有值指定名稱或建立新值。請參閱下圖中的「名稱」欄。
    設定 (預設) 值的範例如下:HKEY_LOCAL_MACHINE\SOFTWARE\000Sample\
  • 輸入要寫入註冊表值的資料
  • 選擇資料類型
    • REG_SZ - 字串值。
    • REG_BINARY - 以十六進制格式顯示的二進制資料。
    • DWORD - 限制為 32 位元的二進制資料,可以以十六進制或小數格式輸入。
    • REG_EXPAND_SZ - 包含變數的「可擴展」字串值,例如:%SystemRoot%。
    • REG_MULTI_SZ - 多個字串陣列,用於輸入多個值,每個都用 \0 字串隔開,使用 \\0 以將 \0 包括在字串陣列值中。

    Word 60% / HTML 100%

更新系統資訊

使用用於執行此程序的電腦 ID 的指定值,更新選定的「系統資訊」欄位。您可以更新的「系統資訊」欄位包括 vSystemInfo 中的所有欄,除了 agentGuidemailAddrMachine_GroupIDmachNamegroupNamevSystemInfo 欄資訊由「稽核」>「系統資訊」、「代理」>「系統狀態」、「檢視定義」中的「篩選器彙總表」以及「彙總表」報表使用。您可以使用任意字串值 (包括任意先前定義的代理程序變數的值) 更新「系統資訊」欄位。

使用認證

使用在「設定認證」中為電腦 ID 設定的認證,此指令用於在程序中於「執行檔案」、「執行目錄路徑中的檔案」或指定「以登入使用者身份執行」選項的「執行 Shell 指令」前使用。還用於存取使用者登入時需要電腦認證的網路資源。使用「模擬使用者」可以使用由代理程序指定的認證執行代理程序。使用「使用認證」可以使用由受管電腦指定的認證執行代理程序。

Note: 如果「設定認證」程序指令遇到空的使用者名稱,則系統會記錄執行錯誤。

Note:「補丁管理」>「補丁提示」可以提示您—或執行代理程序—如果電腦 ID 的認證遺失或無效。

寫入目錄

從「管理儲存在伺服器上的檔案」將選定目錄 (包括子目錄和檔案) 寫入受管電腦上指定的完整路徑目錄名稱。

寫入檔案

從「管理儲存在伺服器上的檔案」將選定?案寫入受管電腦上指定的完整路徑檔案名稱,如果想要重新命名檔案,請輸入新的檔案名稱。

每次程序執行「寫入檔案」指令時,代理都會檢查檔案是否已存在或對檔案進行雜湊校驗以驗證其完好性。如果檔案不存在,則會寫入檔案。如果檔案已存在,則程序會移至下個步驟。您可以使用「寫入檔案」重複執行程序,以將較大檔案發送到受管電腦,您會知道 VSA 只下載該檔案一次。

Note: 如果使用者電腦上設定了環境變數,則可以接受環境變數,例如,使用路徑 %windir%\notepad.exe 與使用 C:\windows\notepad.exe 等同。

在目錄路徑中寫入檔案

將指定檔案名稱寫入到「從註冊表獲取目錄路徑」指令傳回的路徑中。

寫入程序日誌項目

將提供的字串寫入執行此代理程序的電腦 ID 的代理程序日誌。