none
Автоинформатор AD RRS feed

  • Вопрос

  • Здравствуйте.

    Помогите скриптами на PS , нужно:

    1й скрипт ) Собирает имя компьютера;мак адрес;кто последний логинился сохраняет в файл pc-date.csv и отправляет на почту адрес info@domain.local

    Тема:Informer AD-PC

    пример вывода pc-15.02.2013.csv (делитель ;):

    ws-domain-001;FF:FF:FF:FF:FF:FF;chubaka1
    ws-domain-002;FF:FF:FF:FF:FF:FF;chubaka2
    ws-domain-002;FF:FF:FF:FF:FF:FF;chubaka3
    итд.

    2й скрипт ) Проверяет чтобы поля у пользователя были заполнены ,если у пользователя не заполнены поля , присылает письмо на адрес info@domain.local

    Вот список полей который интересует в ад:

    telephoneNumber
    mail
    displayName
    company
    department
    manager
    title

    Пример письма:

    Тема Informer AD-Users

    Тело:

    verify - chubaka1
    verify - chubaka2
    verify - chubaka3

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    15 февраля 2013 г. 12:22

Ответы

  • 1) последний логинился - С этим не уверен

    $base = "OU=Computers,DC=Contoso,DC=Com" Get-ADComputer -Filter * -SearchBase $base | Foreach { $pr=$mac=$null if (Test-Connection $_.Name -Count 2 -Quiet) { $pr = Get-WMIObject Win32_NetworkLoginProfile -ComputerName $_.Name| Sort LastLogon -Desc | Select -First 1 | Foreach {$_.Caption} $mac = Get-WMIObject Win32_NetworkAdapter -ComputerName $_.Name -Filter "MACAddress like '%'" | Foreach {$_.MACAddress} } New-Object PSObject -Prop @{ ComputerName = $_.Name MACAddress = ($mac -join ",") UserName = $pr } } | Export-CSV -NoType pc-date.csv -Delimiter ";" Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-PC" -Attachments pc-date.csv -SmtpServer smtp.domain.local 2) $base = "OU=Users,DC=Contoso,DC=Com" $properties = "telephoneNumber","mail","displayName","company","department","manager","title" $body = Get-ADUser -Filter * -SearchBase $base -Properties $properties | Foreach { $user = $_ if($miss = $properties | Where {!$user."$_"}) { "{0} - {1}" -f ($miss -join ","),$user.name } else { "verify - {0}" -f $user.name } } | Sort | Out-String Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-Users" -Body $Body -SmtpServer smtp.domain.local


    • Помечено в качестве ответа MR.Minion 17 февраля 2013 г. 5:37
    16 февраля 2013 г. 10:53
    Отвечающий
  • Send-MailMessage -Encoding $encoding
    • Помечено в качестве ответа MR.Minion 12 марта 2013 г. 11:30
    12 марта 2013 г. 10:39
    Отвечающий

Все ответы

  • 1) последний логинился - С этим не уверен

    $base = "OU=Computers,DC=Contoso,DC=Com" Get-ADComputer -Filter * -SearchBase $base | Foreach { $pr=$mac=$null if (Test-Connection $_.Name -Count 2 -Quiet) { $pr = Get-WMIObject Win32_NetworkLoginProfile -ComputerName $_.Name| Sort LastLogon -Desc | Select -First 1 | Foreach {$_.Caption} $mac = Get-WMIObject Win32_NetworkAdapter -ComputerName $_.Name -Filter "MACAddress like '%'" | Foreach {$_.MACAddress} } New-Object PSObject -Prop @{ ComputerName = $_.Name MACAddress = ($mac -join ",") UserName = $pr } } | Export-CSV -NoType pc-date.csv -Delimiter ";" Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-PC" -Attachments pc-date.csv -SmtpServer smtp.domain.local 2) $base = "OU=Users,DC=Contoso,DC=Com" $properties = "telephoneNumber","mail","displayName","company","department","manager","title" $body = Get-ADUser -Filter * -SearchBase $base -Properties $properties | Foreach { $user = $_ if($miss = $properties | Where {!$user."$_"}) { "{0} - {1}" -f ($miss -join ","),$user.name } else { "verify - {0}" -f $user.name } } | Sort | Out-String Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-Users" -Body $Body -SmtpServer smtp.domain.local


    • Помечено в качестве ответа MR.Minion 17 февраля 2013 г. 5:37
    16 февраля 2013 г. 10:53
    Отвечающий
  • 1) последний логинился - С этим не уверен

    $base = "OU=Computers,DC=Contoso,DC=Com" Get-ADComputer -Filter * -SearchBase $base | Foreach { $pr=$mac=$null if (Test-Connection $_.Name -Count 2 -Quiet) { $pr = Get-WMIObject Win32_NetworkLoginProfile -ComputerName $_.Name| Sort LastLogon -Desc | Select -First 1 | Foreach {$_.Caption} $mac = Get-WMIObject Win32_NetworkAdapter -ComputerName $_.Name -Filter "MACAddress like '%'" | Foreach {$_.MACAddress} } New-Object PSObject -Prop @{ ComputerName = $_.Name MACAddress = ($mac -join ",") UserName = $pr } } | Export-CSV -NoType pc-date.csv -Delimiter ";" Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-PC" -Attachments pc-date.csv -SmtpServer smtp.domain.local 2) $base = "OU=Users,DC=Contoso,DC=Com" $properties = "telephoneNumber","mail","displayName","company","department","manager","title" $body = Get-ADUser -Filter * -SearchBase $base -Properties $properties | Foreach { $user = $_ if($miss = $properties | Where {!$user."$_"}) { "{0} - {1}" -f ($miss -join ","),$user.name } else { "verify - {0}" -f $user.name } } | Sort | Out-String Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer AD-Users" -Body $Body -SmtpServer smtp.domain.local


    через Windows PowerShell ISE запускаю скрипт который проверяет поля на заполнения добавил две строки в самое начало

    $encoding = [System.Text.Encoding]::UTF8

    Import-Module ActiveDirectory

    Вот сам скрипт

    $encoding = [System.Text.Encoding]::UTF8
    Import-Module ActiveDirectory
    $base = "OU=Users,DC=Domain,DC=LOCAL"
    $properties = "telephoneNumber","mail","displayName","company","department","manager","title"

    $body = Get-ADUser -Filter * -SearchBase $base -Properties $properties | Foreach {
    $user = $_
    if($miss = $properties | Where {!$user."$_"}) {
    "{0} - {1}" -f ($miss -join ","),$user.name
    }
    else {
    "verify - {0}" -f $user.name
    }
    } | Sort |  Out-String

    Send-MailMessage -From ad-informer@domain.local -To chubaka@domain.local -Subject "Informer AD-Users" -Body $Body -SmtpServer 192.168.0.25

    Приходит письмо:

    verify - ????????? ??????

    verify - ?????????? ????????

    verify - ??????? ?????

    verify - ??????? ???????

    verify - ????? ????????

    verify - ???? ???????

    verify - ?????? ????????

    verify - ???? ????????

    verify - ???? ??????????

    verify - ????? ???????

    verify - ???????? ???????

    verify - ???????? ???????

    verify - ??????? ???????

    verify - ??????? ?????????

    verify - ??????? ???????

    verify - ??????? ???????????

    verify - ??????? ??????

    verify - ????????? ???????

    verify - ????????? ??????

    verify - ????????? ??????????

    verify - ????????? ?????????

    verify - ????? ???????

    verify - ????? ????????

    verify - ????? ?????????

    verify - ????? ????????

    verify - ????? ???????

    verify - ????? ???????????

    verify - ???? ??????

    verify - ????? ?????????

    verify - ????? ???????????

    verify - ????? ??????

    verify - ????? ??????

    verify - ??????? ?????????

    verify - ?????????? ???????????

    verify - ?????? ??????????

    verify - ?????? ?????????

    verify - ????? ????????

    verify - ?????? ????????

    verify - ?????? ????????

    verify - ?????? ???????????

    verify - ?????? ???????

    verify - ?????? ????????

    verify - ?????? ??????????

    verify - ?????? ????????

    verify - ????? ??????

    verify - ????? ?????????

    verify - ?????? ?????????

    verify - ??????? ??????????

    verify - ??????? ?????????

    verify - ?????? ?????????

    verify - ?????? ??????

    verify - ???? ??????????

    verify - ????? ?????????

    verify - ???????? ????????

    verify - ???????? ????????

    verify - ???????? ?????????????

    verify - ???????? ???????

    verify - ???????? ???????

    verify - ??????? ???????

    verify - ??????? ????????

    verify - ??????? ?????????

    verify - ???? ????????

    verify - ???? ???????

    verify - ???? ?????????

    Что я не правильно делаю ?


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 12 марта 2013 г. 11:36
    12 марта 2013 г. 10:36
  • Send-MailMessage -Encoding $encoding
    • Помечено в качестве ответа MR.Minion 12 марта 2013 г. 11:30
    12 марта 2013 г. 10:39
    Отвечающий
  • Send-MailMessage -Encoding $encoding
    Если добавляю все приходит корректно , но теряется форматирование , как сделать чтобы все в столбик как раньше было ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 12 марта 2013 г. 13:52
    12 марта 2013 г. 11:21