Comando Powershell | Arquivo externo

Comando Powershell | Arquivo externo

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

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

informação relacionada