Перейти к содержанию

Скрипт для отправки статистики по отпечатанным страницам принтеров на почту

function Send-Email {
$SMTPServer = "smtp.example.ru"
$port = 587
$EmailFrom = "[email protected]" 
$EmailTo = "[email protected]"
$Body = "Статистика по печати за  $(get-date -f dd.MM.yyyy)"
$EmailSubject = "Статистика по печати за  $(get-date -f dd.MM.yyyy)"
$EmailUser = "[email protected]"
$EmailPass = "password"
$Date = $(get-date -f yyyy.MM.dd)
$File = "c:\count\$Date.txt"

$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Att  = New-object Net.Mail.Attachment($File)
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$Message.Body = $Body
$Message.Attachments.Add($Att)
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)

$SMTP.Credentials = New-Object System.Net.NetworkCredential($EmailUser, $EmailPass);
$SMTP.Send($Message)
$att.Dispose()
}


function Get-InfoPrintersKyocera {
$snmp = New-Object -ComObject olePrn.OleSNMP
cls
foreach ($n in 1..119)
{
    # IP можно изменить на свой
    $ip = "192.168.1.$n"
    if (Test-Connection $ip -Quiet -Count 2)
    {
        $snmp.open($ip, 'public', 1, 3000)
    }
    else {Continue}

    Try {$model = $snmp.Get('.1.3.6.1.2.1.25.3.2.1.3.1')}
    Catch {Continue}

    New-Object PSObject -Property ([ordered]@{
        "Serial Number"  = $snmp.Get('.1.3.6.1.4.1.1347.43.5.1.1.28.1')
        "PrinterModel"   = $model
        "IP"             = $ip
#       "Description"    = $snmp.Get('.1.3.6.1.2.1.1.1.0')
        "TotalPageCount" = $snmp.Get('.1.3.6.1.4.1.1347.43.10.1.1.12.1.1')
        "Date"           = $(get-date -f dd.MM.yyyy)
    })

}

}

Get-InfoPrintersKyocera | export-csv -NoTypeInformation -encoding UTF8 "C:\count\$(get-date -f yyyy.MM.dd)-PrinterCount.csv"

Send-Email