Борьба с пакетным скриптом для редактирования учетных записей локальных пользователей, несколько переменных в игре - PullRequest
0 голосов
/ 08 января 2019

Я хочу изменить пароль локального администратора на более безопасный для всей среды. Проблема в том, что текущее состояние окружающей среды меняется. По большей части стандартная учетная запись администратора включена по всем направлениям со слабым паролем, который я хотел бы обновить. Проблема в том, что в некоторых случаях и по умолчанию учетная запись администратора отключена, и создается новая учетная запись с именем «admin».

Затем, чтобы усложнить ситуацию, есть еще одна локальная учетная запись, которая должна быть обычным пользователем, называемая «пользователь», но я знаю, что в некоторых местах она была назначена администратором, когда не должно быть, а в других местах это не было создано вообще.

С тех пор я стандартизировал и автоматизировал создание этих учетных записей в процессе сборки / развертывания, поэтому все новые компьютеры работают с правильной настройкой:

  • учетная запись локального администратора по умолчанию ". \ Administrator" включена, с безопасным паролем

  • стандартная локальная учетная запись «пользователь» с нормальным надежным паролем

Но чтобы привести остальную часть нашей среды в соответствие с этим, я пытаюсь написать скрипт, который будет делать следующее:

  1. проверьте, включена ли учетная запись локального администратора по умолчанию
  2. если это так, установите новый более безопасный пароль (несколько устройств уже установят его правильно, но это нормально). если нет, включите его
  3. проверьте, существует ли учетная запись с именем «admin»
  4. , если это так, удалите его. если нет, отлично
  5. проверьте, существует ли учетная запись "user"
  6. если он существует, создайте его как обычный пользователь. если он не существует, убедитесь, что он не является локальным администратором

Мне удобно делать большинство этих вещей с помощью сетевых пользовательских команд, но я объединяю их в сценарий с условной логикой, с которой я борюсь. Глядя на петли / F, но не уверены, что это лучший способ сделать это?

Действительно оценил бы точку в правильном направлении. Даже если это всего лишь несколько советов о том, какие команды читать дальше. Спасибо

1 Ответ

0 голосов
/ 09 января 2019

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

@echo off
for /f %i in ('net user') do (
     if /i "%%i"=="user" echo net user %%i /delete
     echo net user user /add SomePassword
     if /i "%%i"=="admin" echo net user %%i /delete
     if /i "%%i"=="administrator" echo net user %%i NewPassword99
)

Возможно, это не все, что вам нужно, но вопрос не по теме, и я просто веду вас в этом направлении.

Цикл for просто присваивает каждому пробелу слово (пробел / символ табуляции / перевод строки) токену %%i. Вместо того, чтобы проверять разрешение пользователя user, просто удалите и заново создайте его независимо. затем проверьте для администратора, удалите его и проверьте пароль администратора. Вы можете добавить, изменить то, что вы хотите оттуда.

После того, как вы довольны результатами, удалите каждый оператор echo в строках в цикле, чтобы выполнить фактическую команду net user, чтобы отобразить на экране, что произойдет, если вы ее запустите, это просто защиты.

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