2015-11-01 3 views
1

В принципе, CLI cygwin (или, в частности, bash, если это помогает) эквивалент this question. Я хочу запустить cygwin как администратор, но потом каким-то образом получить свое имя, а не имя администратора. (Все переменные среды, такие как $ USER, $ USERNAME и т. Д., Устанавливаются администратором.)Как получить фактического текущего пользователя в Cygwin, когда «запускать как администратор»?

Это может быть любая утилита, которая поставляется с Windows, но она должна поставляться со всеми выпусками, а не только с Pro.

+0

Я предполагаю, что вы не хотите предоставлять административные разрешения своей учетной записи, разрешать их только при необходимости? – Marged

+0

Почему вы не можете использовать ответ на связанный вопрос? Он должен работать так же хорошо и в программе Cygwin, как в Windows. (Если вы имеете в виду, что хотите использовать встроенные инструменты, то, вероятно, не один.) –

+0

@Marged, точно. – Kev

ответ

1
realCurrentUser=$(wmic PATH Win32_Process WHERE "Name='explorer.exe' AND SessionId=1" CALL GetOwner | grep User | sed 's/^\s*User = "//' | sed 's/";$//') 
+1

Обратите внимание, что сначала вам нужно проверить идентификатор сеанса, как описано в Syberdoor, поскольку он не всегда будет 1. –