#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."
}
}