web-dev-qa-db-ja.com

同じユーザーが複数のユーザー名を使用してサーバーまたは共有リソースに複数接続することは許可されていません

Windows 2008 R2を使用します。サーバー上で次のエラーが発生します:「同じユーザーによるサーバーまたは共有リソースへの複数のユーザー名を使用した複数の接続は許可されていません。サーバーまたは共有リソースへの以前の接続をすべて切断して再試行してください。」コマンドラインでドライブをマップしようとしたとき。ただし、リモートコンピューターに対して開いているエクスプローラーウィンドウはなく、「Net Use」を実行してもリモートコンピューターには何も表示されません。

「Net Use」がドライブまたはフォルダが開いていないことを報告するときに、Windowsは何かが接続されていると考えるのはなぜですか?

再起動せずに何かが接続されているとWinに強制的に停止させるにはどうすればよいですか?

ユーザー名とパスワードを指定すると、エラーが表示されるようです。私がちょうど入れた場合:

 Net Use n: \\192.168.10.120\test 

それは動作しますが、私が入れた場合

 Net Use n: \\192.168.10.120\test "<password>" /user:"<domain\username>" 

エラーが発生します。どうしてですか?

50
raphael75

Net Use * /delを介して共有フォルダーを削除しても、サーバー側には接続が残っています。

マイクロソフトが作成したこの問題を回避するために、設計上 Windowsが別のサーバー上の別の共有であるとWindowsに認識させるようにドライブをマップする必要があります。最も簡単な方法は、DNSエイリアスまたはIPアドレスを使用することです。あなたの場合、最初のマッピングが現在の資格情報で\\IP\ShareのようなIPアドレスを使用する場合、\\ServerName\Share password /user:Domain\Usernameのようなものを使用して、新しい資格情報で新しい共有を作成する必要があります。

Microsoftはこの動作を設計と呼んでいます。

29
SunChero

ネットワークでは、クライアントコンピューターでワークステーションサービスを再起動すると、この問題を解決できることがわかりました。これは、クライアントを再起動しても問題が解決する場合に有効です。ただし、サービスの再起動ははるかに迅速かつ簡単です(再起動しないと機能する場合があります)。

私の印象では、ローカルのWindows PCが古い情報をキャッシュしているので、これで明らかになったようです。

サービスの再起動については、 この質問 をご覧ください。つまり、コマンドラインで次のコマンドを実行することになります。

C:\> net stop workstation /y
C:\> net start workstation

注-/yフラグは、既存の接続を中断する場合でもサービスを強制的に停止します。ただし、それ以外の場合は、ユーザーにプロンプ​​トを表示して待機します。したがって、これはスクリプト作成に必要な場合があります。

83
DaveInCaz

次の手順を実行します:

  • Startボタンを選択し、cmdと入力します。
  • Command Promptオプションを右クリックして、Run as administratorを選択します。
  • Net Useと入力し、Enterを押します。
  • 疑わしいと思われるドライブを探します。この問題が発生する多くの場合、ドライブに文字が割り当てられていない可能性があります。そのドライブを削除する必要があります。
  • コマンドプロンプトから「Net Use /delete \\servername\foldername」と入力します。servername\ foldernameは、削除するドライブです。
19

Net Use \\<Host> /deleteは機能するはずですが、多くの場合機能しません。

net stop workstationは@DaveInCazがそのような場合に作品を提供したためです。

コメントに収まらない理由と方法があります。

  • Workstationサービスを再起動するだけでは不十分です(たとえば、services.mscコンソールから)
    サービスは、おそらくしばらくの間無効にする必要があります。スクリプトからこの再起動を行う場合、1秒の遅延を追加することをお勧めします。

  • 別のプログラムがまだその共有を使用しているためにNet Use \\<Host> /deleteが機能しない場合、そのようなプログラムを識別し、ブロックせずにブロックハンドルを削除できます。 Sysinternals Process Explorerを使用し、Ctrl + Fを押して検索し、そのような共有を所有するホストマシンの名前を入力します。各結果をクリックすると、検索ダイアログの背後にあるプログラムウィンドウが、見つかったプログラムのハンドルにジャンプします。そのハンドルを右クリックし、[ハンドルを閉じる]を選択します。 (または、可能であればそのようなプログラムを閉じます)これは、共有の切断をブロックするプログラムが実際に存在する通常の場合にのみ機能します。理由もなくブロックされているような奇妙なケースではありません。

  • 昇格したアカウントには独自の環境があります。これにより、予期しない動作が発生します。
    昇格したcmd/PSコンソールでNet Useコマンドを実行しても、Windowsエクスプローラーが共有にアクセスするために使用するユーザーには影響しません。
    また、共有からプログラムを実行し、そのプログラムが昇格したアクセスを要求して取得した場合、そのプログラムはその共有と実行する必要があるファイルへの接続を失います。昇格されたcmd/PSからNet Useを実行して、その共有への昇格された共有接続を作成する必要があります。

  • エクスプローラー(左パネルの上部)のクイックアクセスから最近のフォルダーを削除すると、特定の場合に役立つ場合があります。
    接続先のホストがユーザーに基づいて異なるアクセスレベルを提供し、かつ/またはゲストユーザー(匿名)共有アクセスを持っている場合、これはよく遭遇する可能性のある状況です。
    ユーザー名を使用して共有にアクセスすると、その共有内のフォルダーが最近のアイテムとしてクイックアクセスパネルに割り当てられる場合があります。再起動後にエクスプローラーを開くと、クイックアクセス内の最近のアイテムがチェックされ、ホストマシンへの接続が行われ、MUPの形式で開いたままになります。共有が承認済み接続と匿名接続の両方を受け入れる場合、Windows Explorerを開くだけで匿名接続が作成され、承認が必要な共有をクリックすると、資格情報ダイアログは表示されずエラーが表示されます。

0
papo