Я хотел бы найти способ определить, на какие рабочие станции или серверы вошла учетная запись пользователя.
Есть ли сценарий, который может сканировать DC для получения этой информации?
В качестве альтернативы, любой ПК, на который вошел пользователь, должен иметь на нем профиль пользователя. Есть ли способ сканировать папки профиля пользователя? Хотя я полагаю, что это не было бы идеально, так как соглашение об именах не всегда одинаковое.
В основном мне просто нужно посмотреть, вошел ли UserA на какие-либо рабочие станции или серверы, кроме своих собственных. Есть другие предложения?
Если у вас уже нет продукта для аудита, нет быстрого и простого способа сделать это. Вот что мне приходилось делать в прошлом.
Узнайте, на какие рабочие станции / серверы зарегистрирован пользователь
Тип информации, которую вы ищете, не сохраняется в каталоге. Единственный известный мне способ сделать это без настройки инструмента - это выполнить поиск в журналах безопасности на всех ваших контроллерах домена. Вы ищете событие с идентификатором 4624. После того, как вы отфильтруете свой журнал для этого, даже запустите поиск для идентификатора безопасности, который вы спрашиваете. Для моего домена журналы имеют вид netbios \ samAccountName. Тип входа 2 означает интерактивный вход (физически с помощью клавиатуры / мыши), тип входа 3 означает «олицетворение» (например, rdp). Под сетевой информацией вы должны указать имя и IP-адрес рабочей станции.
Вот дополнительная информация о событии с кодом 4624: https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4624
Поиск профилей на машинах
Во-первых, я настоятельно рекомендую нацеливаться на очень конкретные машины, если вы идете по этому пути. Это будет очень трудоемкий процесс, и для его работы необходимо выполнение нескольких условий. А именно, вы должны быть администратором целевой системы и должны быть включены административные общие ресурсы (например, \ computername \ c $).
Вы можете попробовать следующее в PowerShell. Обратите внимание, что вам понадобится список компьютеров (FQDN для каждого), samAccountName соответствующего пользователя и netbios соответствующего домена. Это быстрый пример для компьютеров под управлением Windows 7+. Добавить дополнительные пути просто. Сценарий распечатает все компьютеры, на которых был найден путь к профилю.
foreach($computer in $computers){
$tempPath1 = "\\" + $computer + "\c$\Users\" + $samAccountName + "\"
$tempPath2 = "\\" + $computer + "\c$\Users\" + $samAccountName + "." + $domainNetBios + "\"
if((Test-Path $tempPath1) -or (Test-Path $tempPath2)){
Write-Output $computer
}
}
Дополнительный кредит: проверьте ACL найденных путей и посмотрите, включен ли пользователь.
РЕДАКТИРОВАТЬ: Вот еще один метод для текущих сеансов https://blogs.technet.microsoft.com/heyscriptingguy/2011/06/04/use-powershell-to-find-logon-sessions/
Вам нужен список компьютеров и серверов в CSV. Теперь предположим, что имя человека - skyra, которого вы ищете.
Get-Content C:\computers.csv | `
Select-Object @{Name='ComputerName';Expression={$_}},@{Name='FolderExist';Expression={ Test-Path "\\$_\c$\users\skyra"}}
Взаимодействие с другими людьми
you will see output like this
Computername folderexists
skyra-pc true
Hppc false