Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.

Ответить
Настройки темы
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго дня.
Такая задача:
Есть машины в домене, есть bat файл с определённым набором команд, запускаемый от имени пользователя с правами администратора, необходимо определить имя пользователя от которого выполнен вход на машину, для того что бы попасть в его профиль на данной машине и, возможно, выполнить некоторые действия от имени этого пользователя.
Фактически задача сводится к тому что нужно поместить имя залогиневшегося пользователя в переменную, при условии что скрипт запущен от другого пользователя.
Мне на ум приходит только определить пользователя от которого запущен процесс explorer.exe, но как это реализовать, ума не приложу.

Отправлено: 07:45, 27-12-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


freegod, попробуйте передавать пакетному файлу имя пользователя посредством:
Код: Выделить весь код
SomeBatch.cmd "%UserDomain%\%UserName%"
а в самом пакетном файле просто обрабатывайте переданный параметр. Не?

Цитата freegod:
необходимо определить имя пользователя от которого выполнен вход на машину, »
Строго говоря, таких пользователей может быть и несколько.

Отправлено: 17:02, 27-12-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, К сожалению, так я получу имя пользователя от которого запущен пакетный файл, а мне нужно получить имя пользователя от которого запущен рабочий стол.
Объясняю ситуацию:
Есть более 1000 машин в домене, на которые я, в связи со своими служебными обязанностями, подключаюсь и выполняю некоторый пакетный файл от своей учётной записи, с помощью скрипта, помимо действий выполняющихся только от имени администратора, мне необходимо попадать в папку пользователя работающего за этим ПК что бы выполнить определённый набор действий с файлами. Каждый раз задавать имя пользователя в ручную очень не удобно, поэтому хотелось бы получить имя пользователя который физически выполнил вход на машину.

Отправлено: 07:23, 28-12-2018 | #3


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
wmic path win32_computersystem get username | find "\"
quser /?
qwinsta /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:44, 28-12-2018 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Kazun:
wmic path win32_computersystem get username | find "\" »
Покажет последнего зарегистрировавшегося пользователя. А вот остальное вполне годится, там есть на что ориентироваться (console и т.п.).


Цитата freegod:
подключаюсь и выполняю »
Как именно?
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:28, 28-12-2018 | #5


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
подключаюсь и выполняю » »
С помощью Radmin.
Да, quser и qwinsta подходят.
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную?

Отправлено: 15:23, 29-12-2018 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата freegod:
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную? »
Например, так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims= " %%i in (`qwinsta.exe^|find.exe /i "console"`) do set sUserName=%%i
if defined sUserName echo [%sUserName%]

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:27, 29-12-2018 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата freegod:
Подскажите как вырезать из ... имя пользователя и поместить в переменную? »
почему именно оттуда, из net user можно тоже и еще надо учесть что имя юзера может иметь пробел
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
 for /f "delims=" %%a in ('net user^|find "%UserName%"') do (
  set "v=%%a"& set s=
  for %%s in (!v:%UserName%^="%UserName%"!) do if not defined s set "s=%%~s"
 )
 echo %s%
endlocal
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:33, 30-12-2018 | #8


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Спасибо, ваш код работает. Это то что мне нужно.
alpap, К сожалению, ваш способ не работает, net user выдаёт только имена локальных пользователей, а не доменных.

Отправлено: 11:52, 15-01-2019 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата freegod:
net user выдаёт только имена локальных пользователей, а не доменных. »
А так (спрашиваю, а не утверждаю, поскольку проверять нынче не на чем):
Код: Выделить весь код
net.exe user /domain
?

Отправлено: 17:12, 15-01-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как в cmd получить из AD имя email или телефон текущего пользователя в системе roman042 Скриптовые языки администрирования Windows 5 11-02-2014 13:16
Разное - [решено] Запуск cmd от имени текущего пользователя McLotos Microsoft Windows 2000/XP 3 25-01-2011 11:25
Как в пхп-скрипте получить имя текущего пользователя? Gamover jr Вебмастеру 2 20-07-2008 19:20
Как получить имя текущего пользователя для использования его в имени файла Denchik Автоматическая установка Windows 2000/XP/2003 1 25-01-2006 22:33
Имя пользователя в окне Logon не меняется после сессии другого пользователя! MonsterMax SPB Microsoft Windows NT/2000/2003 10 22-04-2005 11:43




 
Переход