Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Автоматическое определение sid текущего пользователя, и добавление записи в реестр (http://forum.oszone.net/showthread.php?t=318612)

dark-------13 09-09-2016 13:10 2667012

Автоматическое определение sid текущего пользователя, и добавление записи в реестр
 
Привет народ,

Есть bat файл для определение sid текущего пользователя, и добавление записи в реестр:

Код:

@echo off
SetLocal
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
    For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" REG ADD HKEY_USERS\%%~nA\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f
)

Но есть проблема в том , если в папке с данным бат файлом лежат др. bat файлы или reg файлы, то данные вносятся в реестр левые т.е. 0x00000001 , а должно быть 0x00000000, в чем проблема понять не могу. Когда в папке лежит один данный bat файл данные вносятся в реестр верно (0x00000000).
С какого перепуга данный скрипт запускает рядом лежащие bat файлы , reg файлы ? - У меня по крайней мере такое впечатление складывается. Помогите исправить проблему. Данный bat должен определить sid текущего пользователя и добавить данные в реестр - как раз этому пользователю, и не запускать рядом лежащие bat файлы или др. файлы.
Кстати есть еще вопрос зачем иногда добавляют после
Код:

/f
значение
Код:

1>nul 2>&1
?

Iska 09-09-2016 15:41 2667052

dark-------13, каковы названия этих «других бат файлов»? Покажите Вашу ситуацию на реальном примере — упакуйте содержимое каталога с данным пакетным файлом, совместно с «др. bat файлы или reg файлы» и приложите архив к сообщению.

Цитата:

Цитата dark-------13
Данный bat должен определить sid текущего пользователя и добавить данные в реестр - как раз этому пользователю, »

Почему, вместо всего этого, Вы просто не используете HKCU?

Цитата:

Цитата dark-------13
Кстати есть еще вопрос зачем иногда добавляют… »

Перенаправление станартного потока ошибок в стандартный поток вывода, перенаправление стандартного потока вывода на пустое устройство. Результатом является полное подавление любых сообщений на консоли — как простого вывода, так и сообщений об ошибках. Добавлять можно и до, а не только после.

x0r 09-09-2016 16:16 2667059

Цитата:

Цитата Iska
Почему, вместо всего этого, Вы просто не используете HKCU? »

?
Код:

REG ADD HKCU\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f

Iska 10-09-2016 00:43 2667208

Цитата:

Цитата x0r
? »

Угу.

dark-------13 12-09-2016 11:16 2667818

Названия файлов add.bat содержимое:
Код:

@echo off
for /f %%i in ('wmic path win32_useraccount where localaccount^=true get sid ^| find "-"') do (
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v ExtraPorts /t REG_SZ /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v QueryTimeout /t REG_Dword /d "0x0000001e" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v QueryAcceptOnTimeout /t REG_Dword /d "0x00000003" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v LocalInputPriorityTimeout /t REG_Dword /d "0x00000003" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v LocalInputPriority /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v BlockRemoteInput /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v BlockLocalInput /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v IpAccessControl /t REG_SZ /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v RfbPort /t REG_Dword /d "0x0000007c" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v HttpPort /t REG_Dword /d "0x000016a8" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v DisconnectAction /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v AcceptRfbConnections /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v UseControlAuthentication /t REG_Dword /d "0x000000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v RepeatControlAuthentication /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v LoopbackOnly /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v AcceptHttpConnections /t REG_Dword /d "0x000000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v LogLevel /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v EnableFileTransfers /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v RemoveWallpaper /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v UseMirrorDriver /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v EnableUrlParams /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v AlwaysShared /t REG_Dword /d "0x000000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v NeverShared /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v DisconnectClients /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v PollingInterval /t REG_Dword /d "0x000003e8" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v AllowLoopback /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v VideoRecognitionInterval /t REG_Dword /d "0x00000bb8" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v SaveLogToAllUsersPath /t REG_Dword /d "0x00000000" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v GrabTransparentWindows /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v RunControlInterface /t REG_Dword /d "0x00000001" /f
REG ADD HKEY_Current_User\%%i\software\tightvnc\server /v VideoClasses /t REG_SZ  /d "0x00000000" /f
)

, запускаю add3 а выполняется еще и add, содержимое add3:
Код:

@echo off
SetLocal
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
    For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" REG ADD HKEY_USERS\%%~nA\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f
)

Собственно отрабатывать должен только add3.bat , вообще странно что выполняется и add.bat

Код
Код:

REG ADD HKCU\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f
не использую потому, как в разделе HKCU - для программ доступна только ветка указанная в bat файле.

dark-------13 12-09-2016 11:59 2667841

Еще вопрос:
Как правильно добавить несколько значений в реестр с помощью скрипта ? Так пойдет ? :
Код:

@echo off
SetLocal
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
        For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" REG ADD HKEY_USERS\%%~nA\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f 1>nul 2>&1
        REG ADD HKEY_USERS\%%~nA\software\tightvnc\server /v RemoveWallpaper /t REG_Dword /d "0x00000000" /f 1>nul 2>&1
)

Столкнулся с такой проблемой при написании bat:
Если после выражения
Код:

Do If "%USERNAME%"=="%%~nC"
не дай бог перенести reg add сразу на др строку то скрипт не выполняется.
Если после оператора Do перенести ( на др строку то скрипт тоже не выполняется.
Есть ли какая-нибудь программа, которая автоматически проверяет корректность написания команд bat файлов ,
или может быть есть подробная справка по расположению операторов и знаков препинания ?


Время: 17:22.

Время: 17:22.
© OSzone.net 2001-