【发布时间】:2019-08-26 13:28:54
【问题描述】:
我在获取 EventLog 和保存数据时遇到了一些问题。我可以获取我的 EventLogs,但不能从网络计算机获取日志。
这是我正在运行的代码:
$logFileName = "Application"
$path = $MyInvocation.MyCommand.Path +"\Output\"
$path = $PSScriptRoot+"\Output\"
new-item $path -ItemType directory
$array = ("System", "Security")
$file = $PSScriptRoot +"\computers.txt"
$users = ForEach ($machine in $(Get-Content $file)) {
$pathMachine = $path+$machine
new-item $pathMachine -ItemType directory
ForEach ($logFileName in $array){
# do not edit
$logFileName
$exportFileName = (get-date -f yyyyMMdd) + "_" + $logFileName + ".evt"
$logFile = Get-WmiObject Win32_NTEventlogFile -ComputerName $machine | Where-Object {$_.logfilename -eq $logFileName}
$logFile
$exportFileName
$pathMachine
$temp = $pathMachine + "\"+ $exportFileName
$temp
$fff = $logFile.BackupEventLog($temp)
}
}
【问题讨论】:
-
起初,我以为您使用的是“Get-EventLog”,但是您正在执行 WMI 调用,因此您需要使用“调用命令”在远程计算机上运行它。这需要使用该机器的凭据调用,因为该命令需要直接在该机器上运行。
标签: powershell get get-eventlog