Я полагаю, что строка пароля содержит, по меньшей мере, 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.
Вы используете файл биты из командной строки или с помощью какого-либо другого метода? – CHill60