Я хочу иметь возможность отправить электронное письмо о том, кто вышел из системы с каждого компьютера. Как мне это сделать?
$ 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
}
} * * тысяча двадцать-один