![]() |
Переменные. Скрипт на разных языковых версиях ОС (en/ru w10pro).
Всем привет!
Необходимо написать скрипт со следующим алгоритмом: 1. Ввести имя машины 2. Проверить, что машина доступна по сети(т.е. отвечает на эхо-запросы команды ping) 3. Если да - проверить, кто из пользователей на ней залогинен на текущий момент и активен. Вытащить номер сессии пользователя в переменную. 4. Присоединиться к его оболочке/экрану/теневому сеансу(не знаю, как тут правильно назвать) средствами удалённого рабочего стола Windows на основании переменной из п.3. Типа Radmin. У меня пока только вопрос по п.3 - команду по вытаскиванию всех сессий я нашёл: Код:
PS C:\Users\administrator> $rdpsession = qwinsta /server:ivanovis | ForEach-Object { $_.Trim() -replace "\s+", "," } | ConvertFrom-Csv Код:
Результат вывода на русскоязычной версии ОС: Код:
Результат вывода на англоязычной версии ОС: $rdpsession.Сеанс Если необходимо сделать тоже самое в en-версии, то я ввожу команду: $rdpsession.SESSIONNAME Вопросы: 1. Необходимо писать несколько проверок на язык ОС и затем запускать соответствующую часть скрипта под нужный язык? 2. Или у этих параметров есть какие-то универсальные обозначения? |
Код:
if ($rdpsession.Сеанс) {$rdpsession.Сеанс} |
Цитата:
(Get-WmiObject -computername $CompRemote -query "Select logonid from Win32_LogonSession where logontype = 2").LogonId |
Цитата:
RDP работает с сеансами, вклиниться в сеанс пользователя не являясь этим пользователем невозможно (средствами RDP). А чтобы являться этим пользователем нужно залогиниться от его имени (т.е. логин+пароль). Логин можно понюхать из списка существующих сеансов, а вот пароль - нет. Тот теневой сеанс (или как там он правильно называется) о котором ты наверное думаешь и в который можно вклиниться являясь администратором - это фишка терминальных сеансов, которые работают исключительно на серверных виндах. Это ставит под сомнение всю идею скрипта и вообще рабочего процесса, который ты пытаешься внедрить с его помощью. |
Цитата:
С другого ПК, где залогинен этот пользователь запускается консоль и в ней вводится команда: PS> qwinsta /server:ivanovis Получаю вывод сессий, среди которых вижу ID пользователя, который работает за этим ПК. Затем пишу команду: PS> mstsc /shadow:3 /v:ivanovis /control /noConsentPrompt Загружается удалённый сеанс, где я вижу, что делает пользователь+я могу управлять курсором и передавать нажатия клавиш. Вот статья на эту тему. |
Цитата:
Как нынче с этим делом под новыми ОС — не знаю. |
Хм, был неправ, действительно подключиться к десктопным ОС можно, хотя и статьи говорят об обратном и везде речь идёт именно о серверах.
|
Charg, я сам поначалу был в шоке. когда увидел, что таковое возможно, и опробовал.
|
DJ Mogarych, Ageron, Charg, Iska, наконец-то освободилось время и написал скрипт уровня начинающий. Может, вам или вашим коллегам пригодится вдруг.
Удалённое подключение средствами ОС к работающему сеансу пользователя для удалённого решения его проблем
Код:
Import-Module ActiveDirectory |
Время: 17:16. |
Время: 17:16.
© OSzone.net 2001-