<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Powershell 管理 后臺/計劃 作業(六)

      管理 后臺/計劃 作業

      后臺作業

      以其他方式啟動三種類型的作業(即本地、遠程和通用信息模型 (CIM)/Windows Management Instrumentation (WMI))

      本地作業

      • 運行位置:本地計算機
      • 關鍵點:用 Start-Job 啟動,腳本在后臺進程運行
      • 語法
      # 運行命令塊
      Start-Job -ScriptBlock { Get-Process } -Name MyJob
      
      # 運行一個腳本文件
      Start-Job -FilePath "C:\scripts\backup.ps1" -Name BackupJob
      

      遠程作業

      • 運行位置:遠程計算機
      • 關鍵點:用 Invoke-Command,加 -AsJob 參數
      • 語法
      Invoke-Command -ComputerName Server01,Server02 `
        -ScriptBlock { Get-Service } `
        -AsJob -JobName "ServiceCheck"
      

      用途:批量對多臺服務器執行任務,例如檢查服務狀態、收集日志。
      注意:這需要遠程計算機啟用 PowerShell Remoting (Enable-PSRemoting)。

      CIM / WMI 作業

      • 運行位置:通過 WMI/CIM 通道執行命令(不依賴 PS Remoting)。
      • 關鍵點
        • CIM 命令自身 沒有 -AsJob 參數,所以要用 Start-Job 包裝。
        • WMI 命令(Get-WmiObject)有 -AsJob 參數,可以直接用。

      CIM 示例
      在后臺查詢本地/遠程的操作系統信息。

      Start-Job -ScriptBlock { Get-CimInstance -ClassName Win32_OperatingSystem }
      

      WMI 示例
      在后臺通過 WMI 查詢遠程機器的服務。

      Get-WmiObject -Class Win32_Service -ComputerName Server01 -AsJob
      

      在上述所使用到的類型名,都可以自己去找:

      # WMI
      Get-WmiObject -List
      
      # CIM
      Get-CimClass
      

      作業的管理

      • 父作業 (Parent Job)
        • 頂級容器,代表整個作業。
        • 里面會有一個或多個子作業。
      • 子作業 (Child Job)
        • 每臺計算機對應一個子作業。
        • 本地作業 = 1 個子作業。
        • 遠程作業 / WMI 作業 = 每個目標計算機 1 個子作業。

      舉例:
      如果你用 Invoke-Command -AsJob 發到 3 臺電腦:

      • 父作業 1 個
      • 子作業 3 個(分別對應三臺遠程機)

      • Get-Job = 看隊列
      • Receive-Job = 拿結果
      • Wait-Job = 等待任務完成
      • Remove-Job = 清理任務
      • Stop-Job = 停止任務

      檢索作業

      • 列出所有作業
      Get-Job
      
      • 按名稱找作業
      Get-Job -Name TestScript
      
      • 按 ID 找作業
      Get-Job -Id 5
      

      狀態 State 屬性 很關鍵:

      • Running(正在運行)
      • Completed(已完成)
      • Failed(失敗)
      • Stopped(被手動終止)

      注意:父作業的狀態會反映子作業中有沒有失敗。
      即便 3 臺機器里有 2 個成功,1 個失敗 → 父作業顯示 Failed


      查看子作業

      • 展開 ChildJobs 屬性
        Get-Job -Name RemoteLogs | Select-Object -ExpandProperty ChildJobs
      • 更直觀的參數 (PowerShell 3.0+)
        Get-Job -Name RemoteLogs -IncludeChildJobs

      這樣你就能看到每個子作業的 獨立狀態、ID、Location。


      簡單案例

      常用管理命令:

      • 停止作業
      Stop-Job -Name RemoteLogs Stop-Job -Id 6
      
      • 刪除作業(清理內存里的結果)
      Remove-Job -Name LocalDirectory
      
      • 等待作業完成(腳本常用)
      Wait-Job -Name TestScript
      
      • 獲取作業結果
      Receive-Job -Id 4
      
      • 檢索正在執行的任務的結果
        指定 –Keep,否則后續再讀取就讀取不到了
      Receive-Job –ID 13 -Keep | Format-Table –Property Name,Length
      

      注意:
      Receive-Job 默認會“取走”結果,再次執行就讀不到了。
      如果要多次讀取,可以加 -Keep

      Receive-Job -Id 4 -Keep
      

      表格總結回顧:

      命令 作用
      Get-Job 查看所有作業(父作業 + 狀態)
      Get-Job -IncludeChildJobs 查看子作業詳情
      Stop-Job 停止正在運行的作業
      Remove-Job 刪除作業對象(釋放內存)
      Wait-Job 等待作業完成(腳本控制流用)
      Receive-Job 獲取作業結果

      計劃作業

      一個計劃作業由 三部分組成:

      1. 作業 (Job):要運行的命令或腳本。
        • 類似于 Start-Job -ScriptBlock { … }
      2. 作業選項 (Job Options):運行的附加條件。
        • 比如:是否需要憑據、網絡可用性要求、最大運行時間等。
        • New-ScheduledJobOption 創建。
      3. 作業觸發器 (Job Triggers):定義什么時候運行。
        • 比如:每天 9 點運行,或每周一運行,或只運行一次。
        • New-JobTrigger 創建。

      若要查看完整的命令列表,請運行以下命令:

      Get-Command –Module ScheduledTasks
      

      常用命令:

      Cmdlet 說明
      Register-ScheduledJob 創建計劃作業(關鍵命令)
      Get-ScheduledJob 查看計劃作業
      Set-ScheduledJob 修改作業
      Enable-ScheduledJob / Disable-ScheduledJob 啟用/禁用作業
      Unregister-ScheduledJob 刪除計劃作業
      Get-JobTrigger / Add-JobTrigger 查看或添加觸發器
      Get-ScheduledJobOption / Set-ScheduledJobOption 查看或修改選項
      Get-Job / Receive-Job 查看計劃作業的運行結果

      作業選項

      使用 New-ScheduledJobOption 可創建新的作業選項對象

      此命令具有多個參數,可用于定義作業的選項,例如:

      • –HideInTaskScheduler,阻止作業在“任務計劃程序”中顯示。 如果未包括此選項,最終作業將在“任務計劃程序”圖形用戶界面 (GUI) 中顯示。
      • –RunElevated,將作業配置為在提升的權限下運行。
      • –WakeToRun,在作業計劃運行時喚醒計算機。
        使用其他參數來配置在計算機空閑時運行的作業和其他選項。 許多參數與“任務計劃程序”GUI 中的選項對應。

      使用以下命令創建新的選項對象并將其存儲在變量中:

      $opt = New-ScheduledJobOption –RequireNetwork –RunElevated -WakeToRun
      

      作業觸發器

      作業觸發器定義作業何時運行。 每個作業可以有多個觸發器。 使用 New-JobTrigger 命令創建觸發器對象。 有五種基本類型的觸發器:

      • –Once 指定只運行一次的作業。 還可以指定 –RandomDelay,并且必須指定 –At 參數來定義作業何時運行。 此參數接受 System.DateTime 對象或可解釋為日期的字符串。
      • –Weekly 指定每周運行的作業。 可指定 –RandomDelay,并且必須同時指定 –At 和 –DaysOfWeek 參數。 –At 采用日期和時間來定義作業何時運行。 –DaysOfWeek 采用一周中的某一天或多天來運行作業。 通常會用 –At 來指定時間并使用 –DaysOfWeek 定義作業應該運行的天數。
      • –Daily 指定每天運行的作業。 必須指定 –At 并指定作業何時運行。 還可以指定 –RandomDelay。
      • –AtLogOn 指定用戶登錄時運行的作業。 此類作業類似于登錄腳本,不同之處在于它是在本地而非在域中定義。 可指定 –User 來限制觸發作業的用戶帳戶,并指定 –RandomDelay 來添加隨機延遲。
      • AtStartUp 與 –AtLogOn 類似,不同之處在于它在計算機啟動時運行作業。 這通常會在用戶登錄前運行作業。

      例如,以下命令創建一個觸發器,該觸發器在當地時間每周一和周四下午 3:00 運行:

      $trigger = New-JobTrigger -Weekly -DaysOfWeek Monday,Thursday -At '3:00PM'
      

      創建和注冊

      使用 Register-ScheduledJob 可創建和注冊新的計劃作業。 指定以下任何參數:

      • –Name 是必需的,它指定作業的顯示名稱。
      • –ScriptBlock 是必需的,它指定作業運行的一個或多個命令。 還可以指定 –FilePath 并提供作業將運行的 Windows PowerShell 腳本文件的路徑和名稱。
      • –Credential 是可選的,它指定將用于運行作業的用戶帳戶。
      • –InitializationScript 接受可選的腳本塊。 此腳本塊中的一個或多個命令將在作業開始之前運行。
      • –MaxResultCount 是可選的,它指定要存儲在磁盤上的最大結果集數。 達到此數量后,shell 會刪除舊結果,用于為新結果騰出空間。 -MaxResultCount 參數的默認值為 32。
      • –ScheduledJobOption 接受作業選項對象。
      • –Trigger 接受作業觸發器對象。

      若要使用 $opt 中的選項對象和 $trigger 中的觸發器對象注冊新作業,請使用以下示例:

      $opt = New-ScheduledJobOption -WakeToRun
      
      $trigger = New-JobTrigger -Once -At (Get-Date).AddMinutes(5)
      
      Register-ScheduledJob -Trigger $trigger -ScheduledJobOption $opt -ScriptBlock { Dir C:\ } -MaxResultCount 5 -Name "LocalDir"
      
      Id         Name            JobTriggers     Command       Enabled   
      --         ----            -----------     -------        -------   
      1          LocalDir        1                Dir C:\        True
      

      Windows PowerShell 在 Windows“任務計劃程序”中注冊生成的作業,并在磁盤上創建作業定義。 作業定義是存儲在您的用戶配置文件文件夾中的 XML 文件,路徑為 \AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs。

      可以運行 Get-ScheduledJob 來查看本地計算機上的計劃作業列表。
      如果知道計劃作業的名稱,可以使用 Get-JobTrigger 和 –Name 參數來檢索此作業的觸發器列表。

      使用流程

      步驟 1:定義觸發器
      每天上午 9 點運行

      $trigger = New-JobTrigger -Daily -At 9am
      

      步驟 2:定義選項
      管理員權限運行,即使在筆記本電池模式下也能繼續(參數:ContinueIfGoingOnBattery)

      $options = New-ScheduledJobOption -RunElevated -ContinueIfGoingOnBattery
      

      步驟 3:注冊作業
      創建一個每天 9 點運行的作業,把 Get-ChildItem 的結果保存到磁盤

      Register-ScheduledJob -Name "DailyDirJob" -ScriptBlock { Get-ChildItem C:\ -Recurse } -Trigger $trigger -ScheduledJobOption $options
      

      查看與管理

      查看作業定義

      Get-ScheduledJob
      

      查看觸發器和選項

      Get-JobTrigger -Name DailyDirJob
      Get-ScheduledJobOption -Name DailyDirJob
      

      手動運行一次

      Start-Job -DefinitionName DailyDirJob
      

      查看結果

      Get-Job -Name DailyDirJob
      Receive-Job -Name DailyDirJob -Keep
      

      刪除作業

      Unregister-ScheduledJob -Name DailyDirJob
      

      與任務計劃程序的關系

      計劃作業在 任務計劃程序 中存儲在:

      Microsoft\Windows\PowerShell\ScheduledJobs
      

      在任務計劃程序 GUI 里能看到對應的任務:

      • 觸發器 = 作業觸發器
      • 條件/常規 = 作業選項
      • 歷史記錄 = 執行日志

      注意:如果你在任務計劃程序 GUI 里修改了觸發器或條件,這些修改會影響后續的所有運行。

      區分 PSScheduledJob vs ScheduledTasks 模塊

      • PSScheduledJob:專門給 PowerShell 用的“計劃作業”,結果保存到 PowerShell 自己的輸出存儲中,可以 Receive-Job

      • ScheduledTasks:Windows 原生任務計劃程序管理模塊,可以操作所有任務(包括 PowerShell 以外的任務)。

      posted @ 2025-10-01 13:35  竹等寒  閱讀(50)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩人妻无码精品久久| 综合色一色综合久久网| 亚洲日韩一区二区| 成人无码潮喷在线观看| 色一情一区二区三区四区 | 中文熟妇人妻av在线| 疯狂做受XXXX高潮国产| 免费看成人aa片无码视频吃奶| 亚洲一区二区三区自拍偷拍| 国产精品中文字幕免费| 日韩av影院在线观看| 无遮挡aaaaa大片免费看| 东京一本一道一二三区| 人妻激情偷乱一区二区三区| 国产在线精彩自拍视频| 在线高清免费不卡全码| 呈贡县| 又大又粗欧美成人网站| 在线观看成人永久免费网站| av明星换脸无码精品区| 久久老熟女一区二区蜜臀| 精品一卡2卡三卡4卡乱码精品视频| 祥云县| 在线观看亚洲欧美日本| 97国产露脸精品国产麻豆| 东京热一精品无码av| 亚洲色一区二区三区四区| 推油少妇久久99久久99久久| A毛片终身免费观看网站| 国产精品毛片在线完整版| 亚洲av网一区天堂福利| 精品无码国产不卡在线观看| 国产粉嫩学生高清专区麻豆| 精品国内自产拍在线观看| 又黄又刺激又黄又舒服| 天堂中文8资源在线8| 日本一区二区不卡精品| 少妇高潮尖叫黑人激情在线| 亚洲精品国产aⅴ成拍色拍| 久久中文字幕无码一区二区| 日本亚洲一区二区精品久久|