none
Определение активных сеансов пользователей домена RRS feed

  • Вопрос

  • Планируется выполнять межлесовую миграцию при помощи ADMT. Во всех мануалах пишут, что важным условием при мигрировании рабочих станций является отсутствие активных сеансов пользователей на мигрируемом ПК. В связи с чем у меня возник вопрос - каким образом я могу централизованно определить, какие пользователи домена активны в данный момент и на каких рабочих станциях?
    • Изменено Expressimo 27 апреля 2018 г. 8:02
    27 апреля 2018 г. 7:27

Ответы

  • тогда такой вариант (powershell):

    $owners = @{}
    get-process -ComputerName ИМЯ.КОМПЬЮТЕРА | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}} | sort "owner"

    это выведет все процессы на удалённом компьютере. Если пользователь будет залогинен - он будет в списке. Пример:

    ProcessName              Id Owner
    -----------              -- -----
    System                    4
    Idle                      0
    ipoint                 3556 Admin
    igfxEM                 4620 Admin
    itype                  3548 Admin
    jucheck                3628 Admin
    jusched                6660 Admin
    SystemSettings         9204 Admin
    svchost                3420 Admin
    chrome                 4452 Admin
    chrome                 2968 Admin
    chrome                11996 Admin
    dllhost               11008 Admin
    firefox                6752 Admin
    firefox                5124 Admin
    explorer               4056 Admin
    firefox                 268 Admin
    conhost               11296 Admin
    AnVir                 11196 Admin
    ctfmon                 4168 Admin
    RuntimeBroker          7408 Admin
    svchost                3784 LOCAL SERVICE
    svchost                4988 LOCAL SERVICE
    svchost                6980 LOCAL SERVICE
    svchost               11020 LOCAL SERVICE
    svchost               10680 LOCAL SERVICE
    dasHost                5508 LOCAL SERVICE
    svchost               10720 LOCAL SERVICE
    svchost                2120 NETWORK SERVICE
    svchost                4388 NETWORK SERVICE
    svchost                3792 NETWORK SERVICE

    или ещё проще cmd:

    query user /server:ИМЯ.КОМПЬЮТЕР

    и вывод:

     USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
     admin                 console             1  Active      none   28.04.2018 09:49
    вообщем, в гугле полно примеров ;)
    28 апреля 2018 г. 11:46
    Модератор

Все ответы

  • На конкретном компьюьтере список активных сеансов можно посмотреть, например, утилитой psloggedon.exe от Sysinternals (из состава PsTools, скачивается с сайта Microsoft):

    psloggedon \\имя_компьютера -l


    Слава России!

    27 апреля 2018 г. 7:37
  • Некоторую информацию можно получить из анализа событий Logon/Logged off на контроллерах домена.
    27 апреля 2018 г. 7:48
  • Везде о разлогинивании пишут, будто это совсем тривиальная задача, не требующая объяснения - вот я и подумал, что может есть консоль, о которой я не знаю, как на терминальном сервере или на сервере 1С - оснастка "Пользователи", где можно завершить активные сеансы. В крайнем случае придётся писать батник, где последовательно будет производиться опрос указанной Вами командой
    28 апреля 2018 г. 7:10
  • Получить можно, вот только её сопоставление займёт кучу времени. Полагаю с этим мог бы справиться PowerShell, но мне написание такого командлета не под силу
    28 апреля 2018 г. 7:14
  • А не хотите сделать это на организационном уровне? Пишите письмо на всю компанию, или только тем, кого собираетесь мигрировать в настоящий момент, что через, условно, 30 минут будет производиться миграция и пользователям нужно сохранить все документы, зыкрывыть приложение и выйти из системы. В копию начальство, и его ответ: согласовано, выполнять.
    28 апреля 2018 г. 7:44
    Модератор
  • Письмо, безусловно, будет разослано (вместе с инструкцией по разлогиниванию), но наверняка найдутся пользователи, которые не вышли из системы по различным причинам - забыл, неправильно понял и т.д.. В этом случае терять время и разгребать последствия неудачной миграции придётся всё равно мне. Проще перед миграцией, в случае выявления активного сеанса, просто позвонить и попросить разлогиниться, в крайнем случае самому подключиться и вывести пользователя из системы - а вот непосредственно для выяснения методологии выявления активных сеансов пользователей и создана эта тема

    28 апреля 2018 г. 11:12
  • тогда такой вариант (powershell):

    $owners = @{}
    get-process -ComputerName ИМЯ.КОМПЬЮТЕРА | select processname,Id,@{l="Owner";e={$owners[$_.id.tostring()]}} | sort "owner"

    это выведет все процессы на удалённом компьютере. Если пользователь будет залогинен - он будет в списке. Пример:

    ProcessName              Id Owner
    -----------              -- -----
    System                    4
    Idle                      0
    ipoint                 3556 Admin
    igfxEM                 4620 Admin
    itype                  3548 Admin
    jucheck                3628 Admin
    jusched                6660 Admin
    SystemSettings         9204 Admin
    svchost                3420 Admin
    chrome                 4452 Admin
    chrome                 2968 Admin
    chrome                11996 Admin
    dllhost               11008 Admin
    firefox                6752 Admin
    firefox                5124 Admin
    explorer               4056 Admin
    firefox                 268 Admin
    conhost               11296 Admin
    AnVir                 11196 Admin
    ctfmon                 4168 Admin
    RuntimeBroker          7408 Admin
    svchost                3784 LOCAL SERVICE
    svchost                4988 LOCAL SERVICE
    svchost                6980 LOCAL SERVICE
    svchost               11020 LOCAL SERVICE
    svchost               10680 LOCAL SERVICE
    dasHost                5508 LOCAL SERVICE
    svchost               10720 LOCAL SERVICE
    svchost                2120 NETWORK SERVICE
    svchost                4388 NETWORK SERVICE
    svchost                3792 NETWORK SERVICE

    или ещё проще cmd:

    query user /server:ИМЯ.КОМПЬЮТЕР

    и вывод:

     USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
     admin                 console             1  Active      none   28.04.2018 09:49
    вообщем, в гугле полно примеров ;)
    28 апреля 2018 г. 11:46
    Модератор