2012-03-09 2 views
1

다양한 버전의 Windows에서 프로필 디렉터리의 경로를 검색하려고합니다. [드라이브] : \ Documents and Settings의 이전 버전에서는 최신 버전 인 [드라이브] : \ Users입니다. 이 문제는 로컬에서 문제없이 해결할 수있는 몇 가지 방법이 있지만 연결 한 원격 컴퓨터에서 경로를 찾아야합니다.Windows 프로파일 디렉토리 경로를 원격으로 검색하려면 어떻게해야합니까?

  • 원격 레지스트리가 사용됩니다.
  • 나는 가장 (impersonation) 토큰을 가지고 있으며 Net API 등을 통해 원격 호스트에서 정보를 성공적으로 수집 할 수 있습니다.
  • 관리 공유에 액세스 할 수 있으므로 원격 드라이브의 모든 파일에 액세스 할 수 있습니다.

다음은 기타 중요한주의 사항입니다.

  • 이것은 C++ 프로젝트입니다.
  • GetProfilesDirectory 또는 GetUserProfileDirectory가 원격 컨텍스트에서 작동하는 것 같지 않습니다. 이 문제가 잘못된 것이라면 알려주세요.하지만 모든 실험에서이 함수는 로컬 컴퓨터에서 무언가를 반환했습니다.
  • WMI를 사용할 수 없기 때문에 WMI 기능을 프로젝트에 통합하기 위해 여러 번 시도했지만 제대로 작동하지 않았습니다.
  • 나는 가능한 한 "화면 스크래핑"을 거의하지 않는 것을 선호합니다. 어떤 텍스트 파일을 읽지 않고 그 결과를 파싱하지 않는 아이디어가 있다면, 그 이야기를 듣고 싶습니다. 하지만 정말 유용한 답변을 주시면 감사하겠습니다.
  • 레지스트리의 프로필 디렉터리 정보가 환경 변수를 포함하고있어 유용하지 않은 것으로 보이며 GetProfilesDirectory와 마찬가지로 환경 변수 확장 기능이 원격 호스트와 작동하도록 설계되지 않은 것처럼 보입니다. 즉, 최신 Windows 컴퓨터에서 이전 Windows 컴퓨터로 전화를 걸거나 그 반대로 전화를 걸면 솔루션이 작동하지 않습니다.
  • 이 솔루션은 당신이있을 어떤 아이디어를 사전에 윈도우 7

덕분에 윈도우 서버 2003에서 Windows 버전을 실행 할 수있는 호스트 사이 일 정도로 일반해야한다. 이상적으로 저는 GetProfilesDirectory가 원격 호스트에서 작동하도록하고 싶습니다. 그렇게하는 법을 알면 영원히 당신을 사랑할 것입니다.

+0

는"원격 컴퓨터 "를 정의하십시오, 그리고 "에 연결되었습니다." 로컬 인트라넷 또는 다른 곳에 "원격 시스템"이 있습니까? 그 기계에 어떤 방식으로 "연결"되어 있습니까? 당신은 많은 세부 사항을 제공했지만, 가장 중요한 것들은 빠뜨린 것 같습니다. 감사. :) –

+0

HKEY_USERS/*/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders에 액세스 할 수 있습니까? 이 키는 사용하지 않는 것이 좋지만 사용되는 것을 보았습니다. – akhisp

+0

"원격 컴퓨터"는 LogonUser에서 허용하는 자격 증명 정보의 일부로 주소를 지정하여 식별 할 수있는 로컬 네트워크의 컴퓨터입니다. 연결을 설정하는 데 사용되는 실제 호출은 다음과 같습니다. WNetAddConnection2, LogonUser, ImpersonateLoggedOnUser, RegConnectRegistry – ShiggityShiggityShwa

답변

1

원격 레지스트리에 액세스 할 수있는 경우, 프로파일 디렉토리 및 프로파일 목록이 유지 키 볼 수있을 것입니다 : 나는 "

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 
+0

그 키에는 환경 변수가 포함되어 있다고 생각합니다. 값은 % SystemDrive % \ Users처럼 보입니다. 기술적으로 나는이 정보를 얻어서 내가 원하는 것을 구성하는 데 사용할 수 있지만 올바른 드라이브가 무엇인지 결정하기 위해서는 견고한 방법이 필요합니다. – ShiggityShiggityShwa

+0

[this] (https://groups.google.com/d/msg/microsoft.public.win2000.registry/hP7RAuNMfZ8/xwK2BfLbsUwJ)에 따르면 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft의 SystemRoot 값에서 % SystemDrive %를 얻을 수 있습니다. \ 윈도우 NT \ CurrentVersion \. – alexisdm

+0

아, 네, 제 Windows Server 2003 및 Windows 7 테스트 설치 모두 동일한 위치에 동일한 정보가있는이 키를 가지고 있습니다. 얼마나 많은 변화가 있을지 알아보기 위해 이것에 대해 좀 더 연구 할 것입니다. 가장 깨끗한 해결책은 아니지만 도움이됩니다. 감사합니다. – ShiggityShiggityShwa

관련 문제