2013-11-30 4 views
0

Я хочу использовать «runas/user: admin_name» cmd.exe ..... »в моем командном скрипте. Мне нужен способ узнать точно имя пользователя администратора, так что его можно использовать в «/ user: admin_name». Если я запустил «администраторы сети локальной группы», я получаю имя администратора, но мне кажется, что я должен его выкопать от нагрузки строк, как показано на выходе ниже. И этот скрипт будет запущен на многих разных машинах, к которым у меня нет доступа. Итак, я не знаю, как будет выглядеть результат работы «сетевых администраторов локальной группы» как на всех машинных конфигурациях.Как я могу получить имя локального администратора без какой-либо двусмысленности на всех машинах Windows с NT или Vista или Win-7 от Win-8 в сети или вне сети?Как получить только имя пользователя администратора, использующего пакетный скрипт в Windows

администраторы Имя Псевдоним Администраторы Комментарий имеют полный и неограниченный доступ к компьютеру/домену

Пользователи


Administrator PETERPAN Команда выполнена успешно.

+0

Там может быть больше, чем одно имя в группу локальных администраторов (где я работаю, у нас есть несколько). Как именно вы хотели бы справиться с этой ситуацией? –

+0

Я хочу, чтобы в этом конкретном случае было одно имя пользователя admin. Мне все равно, кто это. – Kamalakshi

ответ

1
@ECHO OFF 
SETLOCAL 
SET "admins=" 
SET "prev=" 
FOR /f "delims=" %%A IN ('net localgroup administrators') DO (
CALL SET "admins=%%admins%% %%prev%%" 
SET "prev=%%A" 
) 
SET admins=%admins:*- =% 
ECHO admins are "%admins%" 
GOTO :EOF 

Это вы должны получить список администраторов от net localgroup administrators

+0

Большое спасибо. Я немного новичок в пакетных сценариях. Потребовалось время, чтобы понять CALL SET, который, кажется, является расширенной функцией. В будущем это тоже будет полезно. – Kamalakshi