
問題
VMWare に Windows XP SP3 がインストールされていますが、これは非常に新しくインストールされており、いくつかのアプリケーション (ブラウザー、Office) がインストールされています。
私が:
- ローカル管理者としてログイン
- エクスプローラーの GUI を使用して、X としてリモート サーバーに接続します。
- スタート メニュー リンクから「コマンド プロンプト」を起動するには、次のいずれかの方法を使用します。a
) リンクを手動で起動する
b) リンクを右クリックし、「別のユーザーとして実行...」を選択して、同じユーザーの資格情報を入力する
前者の場合は問題なく動作しますが、後者の場合はcmd.exe
アクセスできませんX:
。
C:\Documents and Settings\Administrator>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable X: \\server\share\folder Microsoft Windows Network
The command completed successfully.
C:\Documents and Settings\Administrator>x:
The system cannot find the drive specified.
C:\Documents and Settings\Administrator>dir x:\
The system cannot find the path specified.
C:\Documents and Settings\Administrator>
事前分析
プロセスについて見つけたさまざまなプロパティ (すべてが関連しているかどうかはわかりません) を比較しました: 環境、開いているハンドル、開いている DLL、プロセス エクスプローラーの [セキュリティ] タブなど、すべて同じです。
私が発見したことの 1 つは、プロセス モニターで試行を観察すると、後続の試行ではさらに 4 つの手順が実行されることです。
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"10:55:33.4784227 AM","cmd.exe","2792","RegOpenKey","HKCU","SUCCESS","Desired Access: Maximum Allowed"
"10:55:33.4785212 AM","cmd.exe","2792","RegOpenKey","HKCU\Software\Policies\Microsoft\Control Panel\Desktop","NAME NOT FOUND","Desired Access: Read"
"10:55:33.4785569 AM","cmd.exe","2792","RegOpenKey","HKCU\Control Panel\Desktop","SUCCESS","Desired Access: Read"
"10:55:33.4786210 AM","cmd.exe","2792","RegQueryValue","HKCU\Control Panel\Desktop\MultiUILanguageId","NAME NOT FOUND","Length: 256"
"10:55:33.4786650 AM","cmd.exe","2792","RegCloseKey","HKCU\Control Panel\Desktop","SUCCESS",""
"10:55:33.4787131 AM","cmd.exe","2792","RegCloseKey","HKCU","SUCCESS",""
"10:55:33.4912359 AM","cmd.exe","2792","CreateFile","X:","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"10:55:33.4924104 AM","cmd.exe","2792","QueryNameInformationFile","X:","SUCCESS","Name: \server\share\folder"
"10:55:33.4924860 AM","cmd.exe","2792","QueryInformationVolume","X:","SUCCESS","VolumeCreationTime: 9/6/2005 2:05:04 PM, VolumeSerialNumber: 109F-0912, SupportsObjects: True, VolumeLabel: DATA"
"10:55:33.4932539 AM","cmd.exe","2792","CloseFile","X:","SUCCESS",""
"10:55:33.4937810 AM","cmd.exe","2792","RegOpenKey","HKCU","SUCCESS","Desired Access: Maximum Allowed"
"10:55:33.4939097 AM","cmd.exe","2792","RegOpenKey","HKCU\Software\Policies\Microsoft\Control Panel\Desktop","NAME NOT FOUND","Desired Access: Read"
"10:55:33.4939451 AM","cmd.exe","2792","RegOpenKey","HKCU\Control Panel\Desktop","SUCCESS","Desired Access: Read"
"10:55:33.4940098 AM","cmd.exe","2792","RegQueryValue","HKCU\Control Panel\Desktop\MultiUILanguageId","NAME NOT FOUND","Length: 256"
"10:55:33.4940548 AM","cmd.exe","2792","RegCloseKey","HKCU\Control Panel\Desktop","SUCCESS",""
"10:55:33.4941023 AM","cmd.exe","2792","RegCloseKey","HKCU","SUCCESS",""
失敗したログには、CreateFile、Query*、CloseFile の手順が存在しません。
質問
このような矛盾はなぜ起こるのでしょうか? これはバグでしょうか?
答え1
Windows XP以降では、LSA ログオン セッション(関係ないターミナルサービスセッションへの接続には独自のセットドライブ文字の割り当て。実行者...– アカウントが同じか異なるかに関係なく、関数は指定された資格情報を使用して別のログオン セッションを作成します。
Windows 8 または Server 2012 (およそ) 以降では、EnableLinkedConnections
レジストリ値を有効にして、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
UAC によって昇格されたアプリケーションが通常のドライブ マッピングを共有できるようにすることができます。
もっと:
答え2
マップされたドライブはユーザーごとに割り当てられるため、他のユーザー (RUN AS を実行するユーザー) はそれを表示できません。
勝つためには、まずユーザーとして実行されているバッチでドライブのマッピングを試す必要があります。