zoukankan      html  css  js  c++  java
  • PowerShell监控Windows打印服务器

    转自:http://sodaxu.blog.51cto.com/8850288/1417385

     

        #获取日志,事件ID 307即我们需要提取的事件。 path后的路径要与operational日志属性里的日志路径一致
    $log = Get-WinEvent -Path "F:pringlogMicrosoft-Windows-PrintService%4Operational.evtx" | where-object {$_.id -eq "307"}
        #输出csv文件位置,用当前的日期运行。
    $Path="F:pringlog$(Get-date -UFormat "%Y-%m-%d").csv"
    foreach ($slog in $log)
    {
        #取xml操作
         $xmltemp= $slog.ToXml()
         $xmldata = [xml]$xmltemp
        #取xml对应的node里的值
         $documentsName = $xmldata.Event.UserData.DocumentPrinted.Param2
         $userName = $xmldata.Event.UserData.DocumentPrinted.Param3
         $paGes = $xmldata.Event.UserData.DocumentPrinted.Param8
         $printerName = $xmldata.Event.UserData.DocumentPrinted.Param5
        #取日志时间
         $printTime = $slog.TimeCreated
        #自定义PSObject属性
         $hash = @{
         [string]"打印文件名"=$documentsName;
         [string]"用户名"=$userName;
         [string]"打印时间"=$printTime.ToString();
         [string]"打印机名称"=$printerName;
         [string]"打印页数"=$paGes} 
         $logObj = New-Object PSObject -Property $hash
        #输出为CSV,逐条添加模式,不带TypeInformation,所以如果要重新输出,还得删掉以前的文件。
         Export-Csv -InputObject $logObj -Path $Path -Append -Encoding UTF8 -NoTypeInformation
    }
  • 相关阅读:
    C++笔记-智能指针 shared_ptr
    Linux笔记-性能调优工具perf
    git submodule 如何push代码
    性能测试工具gperftools使用
    Linux信号使用及自定义信号
    DNN在推荐系统中的应用参考资料
    vscode远程代码同步
    感知机模型到DNN模型
    c++笔记-libcurl多线程并发时的core【转载】
    go笔记-熔断器
  • 原文地址:https://www.cnblogs.com/IvanChen/p/4494457.html
Copyright © 2011-2022 走看看