Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
부모글 보이기/감추기

1.
당연한 현상입니다.
Standard User에서 Admin 권한으로 프로세스를 실행했다고 하셨는데요. "Admin 권한"뿐만 아니라, 그것은 "Admin 계정"으로 실행된 것입니다.
따라서 서로 간의 HKCurrentUser가 다를 수밖에 없으니 당연히 그러한 결과가 나오는 것입니다.

"a.exe" 프로세스 안에서 현재 시스템에 로그인한 사용자 계정을 구해서, 레지스트리에 기록하는 바로 그 스레드에 대해서 가장(Impersonation)시켜 줘야 합니다.
또는, admin 권한으로 실행되는 "a.exe"에서 레지스트리 기록하는 코드를 "b.exe"로 분리한 다음, 해당 프로세스를 로그인한 사용자 계정으로 실행시켜 주는 것도 방법이겠고요.

2.
현재 프로세스를 실행시킨 계정을 알아내시고, 그 계정이 Administrators 그룹에 속해있는지 판단하시면 됩니다.
또는, 현재 프로세스의 Integrity 레벨을 알아내셔서 "High"에 속해있는지 판단하셔도 되겠습니다.

[추가로 테스트한 것]
1. 애석하게도, HKLM에 남겼다고 해서 Standard User가 프로그램을 시작할 수는 없습니다. 왜냐하면, RunOnce는 그 속성상, 한 번 실행된 이후에는 그 키가 삭제되어야 하는데, "Standard User"는 해당 레지스트리키에 대해서 "쓰기(삭제) 권한"이 없기 때문에 동작되지 않습니다.

What are the dire consequences of registering a RunOnce command from my RunOnce command?
; https://devblogs.microsoft.com/oldnewthing/20240805-00/?p=110098

2. 이 부분은 다시 확인해 보십시오. 제가 테스트한 바에 의하면 Run인 경우에는 정상적으로 수행이 되었습니다.

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

새롭게 바뀐 비스타의 보안 모델이 낯설은 경우에는, 위와 같은 동작 방식이 다소 "버그" 같은 느낌이 드시겠지만,,, 어쨌든 지극히 당연한 동작이니... " 호환성"을 위한 고려사항이라고 보셔야 할 것 같습니다. ^^

좋은 경험을 공유해 주셔서 감사합니다. ^^








[최초 등록일: ]
[최종 수정일: 8/6/2024]


비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  37  38  39  40  41  [42]  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4831guest5/15/201719787WPF .net 3.5에서 TextBox 한글 문제 [3]
4830초보자5/7/201724209프로그램 비정상 종료 메시지 창 없애는 방법 [4]
4829윤현수4/26/201722688System.Text.Encoding 질문 [1]
4828jaem...4/20/201716938시스템 종료시 block 함수 xp 지원가능한 방법 질문 [2]
4827ds4/13/201719046매서드 정의로 이동시 [메타데이터에서]에서 라고 나오는 것은 뭔가요? [1]
4826김솔지4/11/201716219CxImage 문자 출력 [1]
4825플메4/10/201715941덱스트 업로드 하는데 구성요소 서비스에 엑셀이 안뜨네요..ㅜㅜ [1]파일 다운로드1
4824김상경4/9/201715579win7에서 vb6.0을 이용해서 프로그램을 만들었습니다.(제가 만든건 아니고 옆 동료가 만들었습니다.) [1]파일 다운로드1
4823조상현3/28/201716529windows event log 에 대한 정보는 어디서 얻을 수 있을까요? [1]
4822부우3/24/201718643글수정이 안되어 다시올려드립니다ㅠ [12]파일 다운로드2
4821부우3/22/201733241파일이나 어셈블리 중 하나를 로드에러 좀 봐주세요 [9]파일 다운로드1
4820듀이3/20/201716889오차 없이 동시에 명령을 보내게 가능한가요? [2]파일 다운로드1
4819popo3/20/201718734C# sslstream 사용시 Cipher List 설정 [3]
4818부우3/16/201728751DllImport 사용시 진입점을 찾을수 없습니다 [2]
4817yun3/15/201717493서피스프로4의 HYPER-V로 윈도우7을 깔았는데... [1]
4816부우3/15/201719934C++ DLL함수 사용 질문드립니다 [10]
4815김지용3/14/201716024.net core linux 오류 [2]
4814김솔지3/13/201716838인쇄 시 , 출력화면을 이미지 파일로 저장하고 싶습니다. [1]파일 다운로드1
4813spow...3/8/201718577멀티 스레드 환경에서 처리하여야 할 목록을 효율적으로 사용하는 기법 질문 드립니다 [2]
4812popo2/23/201718924.NET Window ClassName 변경 질문 드립니다. [1]
4809힘찬도약2/15/201721909C# 가상 시리얼 [4]
4808이길용2/9/201719900WCF 외부 접속 관련해서 질문드립니다ㅠ [1]
4807헬조선식...2/8/201727204WPF의 속도에 대해서 궁금합니다. [3]
4803헬조선식...2/7/201720160WPF로 메신져 메세지 박스 구현 문의 [2]
4802spow...2/6/201717207특정 범위의 값을 다른 값으로 치환하는 메소드를 만들어야 할 때 가장 빠른 방법은? [7]
4804spow...2/7/201716624    답변글 [답변]: 특정 범위의 값을 다른 값으로 치환하는 메소드를 만들어야 할 때 가장 빠른 방법은?
... 31  32  33  34  35  36  37  38  39  40  41  [42]  43  44  45  ...