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

Как я могу убедиться, что текущий пользователь, вошедший в Windows, получает полное разрешение?

Это то, что у меня есть как часть этого командного файла:

icacls "program files directory" /grant %userdomain%\%username%:F

1 ответ1

1

Как получить текущее имя пользователя при входе в систему при запуске командного файла от имени администратора

Он работает нормально, когда текущий пользователь имеет права локального администратора, но для тех, кто не является, я должен ввести пароль администратора домена, чтобы изменения вступили в силу.

В приведенном ниже примере вы просто устанавливаете переменную с переменными среды, как у вас уже есть в логике команд ICACLS, а затем используете эту переменную, чтобы указать учетную запись, чтобы предоставить применимые разрешения, передавая ее в подпрограмму CALL .

@ECHO OFF
SET Identity=%userdomain%\%username%
CALL :ICACLS "%Identity%"
GOTO EOF

:ICACLS
runas /user:MYDOMAIN\USER icacls "program files directory" /grant %~1:F
GOTO EOF

Если у вас есть проблемы

Если вы запускаете cmd.exe с RUNAS и определяете, что %userdomain%\%username% не устанавливают (или не перечисляют) ожидаемые значения, которые необходимо использовать для работы команд ICACLS, как ожидается, выполните команду Ниже приведены команды в cmd.exe, прежде чем использовать функциональность RUNAS для поиска текущих значений учетных данных в домене и имени пользователя, которые затем можно использовать с командами ICACLS для установки разрешений для этого удостоверения \ участника безопасности.

SET Identity=%userdomain%\%username%
ECHO %Identity%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .