Я предполагаю, что строка пароля содержит как минимум 1 символ, отличный от ASCII, то есть символ, кодовое значение которого больше десятичного числа 127.
Откройте окно командной строки и введите chcp
(команда смены кодовой страницы). В зависимости от региональных и языковых настроек Windows отображается, что активной кодовой страницей является кодовая страница 850 (западная европейская страна) или кодовая страница 437 (страна Северной Америки) или что-то другое.
Пакетный файл, написанный в текстовом редакторе Windows GUI, скорее всего, использует другую кодовую страницу, например Windows-1252 (страны Западной Европы и Северной Америки).
Рекомендуется написать пакетный файл с использованием той же кодовой страницы, которая используется Windows для консоли, или вообще не использовать символы, отличные от ASCII.
Но пароли учетных записей — это нечто особенное. Windows знает, что пароль для учетной записи обычно вводится пользователем в графическом интерфейсе с использованием кодовой страницы графического интерфейса Windows. Поэтому пароль, введенный в окне консоли для учетной записи, автоматически преобразуется из кодовой страницы OEM в кодовую страницу Windows (ANSI) перед шифрованием и сохранением Windows.
Таким образом, пакетный файл должен содержать строку пароля, закодированную в кодовой странице OEM, а не в кодовой странице GUI.
Например, немецкий умляут ä
имеет кодовое значение 228 (шестнадцатеричное значение E4) при использовании Windows-1252, но имеет кодовое значение 132 (шестнадцатеричное число 84) при использовании кодовой страницы OEM 850. Для печати в окне консоли с помощью команды echo немецкое слово ähnlich
необходимо записать в пакетный файл ä
с кодовым значением 132, используя кодовую страницу OEM 850, чтобы это слово правильно отображалось в окне консоли. Необходимо записать в батник символ ä
также с кодовым значением 132, если этот символ используется в пароле, записываемом в батник. Строка пароля автоматически преобразуется из OEM в ANSI с помощью команды net.
person
Mofi
schedule
04.12.2015