Показать полную графическую версию : [решено] Работа с Разрешеними в реестре через VBS
Мне нужно Добавить Админа в разрешение безопасности полный доступ для ветки, пример HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
через скрипт VBS
Так чта бы скрипт ставил полный доступ,если там стоит только чтение и добавлял админа на полный доступ если его нет в разрешениях
Для начала — озвучьте, под какой ОС будет.
В Windows XP такого функционала нет,появился начиная с Vista и выше.Так что можно воспользоваться утилитой setacl - http://helgeklein.com/
CMD/BAT - [решено] Как настроить разрешения в реестре через BAT под NTFS? (http://forum.oszone.net/showthread.php?t=217698)
VBS/WSH/JS - [решено] Разрешения для реестра и файла (http://forum.oszone.net/showthread.php?t=228528)
Первая из них — Ваша. Ежели б Вы прочитали приведённую там ссылку по SetACL, то увидели бы, что с ней можно работать не только из командной строки, но и посредством Automation: COM Version (SetACL.ocx) – Syntax and Description | Helge Klein | Home of SetACL (http://helgeklein.com/setacl/documentation/com-version-setacl-ocx/).
P.S. Вообще-то, под Windows XP, по умолчанию у Администратора есть опосредованные (через группу) права на раздел «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer» — наследуются от раздела «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies». Вы с последствиями воздействия вируса хотите бороться?
Ну да Хотелось бы написать скрипты восстанавливающие ветки реестра
Не пробовали в данном случае воспользоваться имеющейся функциональностью AVZ — Восстановление системы (http://www.z-oleg.com/secur/avz_doc/system_restore.htm):
6.Удаление всех Policies (ограничений) текущего пользователя
Windows предусматривает механизм ограничений действий пользователя, называемый Policies. Этой технологией пользуются многие вредоносные программы, поскольку настройки хранятся в реестре и их несложно создавать или модифицировать.
Показания к применению: Заблокированы функции проводника или иные функции системы.
? Как поведёт себя в данном случае AVZ?
на CMD я могу сделать через - subinacl.exe
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR /grant=Администратор=F
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Enum\USBSTOR /grant=Администратор=F
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002\Enum\USBSTOR /grant=Администратор=F
-------------------
Но как мне это реализовать на VBS ? через subinacl.exe
Что я хочу сделать!
1.скрипт VBS при возможности перегоню его в exe, его функция при запуске добавить Админа на все права к определенным веткам, что бы возможно было их править
2.почему vbs а не cmd bat.часто командная строка заблокирована (умел бы писать написал бы сам что нибудь)
3.скрипт несет с собой файл inf.который считывается автоматически и заносит свои изменения.почему считывание идет автоматически,потому что бывает заблокировано контекстное меню.
4.Скрипт делает все сам и правит ветки реестра не вовлекая в это пользователя.
5.Полное или частичное восстановление данных реестра, полная разблокировка таких программ как WinLock,многие забывает пароль от нее или пользуются там где она стоит,что приводит к проблемам,ну и восстановление от WinLokerow и вирусов.
Как идея?
Давно Хотел сделать программу которая следит только за ветвями реестра на наличие записи в них и выдавала бы Сообщение разрешить записать или отмена записи,что бы висела в задачах,но Т К я не Программист это все завалилось
А почему скрипт взял с правами тк некоторые вирусы и программы меняют доступ к веткам реестра и что не даст скрипты изменить данные... Осталось только это...Все остальное осуществил
Но как мне это реализовать на VBS ? »
COM Version (SetACL.ocx) – Syntax and Description | Helge Klein | Home of SetACL (http://helgeklein.com/setacl/documentation/com-version-setacl-ocx/) — загрузить, установить, зарегистрировать библиотеку и пользоваться. Либо использовать те же «SetACL.exe»/«subinacl.exe», вызывая их из-под WSH и передавая им потребные параметры.
Я всегда говорю в подобных случаях — «Используйте AVZ и его скрипты».
Пропиши если не проблема скрипт запуска subinacl.exe и установку прав доступа через него же
Написать-то я — напишу… А вот Вы чем тогда будете заниматься ;)?!
ну а я дальше все сам сделаю мне только это осталось :D кто на что горазд :yes: я программирование не знаю)) поэтому прошу помощи сторонних людей ВЫ поможете мне,а возможно то что сделаю я,поможет кому то другому
КРУГОВОРОТ
И какое отношение сие имеет к данной теме?
Подскажите в чем ошибка?! не работает скрипт
Option Explicit
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Run("""subinacl"" /keyreg HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon /revoke=%username%")
Set wsh = Nothing
-------
не передаются параметры
O L E G, не пренебрегайте оформлением приводимого кода тэгом code (http://forum.oszone.net/misc.php?do=bbcode#code).
не передаются параметры »
Передаются. Это Вы забыли обрамить параметр с пробелами кавычками.
wsh.Run("""subinacl"" /keyreg ""HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"" /revoke=%username%")
И, достаточно ли будет именно «/keyreg»?!
на некоторые ветки /keyreg, ну а если что , есть и /subkeyreg, дальше по обстоятельствам. Спасибо)
Iska, Извини пожалуйста не по теме, потом удалю
Как сделать что бы меню программы не закрывалось, после выбора действия
Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
UserName = InputBox("Выбор действий" & Chr(10) & Chr(13) _
& " 1. Снять аттрибуты" & Chr(10) & Chr(13) _
& " 2. ---" & Chr(10) & Chr(13) _
& " 3. ---" & Chr(10) & Chr(13) _
& " 4. ---" & Chr(10) & Chr(13) _
& " 5. ---" & Chr(10) & Chr(13) _
& " 6. ---" & Chr(10) & Chr(13) _
& " 7. ---" & Chr(10) & Chr(13) _
& " 8. ---" & Chr(10) & Chr(13) _
& " 9. ---" & Chr(10) & Chr(13) _
& " 10. ---" & Chr(10) & Chr(13) _
)
Select Case UserName
Case 1
WshShell.Run("""subinacl"" /keyreg ""HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"" /revoke=%username%")
Case 2
WshShell.Run "---"
Case 3
WshShell.Run "---"
case 4
WshShell.Run "---"
End Select
Do
UserName = InputBox(…
…
& " 11. Exit")
Loop Until UserName = 11
Или:
Do
UserName = InputBox(…
…
& " 11. Exit")
Select Case UserName
…
Case 11
Exit Do
End Select
Loop
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.