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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматическое определение sid текущего пользователя, и добавление записи в реестр

Ответить
Настройки темы
CMD/BAT - Автоматическое определение sid текущего пользователя, и добавление записи в реестр

Старожил


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

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


Изменения
Автор: dark-------13
Дата: 09-09-2016
Привет народ,

Есть 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
?

Отправлено: 13:10, 09-09-2016

 

Ветеран


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

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


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

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

Цитата dark-------13:
Кстати есть еще вопрос зачем иногда добавляют… »
Перенаправление станартного потока ошибок в стандартный поток вывода, перенаправление стандартного потока вывода на пустое устройство. Результатом является полное подавление любых сообщений на консоли — как простого вывода, так и сообщений об ошибках. Добавлять можно и до, а не только после.

Отправлено: 15:41, 09-09-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

x0r x0r вне форума

Забанен


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

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


Цитата Iska:
Почему, вместо всего этого, Вы просто не используете HKCU? »
?
Код: Выделить весь код
REG ADD HKCU\software\tightvnc\server /v UseVncAuthentication /t REG_Dword /d "0x00000000" /f

Отправлено: 16:16, 09-09-2016 | #3


Ветеран


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

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


Цитата x0r:
? »
Угу.

Отправлено: 00:43, 10-09-2016 | #4


Старожил


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

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


Названия файлов 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 в 20:36.


Отправлено: 11:16, 12-09-2016 | #5


Старожил


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

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


Еще вопрос:
Как правильно добавить несколько значений в реестр с помощью скрипта ? Так пойдет ? :
Код: Выделить весь код
@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 файлов ,
или может быть есть подробная справка по расположению операторов и знаков препинания ?

Отправлено: 11:59, 12-09-2016 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматическое определение sid текущего пользователя, и добавление записи в реестр

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Определение учетной записи пользователя DarckSol Скриптовые языки администрирования Windows 6 27-07-2016 22:23
[решено] Определение наличия прав в Windows 7 у текущего пользователя TERMINAL AutoIt 7 15-05-2014 19:56
Загрузка - Добавление в реестр до загрузки пользователя. Shpil83 Microsoft Windows 7 3 18-03-2014 12:06
CMD/BAT - [решено] автоматическое определение Id пользователя реестр O L E G Скриптовые языки администрирования Windows 26 14-12-2012 13:18
[решено] автоматическое добавление записи А в DNS в windows 2003 fate29 Microsoft Windows NT/2000/2003 11 01-07-2009 07:08




 
Переход