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

Различия между несколькими окнами учетных записей runas

На прошлых работах я использовал много runas /user:.. для обеспечения быстрого доступа между несколькими учетными записями при входе в систему в качестве основной учетной записи. Как на стороне сервера, так и на рабочих станциях. Мы рассматриваем ситуации, когда иногда у пользователя может быть несколько копий одного и того же приложения, открытого в разных контекстах с несколькими пользователями.

Таким образом, было бы чрезвычайно полезно иметь какую-то визуальную очередь, чтобы различать запускающего пользователя.

Раньше я всегда просто менял цвета фона подсказки CMD. Здесь он мне нужен для приложений с графическим интерфейсом. Похоже, что изменения цветовой схемы в Windows 7/2008 r2 читаются от текущего пользователя, вошедшего в систему, а не от профиля этого конкретного пользователя. Похоже, это сводит на нет мой первый выбор.

Какие у меня варианты?

Примечание: Я действительно думал о том, чтобы спросить об этом на SU, а не здесь ... Не думал, что будет много случаев, когда люди запускают приложения под полдюжиной разных учетных записей из одного активного сеанса.

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

#Include <Array.au3>
#include <WinAPIEx.au3>
While ( True ) 
    Sleep( 100 )
    Local $PID = 0
    Do
        $handle = WinGetHandle("[ACTIVE]", "") 
        $iPID = WinGetProcess($handle)
    Until $iPID > 0
    Local $aUser = _WinAPI_GetProcessUser($PID)
    $UserName=$aUser[0]
    $title = WinGetTitle ( $handle )
    $result = StringInStr($title, "Owned By")

    If ( $Result == 0 ) Then
        WinSetTitle($handle, "", $title & " - Owned By " & $UserName)
        $title = WinGetTitle ( $handle )
    EndIf  
WEnd