Войти

Показать полную графическую версию : Добавить пользователя и права на ветку реестра.


DarckSol
16-02-2018, 15:31
Добрый день, помогите реализовать задачку....:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC

В разделе "Разрешения"/Права доступа, нужно добавить пользователя и дать ему права доступа....

Не смог придумать, как добавить пользователя.....

Serguei Kouzmine
17-02-2018, 17:03
ЕМНИП
https://helgeklein.com/setacl/examples/locking-and-unlocking-the-registry-with-setacl-exe/

и
https://www.microsoft.com/en-us/download/details.aspx?id=23510

Казбек
17-02-2018, 17:33
DarckSol,

На PowerShell:
$acl = Get-Acl HKLM:\SOFTWARE\ODBC
$rule = New-Object System.Security.AccessControl.RegistryAccessRule ("oszone\forum","FullControl","Allow")
$acl.SetAccessRule($rule)
$acl |Set-Acl -Path HKLM:\SOFTWARE\ODBC
oszone\forum - формат ввода имени нужного пользователя. Посмотреть для своего случай можно, выполнив в PS:
Get-WmiObject -Class Win32_UserAccount


Сторонними утилитами, но из командной строки, так:

Managing Registry Permissions with SetACL.exe (https://helgeklein.com/setacl/examples/managing-registry-permissions-with-setacl-exe/#example-1-setting-permissions-on-the-current-users-hive)
REGINI (Windows7/2008 or XP Resource kit) (https://ss64.com/nt/regini.html)

DarckSol
19-02-2018, 09:37
Спасибо за скрипт, но функции PS отключены GPO...... Нужен альтернативный вариант......

Казбек
19-02-2018, 11:25
Нужен альтернативный вариант »

Вам две ссылки предоставлено с альтернативными вариантами после скрипта. Вам религия не позволяет их прочесть, заменить пути и имена на актуальные, подставить необходимые аргументы?? Вот пример:
SetACL.exe -on "hklm\software\ODBC" -ot reg -actn ace
-ace "n:oszone\forum;p:full"

DarckSol
19-02-2018, 12:39
У меня есть сетка, примерно 200 компов, мне нужно на каждом компе добавить разрешения пользователю именно тому, кто за компом работает....

fire33
20-02-2018, 13:13
Сделайте групповую политику

SetACL.exe -on "hklm\software\ODBC" -ot reg -actn ace
-ace "n:oszone\forum;p:full" »

DarckSol
20-02-2018, 15:19
Решил иначе... Малость интерактивного порно....:

User.vbs :


On Error Resume Next
dim User
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
User = objItem.UserName
'*********************************************
'Wscript.Echo "UserName: " & objItem.UserName
'*********************************************

Next

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("Perm.bat "+User)


Param.bat :

@echo off
::----------------------------------------------------------------------------------------------------------------
Set UserName=''
set OpenLog=0
Set LoG_work=D:\LogPermision_.txt
::----------------------------------------------------------------------------------------------------------------
::----------------------------------------------------------------------------------------------------------------
Set Param1=%1
::----------------------------------------------------------------------------------------------------------------
::----------------------------------------------------------------------------------------------------------------
echo.
echo.
Echo Add permissions for USER: %Param1%
echo.
echo.
echo.
echo.
echo.
echo.

if %UserName% == '' ( call :StartWork_autodetect ) else Call :Start_Manual

:StartWork_autodetect
echo.
echo.
echo ****************
Echo MOD Autodetect
echo ****************
echo.
echo.
::----------------------------------------------------------------------------------------------------------------
SetACL.exe -log "%LoG_work%" -on "hklm\software\ODBC" -ot reg -actn ace -ace "n:%Param1%;p:Full
SetACL.exe -log "%LoG_work%" -on "hklm\software\Wow6432Node\ODBC" -ot reg -actn ace -ace "n:%Param1%;p:Full
::----------------------------------------------------------------------------------------------------------------
TimeOut /t 11
::----------------------------------------------------------------------------------------------------------------
if %OpenLog% == 0 ( exit ) else %systemroot%\system32\notepad.exe %LoG_work% && exit
::----------------------------------------------------------------------------------------------------------------

:Start_Manual
echo.
echo.
echo ****************
Echo MOD Manual
echo ****************
echo.
echo.
::----------------------------------------------------------------------------------------------------------------
SetACL.exe -log "%LoG_work%" -on "hklm\software\ODBC" -ot reg -actn ace -ace "n:%UserName%;p:Full
SetACL.exe -log "%LoG_work%" -on "hklm\software\Wow6432Node\ODBC" -ot reg -actn ace -ace "n:%UserName%;p:Full
::----------------------------------------------------------------------------------------------------------------
TimeOut /t 11
::----------------------------------------------------------------------------------------------------------------
if %OpenLog% == 0 ( exit ) else %systemroot%\system32\notepad.exe %LoG_work% && exit
::----------------------------------------------------------------------------------------------------------------


И рядом нужно положить SetACL.exe

-------------------------------------------------------------

Логика....
VBS выдерает авторизованного пользователя на ПК и передает его батнику, который в свою очередь запускает SetACL.exe с нужными параметрами.... Вот как то так.

Я решил свою задачу, можно закрывать темку. Всем спасибо!

Сделайте групповую политику »

Многоуровневый домен, нет прав на работу с GPO.




© OSzone.net 2001-2012