Запустите скрипт от имени администратора, но покажите информацию о текущем вошедшем в систему пользователе.

1

Я обычно запускаю сценарии в качестве администратора в домене, который требует времени, чтобы закончить то, что они делают. например Удалите версию Office и установите другую.

Эти сценарии (в основном powershell и bat), как я упоминал ранее, запускаются с правами администратора в другом пользовательском сеансе, чем пользователь, вошедший в систему.

Есть ли способ показать информацию через этот скрипт пользователю, который в данный момент вошел в систему?

В любой форме или форме, которая не слишком отвлекает, например, Я бы предпочел окно сообщения, всплывающее окно и т. Д.

Их полномочия мне неизвестны.

Msg.exe хотя и передает информацию, я искал что-то более интерактивное, если это возможно.

Sonamor
источник
1
RunAs выводит пользователю, который запустил приложение / скрипт, используя его (руками или любым автобатом) независимо от пользователя, использованного в его параметрах ...
Akina
Что вы пытаетесь достичь? Оповестить пользователя, что скрипт запущен? Если вы не скрываете консольное окно этого скрипта, эта консоль будет отображаться независимо.
postanote
если скрипт выполняется под UserA, то UserB ничего не увидит.
Sonamor
@ Sonamor Как вы запустили этот скрипт? Можете ли вы предоставить нам некоторый код из этого?
Hackoo
Код разворачивается через QUEST KACE SMA (ранее DELL), но это может быть просто сценарий входа или объект групповой политики. Код на самом деле не имеет значения, это может быть просто окно сообщения, где я могу прочитать вывод.
Sonamor

Ответы:

1

Это хорошее приложение для msg полезность. Чтобы выскочить сообщение с надписью "Я сделал вещь!" в текущем интерактивном сеансе используйте эту команду:

msg console I did the thing!

Вы также можете сделать окно сообщения автоматически исчезать через указанное количество секунд, используя /time переключатель. Например, это сообщение будет отображаться только в течение десяти секунд:

msg console /time:10 This message will self-destruct in 10 seconds.
Ben N
источник
Привет, Бен, я должен был добавить это в свой первоначальный вопрос, но я уже знал о файле msg.exe. Я искал что-то более интерактивное, например индикатор выполнения или окно сообщения, в котором можно было бы получить нажатие кнопки.
Sonamor
@ Sonamor Ах, это действительно немного другой вопрос. Если вы просто хотите подождать, пока пользователь не подтвердит окно сообщения, вы можете указать /w переключиться на msg, Кроме того, вам, вероятно, понадобится настроить механизм передачи данных на основе файлов psexec запустить пользовательскую программу / скрипт.
Ben N
Я думал, что это будет так, поскольку я сделал обширное исследование, прежде чем приехать сюда. Я не знал о переключателе / ​​w, хотя, спасибо.
Sonamor
0

Вы можете использовать эту функцию для физического входа пользователя в консоль. У меня есть несколько приложений, где это необходимо.

Function CurrentUser{
#CurrentUser function converts the username object string "@{username=domain\user}" 
#         to the exact logon string "user" like the example below
#@{username=DOMAIN\USER}
#@{username DOMAIN\USER}
#DOMAIN\USER}
#DOMAIN\USER
#DOMAIN USER
#USER
$loggedInUserName = get-wmiobject win32_computersystem | select username
$loggedInUserName = [string]$loggedInUserName
$loggedinUsername = $loggedInUserName.Split("=")
$loggedInUserName = $loggedInUserName[1]
$loggedInUserName = $loggedInUserName.Split("}")
$loggedInUserName = $loggedInUserName[0]
$loggedInUserName = $loggedInUserName.Split("\")
$loggedInUserName = $loggedInUserName[1]
Return $loggedInUserName
}

Ссылка: введите описание ссылки здесь

discorallado
источник
ОК? Это даст вам зарегистрированного пользователя в системе, а не вашей учетной записи администратора, вы не можете по-настоящему взаимодействовать с ним или отправить сообщение, не так ли? Кстати, вы можете использовать этот oneliner для указанного выше $ (Get-WMIObject -class Win32_ComputerSystem | Select-Object username) .username
Sonamor
1
Я не уверен на 100%, учитывая ваш вариант использования.
discorallado
Или даже короче - (Get-WMIObject -class Win32_ComputerSystem). Имя пользователя --- или --- (Get-WMIObject Win32_ComputerSystem). Имя пользователя --- или --- (gwmi $ Win32_ComputerSystem). Что касается взаимодействия с ним, кроме отклонения его, нет.
postanote