2

Как предоставить учетной записи локального пользователя разрешение на добавление других локальных пользователей в Windows 7 Professional? Важным моментом является то, что локальный пользователь, который должен иметь возможность создавать новые учетные записи, не должен иметь прав администратора.

Я не нашел локальную групповую политику для предоставления разрешения на создание пользователей для определенной учетной записи. Поэтому я попытался создать пользователей с помощью PowerShell-Script:

$user = Read-Host "Please enter username"

$objOu = [ADSI]"WinNT://$env:computername"
$objUser = $objOu.Create("User", $user)
$objUser.setPassword("DefaultS3cr3t")
$objUser.setInfo()
$objUser.description = "Simple User"
$objUser.passwordExpired = 1
$objUser.setInfo()

$group = [ADSI]"WinNT://$env:computername/Users,group"
$group.Add("WinNT://$user,user")

Когда я запускаю этот скрипт с правами администратора, он работает как положено.

Чтобы дать обычному пользователю разрешение на выполнение этого сценария без утечки пароля администратора, я попытался использовать "агент условного депонирования", как описано здесь:http://powershell.com/cs/blogs/tobias/archive/2010/10/28/regular-users-running-admin-scripts-safe.aspx

Проблема в том, что задача выполняется в фоновом режиме (потому что она выполняется как пользователь, который не вошел в систему), поэтому имя пользователя не может быть введено.

Использование "SecureString" для сохранения пароля не вариант, потому что пароль администратора может быть извлечен для обычного пользователя.

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

2 ответа2

1

Чтобы добавить локальные учетные записи, используемая учетная запись должна иметь права администратора на этом локальном компьютере. Так что, к сожалению, его нельзя делегировать обычной (или даже PowerUser) учетной записи. Даже если вы используете Active Directory, вам все равно придется предоставить объекту права локального администратора.

0

Я пришел к результату, что использование двухэтапного скрипта PowerShell решает мою проблему. Я написал служебный скрипт, который запускается планировщиком задач Windows с полными административными привилегиями, как описано в этой ссылке:http://powershell.com/cs/blogs/tobias/archive/2010/10/28/regular-users- беговые администратора-скрипты-safe.aspx

Затем задача службы открывает именованный канал и прослушивает клиентское соединение. Канал защищен его ACL, так что его могут читать / записывать только создавший пользователь и учетная запись локального пользователя, которая должна иметь возможность создавать локальных пользователей. Я разработал простой протокол с открытым текстом для перечисления и добавления пользователей. Сценарий службы выполняет работу по добавлению пользователей, а веб-интерфейс предназначен только для перечисления пользователей и вызова команды "добавить".

Оба сценария дополнительно защищены ограничительными разрешениями файловой системы для предотвращения изменений.

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