Как я могу отправить электронное письмо о том, кто вышел из системы? - PullRequest
0 голосов
/ 24 мая 2019

Я хочу иметь возможность отправить электронное письмо о том, кто вышел из системы с каждого компьютера. Как мне это сделать?

$ username = Read-Host -Prompt 'Введите имя пользователя'

Создать новую переменную для сбора результатов. Вы можете использовать это для вывода по желанию

$ SessionList = "ОТЧЕТ СЕССИИ АКТИВНОГО СЕРВЕРА -" + $ сегодня + "n n"

Запрос Active Directory для компьютеров, работающих под управлением серверной операционной системы

Get-Content -Path '\ server \ share $ \ 1 - Инструменты администратора \ Сценарии Power Shell \ Отключение пользователей от серверов \ Serverlist.csv' | выберите -Skip 1 | Set-Content "\ data01 \ it $ \ 1 - Инструменты администратора \ Сценарии Power Shell \ Отключение пользователей от серверов \ Servers.csv"

$ Servers = Get-Content -Path '\ server \ share $ \ 1 - Инструменты администратора \ Сценарии Power Shell \ Отключение пользователей от серверов \ Servers.csv'

Перебрать список, чтобы запросить у каждого сервера сеансы входа в систему

ForEach ($ сервер в $ серверах) {

$list = $Server -replace '"', "" 

# When running interactively, uncomment the Write-Host line below to show which server is being queried 
$message = "Querying" +" "+ $list 


$message

# Run the qwinsta.exe and parse the output 
$queryResults = (qwinsta $username /server:$Server | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)

# Pull the session information from each instance 
ForEach ($queryResult in $queryResults){ 
    $RDPUser = $queryResult.USERNAME 
    $sessionType = $queryResult.ID
    if ($sessionType -eq "Disc"){$sessionType = $RDPUser} else { $sessionType = $queryResult.ID}

    Write-Host "Logging $username off of $list with Session# $sessionType"

     logoff $sessionType /server:$Server

      } 

} * * тысяча двадцать-один

1 Ответ

0 голосов
/ 24 мая 2019

Я вижу, у вас уже есть имя пользователя. Так что если у вас установлен AD модуль , вы можете использовать

$Mail = (Get-ADUser $username -properties Mail).mail

, чтобы получить идентификатор электронной почты пользователя. Тогда вы можете использовать

Send-MailMessage -to $mail -From <random mail id for eg noreplyAD@mail.com> -Body "Your $username has been logged off of $server" -Subject "Logoff notification" -SmtpServer <yourcompany's smtpserver>

для отправки уведомления пользователю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...