
문제: 원격 컴퓨터의 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