Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 364
Благодарности: 10

Профиль | Отправить PM | Цитировать


Видел на одном форуме пишут способ

Код: Выделить весь код
@echo off &setlocal

set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"
for /f "delims=" %%i in ('reg query "%RegPath%"^|findstr /ibc:"%RegPath%\S-"') do (
  reg query "%%i" /v "ProfileImagePath"|findstr /iec:"%UserProfile%" >nul &&set "SID=%%~nxi"
)

echo %SID%
pause
И здесь выводиться моя запись. Однако есть проблема, мне нужно определить SID пользователя русской учётной записи. Делаю так

Код: Выделить весь код
@echo off &setlocal

set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList"
for /f "delims=" %%i in ('reg query "%RegPath%"^|findstr /ibc:"%RegPath%\S-"') do (
  reg query "%%i" /v "ProfileImagePath"|findstr /iec:"Вася" >nul &&set "SID=%%~nxi"
)
echo %SID%
pause
И ответ ужасный

Цитата:

C:\Windows\system32>я╗┐@echo off & setlocal
"я╗┐@echo" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Windows\system32>set "RegPath=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows N
T\CurrentVersion\ProfileList"

C:\Windows\system32>for /F "delims=" %i in ('reg query "HKEY_LOCAL_MACHINE\Softw
are\Microsoft\Windows NT\CurrentVersion\ProfileList"|findstr /ibc:"HKEY_LOCAL_MA
CHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-"') do (reg que
ry "%i" /v "ProfileImagePath" | findstr /iec:"╨Ф╨╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && s
et "SID=%~nxi" )

C:\Windows\system32>(reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
\CurrentVersion\ProfileList\S-1-5-18" /v "ProfileImagePath" | findstr /iec:"╨Ф╨
╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && set "SID=S-1-5-18" )

C:\Windows\system32>(reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
\CurrentVersion\ProfileList\S-1-5-19" /v "ProfileImagePath" | findstr /iec:"╨Ф╨
╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && set "SID=S-1-5-19" )

C:\Windows\system32>(reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
\CurrentVersion\ProfileList\S-1-5-20" /v "ProfileImagePath" | findstr /iec:"╨Ф╨
╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && set "SID=S-1-5-20" )

C:\Windows\system32>(reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
\CurrentVersion\ProfileList\S-1-5-21-838063562-3551232986-1455341853-1001" /v "P
rofileImagePath" | findstr /iec:"╨Ф╨╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && set "SID=S-1-5
-21-838063562-3551232986-1455341853-1001" )

C:\Windows\system32>(reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
\CurrentVersion\ProfileList\S-1-5-21-838063562-3551232986-1455341853-1002" /v "P
rofileImagePath" | findstr /iec:"╨Ф╨╕╤Б╨┐╨╡╤В╤З╨╡╤А" 1>nul && set "SID=S-1-5
-21-838063562-3551232986-1455341853-1002" )

C:\Windows\system32>echo
Режим вывода команд на экран (ECHO) включен.

C:\Windows\system32>pause
Для продолжения нажмите любую клавишу . . .
Хотя строка нужной учётной записи S-1-5-21-838063562-3551232986-1455341853-1002 пробегает. Ага, надо её как то вывести.

Теперь bat файл сохраняю не в UFT-8 а в ANCI и вот какой результат

Цитата:
Режим вывода команд на экран (ECHO) отключён.
Ладно, пробую кодировать файл в 866 с помощью Notepad ++. Теперь результат выводиться без ошибок, но вместо учётной записи S-1-5-21-838063562-3551232986-1455341853-1002 почему то определяется S-1-5-21-838063562-3551232986-1455341853-1001. О как. Не верно. И от куда только такая учётка могла взяться.

Хочу уточнить, почему bat файл написанный на разных кодировках имеет разный результат. Ну и собственно как вывести SID пользователя который указан в iec?

Отправлено: 12:02, 21-08-2015 | #2