2

Vistaワークステーションから、プログラムでボリュームをローカルにマウントしたい(たとえば、XP Embedded\\MyXPEmbedded\C:\some\path\をVistaワークステーションにマウントする(にマウントするC:\mounted_XPEmbedded\))接続されたXPEmbeddedコンピューターがあります。

(これは、より大きなデバイスの一部であるXP Embeddedワークステーションでファイルを維持するVistaワークステーションで実行される管理ユーティリティです。)

VistaワークステーションからXPEmbeddedコンピューターを見ることができます。たとえば、::getnameinfo()XPEmbeddedコンピューターの名前をIPアドレスから解決できます。

ただし、すべての呼び出しはGetVolumeNameForVolumeMountPoint()失敗し(returns false)、フォーマットされたメッセージは次の::GetLastError()ようになります。

Logon failure: unknown user name or bad password

明らかに、これは権限の問題のようです。ただし、Microsoft APIには、これらのボリュームGUIDパスAPIを介してユーザー/パスワードを提供する方法についての説明はありません。

XPEmbeddedマシンのIPアドレスをアドレスバーに入力してVistaワークステーションのWindowsエクスプローラーからXPEmbeddedを「参照」すると、ユーザー名とパスワードの入力を求められます。その後、XPEmbeddedのすべてを確認できます。 (当たり前! プログラムでそれを提供するにはどうすればよいですか?)

質問:GUIDパスAPI(特に)を使用するときに、プログラムでユーザーのログイン/パスワードを提供するにはどうすればよい::GetVolumeNameForVolumeMountPoint()ですか?

問題の一部は、これらのコンピューターが同じドメインを共有していないことである可能性があります(共有できません。Vistaコンピューターはお客様のドメインに追加され、XPEmbeddedは「非表示」にする必要があります)。

おそらく重要ではないその他の情報:

  • VistaワークステーションとXPEmbeddedは同じドメインを共有しません(共有できません)
  • アプリケーションは、管理者権限を持つアカウントでVistaワークステーション上で実行されます(これは必要だと思いますか?)
  • そのVista管理者アカウントはXPEmbeddedコンピューターに存在しません(XPEmbeddedには別の管理者アカウントがあります)
  • 両方のコンピューター間の時計は最新です(セキュリティクレデンシャルは機能するはずです)
  • Vistaワークステーションには2枚のネットワークカードがあり、1枚のカードは1枚のネットワークカードしかないXPEmbeddedボックスに直接接続します。
  • C ++、MSVS2008を使用

ボーナス質問:管理者権限なしでVistaワークステーションでこの管理ユーティリティを実行できればいいのですが、これは可能ですか?(XP組み込みの管理ログイン/パスワードを知っています。)

4

2 に答える 2

2

WNetAddConnection2埋め込みボックスの共有にアクセスする前に、 を呼び出してください。の形式のユーザー名が必要になる場合がありますMyXPEmbedded\[admin username]

以前に組み込みボックスへの接続を試みたことがある場合、問題が発生する可能性があります。使用できる残留接続を削除するには、コマンド ラインから -オプションnet useを使用し/deleteます。デバッグ目的でプログラムを実行する前に、ネットを使用して接続を確立して遊ぶこともできます。

管理者権限なしで実行する限り、これは主にローカル マウント ポイントを作成する場所に関係しますが、UNCパスを使用するだけで済む可能性があります。デフォルトの管理共有 (「シンプルなファイル共有を使用する」が無効になっている場合に有効になります) を使用すると、次のような方法で組み込みシステムにアクセスできます\\MyXPEmbedded\c$\some\path

于 2011-06-30T18:17:07.500 に答える
2

\\myXP\whatever または \\myXp\c$ または \\ など、十分な権限を持つ任意の共有で、Vista ワークステーションから XP ワークステーションへの少なくとも 1 つの SMB (名前付きパイプ/ファイル共有) 接続を確立する必要があります。 myXP\icp$、「myXP」コンピューターを対象とするネットワーク パスを開く前に。

これは、ユーザー名とパスワードを指定してWNetAddConnection2 Functionを使用してプログラムで行うことができます。

于 2011-06-25T14:31:47.753 に答える