Поиск сетевых компьютеров для SID пользователя

#powershell #powershell-2.0 #sid

#powershell #powershell-2.0 #sid

Вопрос:

Я изучал, как найти местоположение SID на сетевых компьютерах, но пока ничего.

Мне нужно выполнить поиск в нашей сети и запросить поиск всех компьютеров, если присутствует определенный идентификатор SID, и предоставить мне результирующие компьютеры, на которых отображается этот идентификатор пользователя.

Любые идеи, поскольку я рисую пробел.

Комментарии:

1. Находятся ли ваши пользователи в домене? Можно ли получить доступ ко всем компьютерам через powershell remoting?

2. Чего вы пытаетесь достичь? Найдите, на каком компьютере пользователь в данный момент вошел в систему?

Ответ №1:

Попробуйте это. Принимает имя пользователя, преобразует в SID, затем выполняет поиск по всем компьютерам в домене для этого SID в реестре (пользователь должен войти в систему, иначе раздел реестра не существует).

 $User = "Username"
$SID = Get-ADUser -Identity $User | Select -ExpandProperty SID
$ComputerList = Get-ADComputer -Filter * | Select -ExpandProperty DNSHostName

foreach ($Computer in $ComputerList){
    if (Test-Connection -ComputerName $Computer -Quiet -Count 1) {
        $Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('Users', $Computer)
        if ($Reg.OpenSubKey("$SID")) {
            Write-Output "$User found on $Computer."
        }
        else {
            Write-Output "$User not found on $Computer."
        }
    }
    else {
        Write-Output "$Computer unreachable."
    }
}