2012-03-09 24 views
1

さまざまなバージョンのWindowsでプロファイルディレクトリのパスを取得しようとしています。 [ドライブ]:\ Documents and Settingsの古いバージョンでは、新しいものは[ドライブ]:\ Usersです。これをローカルで問題なく実行するにはいくつかの方法がありますが、私が接続したリモートマシン上のパスを見つける必要があります。Windowsプロファイルのディレクトリパスをリモートから取得するにはどうすればよいですか?

  • リモートレジストリが有効になっています。
  • 私は偽装トークンを持っており、Net APIなどを介してリモートホストから情報を正常に収集できます。
  • 私は管理共有にアクセスでき、リモートドライブ上のすべてのファイルにアクセスできます。

その他の重要な注意事項のリストです。

  • これはC++プロジェクトです。
  • GetProfilesDirectoryまたはGetUserProfileDirectoryがリモートコンテキストで動作することはできないようです。私がこれについて間違っていたら教えてください。しかし、私の実験では、関数はローカルマシンから何かを返しました。
  • 私はWMIを使用することができません.WMIの機能をプロジェクトに統合するのに何度も試みましたが、うまく機能しませんでした。
  • できるだけ「スクリーンスクレイピング」を少ししかしたくないです。テキストファイルからの読み込みと結果の解析を含まないアイデアがあるなら、それを聞いてみたいと思います。しかし、本当に有益な答えをいただければ幸いです。
  • レジストリ内のプロファイルディレクトリ情報は、環境変数を含んでいるため有用ではないようです。また、GetProfilesDirectoryのように、環境変数拡張機能はリモートホストと連携するように設計されていないようです。これは、新しいWindowsマシンから古いWindowsマシンへ、またはその逆の呼び出しを行っていた場合、そのソリューションが機能しないことを意味します。
  • ソリューションは、Windows 7へのWindows Server 2003から、あなたが持つかもしれないどんなアイデアを事前に

感謝を任意のバージョンのWindowsを実行している可能性がありますホスト間で作業するのに十分な一般的でなければなりません。理想的には、GetProfilesDirectoryをリモートホスト上で動作させることができればと思っています。その方法を知っていれば、私は永遠にあなたを愛するでしょう。

+0

「リモートマシン」を定義し、「Iください。 "に接続しました"。あなたのローカルイントラネット、または他のどこかにある "リモートマシン"ですか?あなたはどのようにしてそのマシンに "接続"していますか?あなたは多くの詳細を提供しましたが、最も重要なものは省略したようです。ありがとう。 :) –

+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%を取得できます\ Windows NT \ CurrentVersion \です。 – alexisdm

+0

ああ、はい、私のWindows Server 2003とWindows 7のテストインストールでは、同じ場所に同じ情報を持つこのキーがあります。私はこれについてさらに研究をして、どれほどのばらつきがあるかを見ていきます。それは最もクリーンな解決策ではありませんが、それは役に立ちます、ありがとうございます。 – ShiggityShiggityShwa

関連する問題