Microsoft MVP성태의 닷넷 이야기
글쓴 사람
에릭 (nicety17 at hanmail.net)
홈페이지
첨부 파일

안녕하세요? 작가님,

구글을 아무리 뒤져도 원하는 답이 안나와서 질문 드립니다.

 

WMI 쿼리로 Logical Drive 정보를 받아오려고 하는데,

이 결과값이 콘솔 또는 Visual studio로 실행 할 때와 Windows Service로 deploy 해서 실행하는 결과값이 다릅니다.

 

 

사전 조건은,

Desktop에 네트워크 드라이브가 연결 된 상태에서

 

 - Windows Terminal로 Get-WmiObject -query "SELECT * FROM Win32_logicalDisk WHERE DriveType = '4'" 를 보내거나,

 - 동일한 코드를 Console App으로 만들거나,

 - 동일한 코드를 서비스 앱으로 만들어서 Visual Studio로 디버깅을 하면 원하는 값이 출력 됩니다만,

 

 이상하게 윈도우 서비스로 deploy만 해서 실행하면 WMI 쿼리의 응답값이 안들어 옵니다. (쿼리에 where 문을 쓰지 않으면 Local Disk C, D 드라이브는 제대로 검색 됩니다)

 

서비스 프로젝트 첨부합니다.

혹시 제가 놓치고 있는 부분이 어떤건지 알려 주실 수 있을까요? 항상 감사드립니다.








[최초 등록일: ]
[최종 수정일: 8/20/2022]


비밀번호

댓글 작성자
 



2022-08-20 12시10분
[에릭] 심플하게 다시 정리하면,

WMI 쿼리로 콘솔, Visual Studio 디버깅에서는 네트워크 드라이브가 검색이 되는데, 왜 서비스로 deploy를 했을 때만 검색 되지 않는지 입니다.
[guest]
2022-08-20 12시40분
네트워크 드라이브를 연결한 데스크톱 사용자와 NT 서비스가 실행되는 계정이 같나요? 다음의 글을 참고하시고,

Windows NT Service에서 UI를 다루는 방법
; https://www.sysnet.pe.kr/2/0/13120

아마 제가 알기로는 NT 서비스와 로그인한 사용자의 세션이 달라지긴 하지만 네트워크 드라이브 연결에 대한 정보는 세션 별로 나뉘진 않을 것입니다.
정성태
2022-08-22 11시12분
[승준] 네트워크 드라이브 접속 계정과 로그인 계정이 다를 경우 관리자로 실행하지 않으면 문제가 발생할 수 있습니다.
몇달전에 딱 저런 상황에서 네트웍 드라이브의 파일을 읽고 쓸일이 있었는데.
전혀 안되더라고요. 디버깅이 불가능한 완전 폐쇄 시스템이라 한참 고생했었네요.
[guest]
2022-08-22 03시21분
[에릭] 오늘 다시 확인해보니,

서비스는 세션0 (System)에서 실행 중이고, 제가 확인 했던 방법들 (PowerShell, Visual studio 디버깅, console app)은 모두 세션1 에서 구동 되고 있었네요. 현재까지의 현상만 보면 세션에 따라 WMI 쿼리의 결과가 다른것 처럼 보이는데, 이걸 증명할 방법이 마땅찮네요 ㅠㅠ

윈도우 서비스를 세션1에서 돌려보거나, 콘솔 앱을 세션0에서 돌려보면 확실할 것 같은데, 혹시 제가 추가적으로 참고할만한 아티클이 있을까요?! 늘 도움 감사드립니다.
[guest]
2022-08-22 04시00분
[승준] 서비스에서 모든걸 해야 하는 어떤 조건이 있나요?
저는 서비스는 왓치독 역할만 시키고 기능 구현은 모두 외부 프로그램으로 만들어서 처리하거든요.
[guest]
2022-08-22 04시22분
[에릭] 승준님 의견 감사합니다.

아 저는 서버에서 돌아갈 윈도우 서비스를 구현하는 중이어서 되도록이면 외부에 프로그램을 따로 두지 않고, 서비스로만 처리 하려고 진행 했습니다.
저 모듈 외 다른 모듈도 많은 상태라서용 ^^;;

세션을 변경 시키지 못하면 workaround로 powershell process를 서비스에서 돌려서 wmi 쿼리값 확인해보려고 합니다
[guest]
2022-08-22 04시39분
"네트워크 드라이브를 연결한 데스크톱 사용자와 NT 서비스가 실행되는 계정이 같나요?" 질문에 먼저 답변해 주세요.
정성태
2022-08-22 05시19분
[에릭] 작가님,

NT 서비스의 속성 중 로그온 탭에서 확인 되는 값을 물으신거면, "로컬 시스템 계정" 으로 되어 있습니다. 그럼 현재 제 PC(네트워크가 연결 된)의 계정과 서비스의 실행계정이 같다고 볼 수 있을까요?!

네트워크 드라이브(서버)의 계정과 제 개인PC의 계정은 다릅니다.
[guest]
2022-08-22 06시11분
그 "로컬 시스템 계정"을 네트워크 드라이브를 연결한 로그인 계정으로 맞춰 주세요. 그게 가장 쉬운 해결책입니다.
정성태

... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
1118C#조으다1/29/201318473공유기 관리 페이지에 접근시 윈도우 인증창이 뜹니다. [4]
1117최윤호1/28/201316177답변주셔서 감사합니다 질문의 요지는 그게 아니고 [1]파일 다운로드1
1116C#조으다1/27/201323467비프음을 컴퓨터 내장 스피커로 출력하려면.. [2]
1114박재율12/28/201216859WCF 세션과 스트리밍 동시사용에 관해. [1]
1113박진영12/28/201227843윈도우 2008 64비트 닷넷 오류 문의드립니다. [13]
1112이대근12/18/201221671[질문] odp.net 배포 관련 궁금한게 있어서 질문좀 드릴게요 [3]
1111나그넹!12/13/201217824안녕하세요. 파일전송에 관련해서 궁금한것좀 여쭈고싶네요. [1]
1110김동현12/11/201219800안녕하세요 닷넷 신입개발자입니다 Clickonce 질문좀 하겠습니다. [6]파일 다운로드1
1109김성우12/5/201216901WCF IIS 호스팅 관련하여 질문 드립니다. [1]
1123윤용한3/13/201317152    답변글 [답변]: WCF IIS 호스팅 관련하여 질문 드립니다.
1107우라미윰11/22/201224033안녕하세요. RSA공개키 알고리즘에 나와있는 글을 보고 응용을 해야 하는데 막히는 부분이 있어서 질문드립니다. [3]파일 다운로드1
1106초급11/21/201217281WCF Server 인증서 및 Client 인증서 문의 [1]
1104hon11/17/201216981VS2008에서 디버그/릴리즈 환경중에 디버그 환경의 빌드시 배열의 자동 초기화 라는 것에 대해서 궁금합니다. [3]
1102최년호11/15/201219412[탭 브라우저의 윈도우 핸들 구하기] 예제에서 활성화 방법 [1]
1100박진영11/7/201225837[긴급] 코드 액세스 보안 정책(CASPOL.exe) 설정해도 SmartClient 보안에러가 발생합니다. [6]
1099Hyey...10/22/201219541php에서 c file compile [4]
1095이지은10/8/201237695중단점이 현재 적중되지 않았습니다 [3]
1094고민남10/6/201217385NScreen 에 대해 어떻게 생각하십니까? [1]
1093이지수10/6/201216576vbs [1]
1092김성수9/20/201217843안녕하세요? MS Windows server 2008 R2 에서 IIS7 의 SSL 설정시에 에러 해결좀 도와주세요 [1]
1089한상욱9/13/201217841azure에 관한 질문입니다. [1]
1088김영대9/12/201220333DirectX.AudioVideoPlayBack 참조하여 wav 재생기를 제작하여 SmartClient 를 이용하여 aspx 페이지에 Embed 하는 과정의 질문 사항입니다. [2]
1087한우주9/10/201220985SSL 모든 웹페이지에 적용해야하나요? [2]
1086한우주9/4/201218828SSL 인증서 범용으로 사용하기 [3]
1085한우주9/4/201217023개발환경구성 18.3.1 에 대한 문의 [2]파일 다운로드1
1084김종하9/3/201218011team foundation express 2012에서 새 프로젝트 생성... [3]
... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...