根据源CSV日志文件和查询编写Windows事件日志条目

时间:2013-11-04 21:52:05

标签: windows powershell logging csv

SCENARIO

我一直在研究谷歌如何做到这一点,但我没有找到任何东西,所以我真的希望SO可以帮助从SF获得netadmin。我看到很多方法可以从Windows事件日志中导出,以及为自定义编写的应用程序编写事件的方法,但是到目前为止没有任何方法可以获取现有的日志文件并将它们“转换”为eventvwr条目。

我正在解决一个问题,我需要一种方法来接收基于Windows Server DHCP审核日志的通知/警报:http://technet.microsoft.com/en-us/library/dd759178.aspx

日志以DhcpSrvLog-Fri等形式写入C:\ windows \ system32 \ DHCP。并自行旋转。

我需要来自此日志的信息(特别是事件10,显示客户的新租约),并将查询它并将其与AD进行比较,然后写入新的CSV文件或直接写入新的eventvwr条目。

需要什么

结束结果: 此处的最终目标是在非AD加入的设备从我们的DHCP服务器获取DHCP租用地址时收到电子邮件通知。更多具体细节可在此处找到:https://serverfault.com/questions/550653/windows-dhcp-server-get-notification-when-a-non-ad-joined-device-gets-an-ip-ad


但是,关于这个特定问题,我正在寻找的是了解如何获取现有文件(csv)并根据其内容编写自定义Windows事件日志条目。


我似乎无法找到将现有文件作为输入的方法。我是否必须编写通过DHCP服务器审核日志解析的内容并创建包含在Write-Eventlog之类的内容中的各种变量?如果Powershell走错路,我愿意接受建议。

1 个答案:

答案 0 :(得分:1)

DHCP服务器日志的构建方式与事件不同,因此您必须手动解析csv文件并创建事件。由于这里没有任何实际问题,我只会提供一个样本来帮助您(未经测试和不完整):

Import-Csv filename | Where-Object { $_.ID -eq 10  } | ForEach-Object {
    #If you're using quest module for AD management
    if(!(Get-QADComputer -Name $($_."Host Name"))) {
        Write-EventLog ........
    }
}