CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
-
freegod
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Доброго дня.
Такая задача:
Есть машины в домене, есть bat файл с определённым набором команд, запускаемый от имени пользователя с правами администратора, необходимо определить имя пользователя от которого выполнен вход на машину, для того что бы попасть в его профиль на данной машине и, возможно, выполнить некоторые действия от имени этого пользователя.
Фактически задача сводится к тому что нужно поместить имя залогиневшегося пользователя в переменную, при условии что скрипт запущен от другого пользователя.
Мне на ум приходит только определить пользователя от которого запущен процесс explorer.exe, но как это реализовать, ума не приложу.
Такая задача:
Есть машины в домене, есть bat файл с определённым набором команд, запускаемый от имени пользователя с правами администратора, необходимо определить имя пользователя от которого выполнен вход на машину, для того что бы попасть в его профиль на данной машине и, возможно, выполнить некоторые действия от имени этого пользователя.
Фактически задача сводится к тому что нужно поместить имя залогиневшегося пользователя в переменную, при условии что скрипт запущен от другого пользователя.
Мне на ум приходит только определить пользователя от которого запущен процесс explorer.exe, но как это реализовать, ума не приложу.
-
Iska
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
freegod, попробуйте передавать пакетному файлу имя пользователя посредством:
Код:
а в самом пакетном файле просто обрабатывайте переданный параметр. Не?
Цитата freegod:
необходимо определить имя пользователя от которого выполнен вход на машину,
Строго говоря, таких пользователей может быть и несколько.
Код:
Код: Выделить всё
SomeBatch.cmd "%UserDomain%\%UserName%"а в самом пакетном файле просто обрабатывайте переданный параметр. Не?
Цитата freegod:
необходимо определить имя пользователя от которого выполнен вход на машину,
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Строго говоря, таких пользователей может быть и несколько.
-
freegod
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Iska, К сожалению, так я получу имя пользователя от которого запущен пакетный файл, а мне нужно получить имя пользователя от которого запущен рабочий стол.
Объясняю ситуацию:
Есть более 1000 машин в домене, на которые я, в связи со своими служебными обязанностями, подключаюсь и выполняю некоторый пакетный файл от своей учётной записи, с помощью скрипта, помимо действий выполняющихся только от имени администратора, мне необходимо попадать в папку пользователя работающего за этим ПК что бы выполнить определённый набор действий с файлами. Каждый раз задавать имя пользователя в ручную очень не удобно, поэтому хотелось бы получить имя пользователя который физически выполнил вход на машину.
Объясняю ситуацию:
Есть более 1000 машин в домене, на которые я, в связи со своими служебными обязанностями, подключаюсь и выполняю некоторый пакетный файл от своей учётной записи, с помощью скрипта, помимо действий выполняющихся только от имени администратора, мне необходимо попадать в папку пользователя работающего за этим ПК что бы выполнить определённый набор действий с файлами. Каждый раз задавать имя пользователя в ручную очень не удобно, поэтому хотелось бы получить имя пользователя который физически выполнил вход на машину.
-
freegod
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Iska, К сожалению, так я получу имя пользователя от которого запущен пакетный файл, а мне нужно получить имя пользователя от которого запущен рабочий стол.
Объясняю ситуацию:
Есть более 1000 машин в домене, на которые я, в связи со своими служебными обязанностями, подключаюсь и выполняю некоторый пакетный файл от своей учётной записи, с помощью скрипта, помимо действий выполняющихся только от имени администратора, мне необходимо попадать в папку пользователя работающего за этим ПК что бы выполнить определённый набор действий с файлами. Каждый раз задавать имя пользователя в ручную очень не удобно, поэтому хотелось бы получить имя пользователя который физически выполнил вход на машину.
Объясняю ситуацию:
Есть более 1000 машин в домене, на которые я, в связи со своими служебными обязанностями, подключаюсь и выполняю некоторый пакетный файл от своей учётной записи, с помощью скрипта, помимо действий выполняющихся только от имени администратора, мне необходимо попадать в папку пользователя работающего за этим ПК что бы выполнить определённый набор действий с файлами. Каждый раз задавать имя пользователя в ручную очень не удобно, поэтому хотелось бы получить имя пользователя который физически выполнил вход на машину.
-
Kazun
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Цитата Kazun:
wmic path win32_computersystem get username | find "\"
Покажет последнего зарегистрировавшегося пользователя. А вот остальное вполне годится, там есть на что ориентироваться (console и т.п.).
Цитата freegod:
подключаюсь и выполняю
Как именно?
wmic path win32_computersystem get username | find "\"
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Покажет последнего зарегистрировавшегося пользователя. А вот остальное вполне годится, там есть на что ориентироваться (console и т.п.).
Цитата freegod:
подключаюсь и выполняю
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Как именно?
-
Iska
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Цитата Iska:
подключаюсь и выполняю »
С помощью Radmin.
Да, quser и qwinsta подходят.
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную?
подключаюсь и выполняю »
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
С помощью Radmin.
Да, quser и qwinsta подходят.
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную?
-
freegod
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Цитата freegod:
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную?
Например, так:
Код:
Подскажите как вырезать из выхлопа qwinsta | find "console" имя пользователя и поместить в переменную?
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Например, так:
Код:
Код: Выделить всё
@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-
Iska
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Цитата freegod:
Подскажите как вырезать из ... имя пользователя и поместить в переменную?
почему именно оттуда, из net user можно тоже и еще надо учесть что имя юзера может иметь пробел
Код:
Подскажите как вырезать из ... имя пользователя и поместить в переменную?
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
почему именно оттуда, из 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-
alpap
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Iska, Спасибо, ваш код работает. Это то что мне нужно.
alpap, К сожалению, ваш способ не работает, net user выдаёт только имена локальных пользователей, а не доменных.
alpap, К сожалению, ваш способ не работает, net user выдаёт только имена локальных пользователей, а не доменных.
-
freegod
Re: CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
Цитата freegod:
net user выдаёт только имена локальных пользователей, а не доменных.
А так (спрашиваю, а не утверждаю, поскольку проверять нынче не на чем):
Код:
?
net user выдаёт только имена локальных пользователей, а не доменных.
CMD/BAT - [решено] Получить имя текущего пользователя, запуская cmd от другого пользователя.
А так (спрашиваю, а не утверждаю, поскольку проверять нынче не на чем):
Код:
Код: Выделить всё
net.exe user /domain?