2015-12-04 2 views
0

Я пытаюсь установить пароль администратора через .bat файл с помощью командыnet user Разница между паролем администратора между запуском в .bat и из cmd?

net user Administrator my_password

если я пишу, что точная строка в командной строке все отлично работает, я могу войти еще раз после того как я вышли из системы или перезапущены. Когда я запускаю .bat-файл, я не могу войти в систему после выхода из системы или перезагрузки. В чем разница и как я могу заставить его работать из .bat-файла или другого скрипта?

EDIT: Я запускаю .bat-файл, просто нажав на него, я вошел в систему как администратор. Команда действительно дает сообщение об успешном завершении, и, очевидно, он меняет пароль, поскольку впоследствии я не могу использовать старый пароль.

+0

Вы используете файл биты из командной строки или с помощью какого-либо другого метода? – CHill60

ответ

1

Я полагаю, что ваш пароль содержит знак процента.

Разница заключается в том, что знаки процента в приглашении cmd сохраняются.
Но в пакетном файле анализатор пытается развернуть переменную с знаком процента, но когда выражение процента недействительно, оно будет удалено.

Если вы хотите использовать пароль в пакетном файле, вам нужно удвоить проценты.

Больше информации о переменном расширении в How does CMD.EXE parse scripts?

1

Я полагаю, что строка пароля содержит, по меньшей мере, 1 Íепродоâоëьстâенного ASCII символ, то есть символ, который имеет кодовое значение больше десятичную 127.

Открыть окно командной строки и введите chcp (команду изменения кодовой страницы). В зависимости от региона Windows и языковых настроек вы увидите, что активная кодовая страница code page 850 (западноевропейская страна) или code page 437 (североамериканская страна) или что-то другое.

Пакетный файл, написанный в текстовом редакторе Windows GUI, использует, скорее всего, другую кодовую страницу, такую ​​как Windows-1252 (страны Западной Европы и Северной Америки).

Желательно написать командный файл с использованием той же кодовой страницы, что и Windows для консоли, или вообще не использовать символы без символов ASCII.

Но пароли учетных записей являются чем-то особенным. Windows знает, что пароль для учетной записи обычно вводится в графический интерфейс, используя пользовательскую кодовую страницу Windows GUI. Поэтому пароль, введенный в консольное окно для учетной записи, автоматически преобразуется с кодовой страницы OEM на кодовую страницу Windows (ANSI) до шифрования и сохранения ее Windows.

Таким образом, командный файл должен содержать строку пароля, закодированную на кодовой странице OEM, вместо кодовой страницы графического интерфейса.

Например немецкий умляут характер ä имеет кодовое значение 228 (шест. E4), используя Windows-1252, но имеет значение кода 132 (шестнадцатеричный 84) с использованием кода OEM страницу 850. Для печати в окне консоли с помощью команды эхо в Немецкое слово ähnlich, необходимо записать в пакетном файле ä с кодом 132, используя код OEM-кода 850 для правильного отображения этого слова в окне консоли. Необходимо написать символ ä также с кодом 132 в пакетный файл, если этот символ используется в пароле, записанном в пакетный файл. Строка пароля автоматически преобразуется из OEM в ANSI командой net.

 Смежные вопросы

  • Нет связанных вопросов^_^