Powershell 命令 | Out-File

Powershell 命令 | Out-File

问题:确定远程计算机的数据执行保护 (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-determine-that-hardware-dep-is-available-and-configured-on-your

相关内容