
Problema: Determine o status da Prevenção de Execução de Dados (DEP) de computadores remotos e canalize os resultados para um arquivo txt incluindo o nome da máquina.
Solução atual:
BCDEdit /enum "{current}" | out-file \\FILESHARE\DEP\DEP.txt -Append
Estou enviando o script por meio do SCCM, então meu único problema é incluir o nome da máquina nos resultados. O SCCM permite que você execute o script em cada máquina remotamente como Sistema, então não preciso me preocupar com "obter conteúdo" com uma lista de PCs, basta apontar para uma coleção e executar o script nesses sistemas.
Alternativamente, tentei executar o comando Powershell fora do SCCM, como:
$XenServers = get-content -path 'C:\PC_List.txt'
$Results= ForEach ($XenServer in $XenServers)
{
BCDEdit /enum "{current}"
}
$Results | Out-File \\FILESHARE\DEP\DEP.txt
Responder1
Eu recomendaria usar uma solução inteiramente PowerShell. De acordo com o link abaixo, a classe Win32_OperationSystem contém o valor que você procura na propriedade DataExecutionPrevention_SupportPolicy. Os objetos retornados de consultas WMI também incluem a propriedade PSComputerName, portanto, é uma maneira fácil de acompanhar os resultados. Não sou fã desse tipo de formatação, então estou incluindo outra recomendação.
get-WmiObject Win32_OperatingSystem |
Select-Object PSComputerName, DataExecutionPrevention_SupportPolicy |
Export-Csv -Path \\FILESHARE\DEP\DEP.csv -Append -NoTypeInformation