https://serverfault.com/questions/331046/change-permissions-on-registry-key-via-command-line
https://youtu.be/ptUK6wQmvGk 설명 24년에 공개
$acl = Get-Acl HKLM:\SOFTWARE\stuff
$rule = New-Object System.Security.AccessControl.RegistryAccessRule(
"GUEST", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$acl.SetAccessRule($rule)
$acl |Set-Acl -Path HKLM:\SOFTWARE\stuff
휴 겨우 했다 이때 중요한것이.. 등록할 사용자가 꼭 있어야 에러가 안난다.
만약 등록 하는 사용자가 없다면
"1"개의 인수가 있는 "SetAccessRule"을(를) 호출하는 동안 예외가 발생했습니다. "ID 참조의 일부 또는 전부를 변환할 수 없습
니다."
위치 줄:1 문자:1
+ $acl.SetAccessRule($rule)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : IdentityNotMappedException
이런 에러가 필수적으로 발생 한다.
당연히 HKLM:\SOFTWARE\stuff 란 경로도 미리 있어야 한다
두놈 하려면 이렇게 해야 한다 ㅋㅋ.. GUEST,GUESTS 이렇게 하면 좋은데 에러남
REM 최종 성공작 ANONYMOUS LOGON 익명을 의미한다
REM 최종 목적지
setx /m __PSLockDownPolicy 0
REM 창을 닫고 다시 켜야 한다
$acl = Get-Acl "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
$rule1 = New-Object System.Security.AccessControl.RegistryAccessRule(
"ANONYMOUS LOGON", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule2 = New-Object System.Security.AccessControl.RegistryAccessRule(
"GUEST", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule3 = New-Object System.Security.AccessControl.RegistryAccessRule(
"IIS_IUSRS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule4 = New-Object System.Security.AccessControl.RegistryAccessRule(
"REMOTE INTERACTIVE LOGON", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule5 = New-Object System.Security.AccessControl.RegistryAccessRule(
"Remote Management Users", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule6 = New-Object System.Security.AccessControl.RegistryAccessRule(
"GUESTS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$acl.SetAccessRule($rule1)
$acl.SetAccessRule($rule2)
$acl.SetAccessRule($rule3)
$acl.SetAccessRule($rule4)
$acl.SetAccessRule($rule5)
$acl.SetAccessRule($rule6)
$acl | Set-Acl -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
REM 다 완료 하면 다시 보안 등급 올려주기
setx /m __PSLockDownPolicy 4
응용 15.txt는
$acl = Get-Acl "HKCU:\Software\Microsoft\IdentityCRL"
경로 여기도 은근히 지저분 하다. 이상한 애들 접근 시도 많음.
# 아래와 같이 경로를 Registry:: 사용해서 변경 해도 잘 된다 단.. 위를 했다면 아래에도 동일 하게 해주어야 한다
인붓 아웃 모두. 흔한 실수로 인풋만 해주는 경우도 종종 있다.
$acl = Get-Acl "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
$rule1 = New-Object System.Security.AccessControl.RegistryAccessRule(
"ANONYMOUS LOGON", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule2 = New-Object System.Security.AccessControl.RegistryAccessRule(
"GUEST", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule3 = New-Object System.Security.AccessControl.RegistryAccessRule(
"IIS_IUSRS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule4 = New-Object System.Security.AccessControl.RegistryAccessRule(
"REMOTE INTERACTIVE LOGON", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule5 = New-Object System.Security.AccessControl.RegistryAccessRule(
"Remote Management Users", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$rule6 = New-Object System.Security.AccessControl.RegistryAccessRule(
"GUESTS", "FullControl", "ContainerInherit,ObjectInherit", "None", "Deny")
$acl.SetAccessRule($rule1)
$acl.SetAccessRule($rule2)
$acl.SetAccessRule($rule3)
$acl.SetAccessRule($rule4)
$acl.SetAccessRule($rule5)
$acl.SetAccessRule($rule6)
$acl | Set-Acl -Path "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
첫댓글 https://cafe.daum.net/candan/GGFN/397 망가진 건 무지성으로 이 방법으로 고쳐야 한다 ㅠ 이놈의 AI 시키
https://cafe.daum.net/candan/BLQD/96 기타 한방에 권한 주기
https://www.winhelponline.com/blog/take-ownership-registry-key-permissions-command-line-acl/ 한대 문제는 나는 이 명령어가 없다 SetACL