Вернуть LastWriteTime указанного раздела реестра на удаленной машине - PullRequest
5 голосов
/ 30 июня 2011

Используя Powershell, как я могу перечислить LastWriteTime указанного раздела реестра на удаленном компьютере?

На удаленном компьютере не установлен Powershell, поэтому удаленное взаимодействие с Powershell отсутствует. Доступны .NET и WMI. Я успешно использовал функцию RegEnumKeyEx в Advapi32.dll, чтобы получить lpftLastWriteTime на локальном компьютере.

1 Ответ

1 голос
/ 23 сентября 2011

Как насчет использования LogParser, доступного от Microsoft ?

А вот пример кода с использованием COM-объекта:

$query = @"

    SELECT 
        Path, 
        KeyName, 
        ValueName, 
        Value, 
        LastWriteTime 
    INTO $outfile 
    FROM \\remotecomputername\HKLM\etc\etc
    WHERE LastWriteTime BETWEEN 
        TIMESTAMP('2011/08/01 00:00:00', 'yyyy/MM/dd hh:mm:ss') AND 
        TIMESTAMP('2011/09/06 00:00:00', 'yyyy/MM/dd hh:mm:ss') 
    ORDER BY LastWriteTime DESC

"@

$inputtype = New-Object -comObject MSUtil.LogQuery.RegistryInputFormat
$outputtype = New-Object -comObject MSUtil.LogQuery.CSVOutputFormat
$outfile = 'c:\temp\outfile.csv'
$logObject = new-object -com MSUtil.LogQuery
$result = $logObject.ExecuteBatch($query, $inputtype, $outputtype) | Out-Null

В предложении FROM можно указать несколько значений через запятую, чтобы при необходимости запросить более одного компьютера. Дальнейшее чтение здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...