Powershell 指令 |輸出檔案

Powershell 指令 |輸出檔案

問題:確定遠端電腦資料執行保護 (DEP) 狀態並將結果透過管道傳輸到包含電腦名稱的 txt 檔案。

目前的解決方案:

BCDEdit /enum "{current}" | out-file \\FILESHARE\DEP\DEP.txt -Append

我透過 SCCM 推出腳本,所以我唯一的問題是取得結果中包含的電腦名稱。 SCCM 允許您作為系統在每台電腦上遠端執行腳本,因此我不必擔心 PC 清單的“獲取內容”,只需指向一個集合並在這些系統上執行腳本。

或者,我嘗試在 SCCM 之外執行 Powershell 命令,例如:

$XenServers = get-content -path 'C:\PC_List.txt'

$Results= ForEach ($XenServer in $XenServers)
{
BCDEdit /enum "{current}"
}

$Results | Out-File \\FILESHARE\DEP\DEP.txt

答案1

我建議使用完全 PowerShell 解決方案。根據下面的鏈接,Win32_OperationSystem 類別包含您在 DataExecutionPrevention_SupportPolicy 屬性中尋找的值。從 WMI 查詢傳回的物件還包括 PSComputerName 屬性,因此這是追蹤結果的簡單方法。我不喜歡這種格式,所以我提出了另一個建議。

get-WmiObject Win32_OperatingSystem |
  Select-Object PSComputerName, DataExecutionPrevention_SupportPolicy |
  Export-Csv -Path \\FILESHARE\DEP\DEP.csv -Append -NoTypeInformation

https://support.microsoft.com/en-us/help/912923/how-to-define-that-hardware-dep-is-available-and-configured-on-your

相關內容