Назад | Перейти на главную страницу

Как я могу проверить, на каких машинах я вошел в домен?

Я часто оказываюсь на нескольких машинах по протоколу RDP, и у меня истекает время соединения, что не дает мне войти в систему. Затем я забываю, где был, и моя учетная запись остается в системе, блокируя доступ других пользователей к этим машинам.

Есть ли способ запросить пользователя в домене и перечислить все машины, на которые он вошел?

Вы можете использовать PowerShell, чтобы узнать, где находится ваш пользователь. Однако вам понадобятся командлеты Active Directory:

# Import the Active Directory module for the Get-ADComputer CmdLet
Import-Module ActiveDirectory

# Query Active Directory for computers running a Server operating system
$Servers = Get-ADComputer -Filter {OperatingSystem -like "*server*"}

# Loop through the list to query each server for login sessions
ForEach ($Server in $Servers) {
    $ServerName = $Server.Name

    # When running interactively, uncomment the Write-Host line below to show which server is being queried
    # Write-Host "Querying $ServerName"

    # Run the qwinsta.exe and parse the output
    $queryResults = (qwinsta /server:$ServerName | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) 

    # Pull the session information from each instance
    ForEach ($queryResult in $queryResults) {
        $RDPUser = $queryResult.USERNAME
        $sessionType = $queryResult.SESSIONNAME

        # We only want to display where a "person" is logged in. Otherwise unused sessions show up as USERNAME as a number
        If (($RDPUser -match "[a-z]") -and ($RDPUser -ne $NULL)) { 
            # When running interactively, uncomment the Write-Host line below to show the output to screen
            # Write-Host $ServerName logged in by $RDPUser on $sessionType
            $SessionList = $SessionList + "`n`n" + $ServerName + " logged in by " + $RDPUser + " on " + $sessionType
        }
    }
}


# When running interactively, uncomment the Write-Host line below to see the full list on screen
$SessionList

Вам просто нужно будет настроить это для вашей ситуации. (т.е. компьютеры и серверы, а не только серверы)

Есть ли способ запросить пользователя в домене и перечислить все машины, на которые он вошел?

Нет, это не так; нет ничего лучше ~IsLoggedOnTo атрибут, который прикрепляется к объекту пользователя в AD. Список зарегистрированных пользователей - это свойство / атрибут каждого компьютера в отдельности, поэтому вам придется запрашивать каждый компьютер отдельно.

Я [вероятно] использовал бы PowerShell и оснастку TS Manager / Remote Desktop Services MMC, чтобы понять это ... если бы не было намного проще просто запомнить или выработать привычку выходить из системы, а не закрытие моих окон RDP.

Итак - получите список всех серверов в вашем домене (и / или любых других машинах, о которых может идти речь). Поместите его в файл с именем servers.txt. Бегать :

 for /f %s in (servers.txt) do (echo %s & qwinsta /server:%s )

- пример файла txt -

 server1
 server2
 server3