2009-08-12 3 views
8

ネットワークドライブをプログラムでマッピングするアプリケーションがあります。 UACを搭載したVistaでは、奇妙な問題が発生します。Vista UAC - Trouble Mapping Network Drives

私たちのアプリケーションはドライブを非昇格にマップします。そのため、ユーザーがエクスプローラをブラウズしてダブルクリックしてEXEを実行すると、UACの入力を求めるメッセージが表示されます。だから彼らはそれを承認すると、それは共有のユーザー名/パスワードを要求します...信任状が保存されているので不思議です。

昇格したプロセスは、非昇格プロセスからマップされたマップされたドライブにアクセスできません。

次の手順を実行し、アクションでこの問題を確認するには:\ YOURHOSTNAME \ yourShare /ユーザー:yourUserあなたのパスワード/永続なしUAC

  • ファイル名を指定して実行「のネット利用ワットと

    • 実行CMD.EXEを:はいワット「
    • 実行管理
    • タイプなどのcmd.exe 『:ネット』、そしてあなたは、プレーンを実行することができます。この時点で、エラーメッセージ

    を参照してください」昇格されたcmdの接続は使用できませんが、他の昇格していないcmdはOKと表示されます。

    この問題を解決する回避策を知っている人はいますか?ネットワークドライブを「すべてのユーザー」にマップする方法がありますか?

  • +0

    この質問はserverfaultに属している可能性があります。 –

    +0

    いいえ、それはプログラミングに関する質問です。彼らは仰角を越えて特権を継承する必要があります。私は答えを知らない:) – bdonlan

    +0

    これは間違いなくプログラミング上の問題です、私たちはアプリケーションからWNetAddConnection2とWNetCancelConnection2を使いますが、これは "net use"コマンドに似ています。 – jonathanpeppers

    答えて

    2

    は、このリンクをチェックアウト:Regedit Link

    彼らは上昇、ユーザーがマップされたドライブおよびその逆へのアクセスを可能にするレジストリキーについて説明します。これは私のすべての問題を解決し、まさに私が探していたものでした。

    EDIT:

    元のリンクが死んでいるが、ここでは1月24日、www.archive.orgで2009スナップショットからコピーされたようなテキストがあります:


    あなたがアクセス権を持っていないことを見つけている場合あなたの管理トークンからマップされたドライブに以下を試してみてください。保護された管理者として実行する場合、2つのトークンがあり、このキーは両方のトークの接続を維持します(これは私の理解です)。また、ログインスクリプトの問題を解決するのにも役立ちます。マイクロソフト\ Windowsの\ CurrentVersionのポリシー\ \システム EnableLinkedConnections =(DWORD)また、使用の1

    \

    HKEY_LOCAL_MACHINE \ソフトウェアは、このドキュメントのセクション "「グループポリシーのスクリプトが原因ユーザーアカウント制御に失敗すること" であります。

    http://technet2.microsoft.com/WindowsVista/en/library/5ae8da2a-878e-48db-a3c1-4be6ac7cf7631033.mspx?mfr=true

    私はすぐにこれに関するより多くの情報を掲載します。

    +0

    これはレジストリのデフォルト設定であったはずです。低特権ユーザーが特権のみの共有にアクセスする方法を提供しない限り、別個に処理する必要があります。 – Mordachai

    +0

    この解決方法は、サポートされていない回避策としてMicrosoftによってマークされ、システムが危険にさらされます。自己責任で使用してください... – Robert

    +0

    昇降していないプロセスによって作成されたネットワーク共有に昇格プロセスがアクセスするのをどのように許可するのが安全でないのかよくわかりません。ドアの上昇したプロセスではありませんか?それでも奇妙な問題ですが、私はむしろサポートされていない回避策を使ってほとんどの人にそれを修正したいと思います。 – jonathanpeppers

    2

    これは仕様です。

    昇格バージョンに管理者グループのメンバシップと追加権限を持つ昇格バージョンを使用しても、トークンは個別に作成されるため、異なるLUIDを持ち、異なるユーザーからのものであるように見えますログオン。それらは異なるログオンからのものなので、マップされたドライブはそれらの間で共有されません。

    http://blogs.msdn.com/cjacks/archive/2007/02/19/mapped-network-drives-with-uac-on-windows-vista.aspxがこれについてさらに詳しく説明します。

    +0

    Vistaのユーザーがネットワークドライブをマップすると、基本的にはマップされたドライブからexeを実行できません。 Windowsアカウントのユーザー名とパスワードがマップされたドライブのアカウントのユーザー名とパスワードと一致する場合にのみ機能します。これは "設計によって"貧しい状況のように思えます。 – jonathanpeppers

    +1

    同じユーザー名を持っていても、昇格されていないユーザーと昇格されていないユーザーは区別されます。通常のユーザーはドライブを管理ユーザーアカウントに割り当てることができますか?通常のユーザーが管理者のニーズよりもドライブのマッピングで盛り上がった場合、DOSが発生する可能性がありますか?通常のユーザーがドライブマッピングを管理者が期待していない場所に誘導し、別のバイナリを実行させると、EOPが発生する可能性がありますか? – Michael

    +0

    私はMicrosoftがこれをうまく実装していないと言っています。何らかの形や方法で別のユーザーに昇格させるべきではないと思っています。このような状況の回避策はありませんか? – jonathanpeppers