PowerShell Поиск сессии пользователей на серверах
Имея несколько ферм с терминальными серверами иногда нужно найти сессию пользователя на сервере. Конечно, можно перебирать руками каждый сервер но это не наш метод .
Для этого есть PowerShell, для которого мы напишем скрипт и он уже будет искать юзеров. Итак приступим.
Запускаем PowerShell (Win+R — выполнить «PowerShell»)
Щёлкам правой кнопкой мыши по значку окна PowerShell и в появившемся контекстном меню выбираем «Запуск от имени Администратора». Откроется новое окно с синим фоном.- В новом окне пишем «Set-ExecutionPolicy Unrestricted»
PS C:\Windows\system32> Set-ExecutionPolicy Unrestricted Изменение политики выполнения Политика выполнения обеспечивает защиту компьютера от ненадежных скриптов. Изменение политики выполнения может подвергнуть компьютер риску нарушения системы безопасности, как описано в разделе справки, вызываемом командой about_Execution_Policies. Изменить политику выполнения? [Y] Да - Y [N] Нет - N [S] Приостановить - S [?] Справка (значением по умолчанию является "Y"): Y PS C:\Windows\system32>
- Теперь наши скрипты будут работать у нас на ПК.
- Создаём файл «Поиск пользователей на сервере.ps1»
- Размещаем туда следующий код
$Login = Read-Host -Prompt "Введите логин пользователя" Import-Module ActiveDirectory $Amount = 0 $Matched = "" $Servers = Get-ADComputer -Filter { Name -like "p-ts01*"} ForEach ($Server in $Servers) { $ServerName = $Server.Name Write-host = $Server.Name $connection = Test-Connection $ServerName -Count 1 -ErrorAction SilentlyContinue if ($connection -ne $null){ $queryResults = qwinsta /server:$ServerName ForEach ($queryResult in $queryResults) { #Write-host $queryResult -cmatch $Login if ($queryResult -cmatch $Login){ #Write-host $ServerName $Matched += "$ServerName " $Amount++ } } } } if ($Amount -gt 0){ Write-host "Servers where $Login Session found: $Matched" } else { Write-host "No $Login sessions found" } read-host "Press enter key to continue"
Проверяем ПКМ по нашему скрипту «Выполнить с помощью PowerShell»
Указываем логин нужного пользователя и поиск пошел. (В скрипте используется -cmatch это означает, что логин пользователя чувствителен к регистру.)
Рейтинг:
/5 -
голосов
Комментарии ()