私は次のようにフォルダにアクセスしようとしました:
\\somecomputeronmynetwork\somelocation$
この場所に行くと、ユーザー名とパスワードの入力を求められます。
私はそれを入れました、そしてそれは私を元気にさせました。
次に、そのログインを削除する必要があるので、別のユーザー名とパスワードを試すことができます。
これを行う最も簡単な方法は何ですか?
コマンドプロンプトを開くか、開始/実行タイプから:
Net Use \\somecomputeronmynetwork\somelocation$ /delete
次のコマンドを使用して、「記憶された」接続を一覧表示することもできます。
Net Use
スタートメニューを開き、検索バーに次のように入力します。
manage passwords
Windowsにログインパスワードがない場合は機能しないため、パスワードを設定してください。
Windowsは、いくつかのあいまいな「セキュリティ上の理由」のために、異なる資格情報で同じサーバーに同時にログオンすることを防ぎます。
この傍受は、サーバー側ではなくクライアント側で行われます。
サーバー名の代わりにサーバーのIPアドレスを使用することで、これを回避できます。個人的には、コマンドラインでこれを行います:
Net Use * \\myservername\mysharename /user:mydomain\theotheruser * /persistent:no
==> error - security reasons
Net Use * \\x.y.z.z'\mysharename /user:mydomain\theotheruser * /persistent:no
==> just fine
このように、異なる資格情報を使用して、同じ共有に2回接続することもできます。ユーザーのコンピューターからユーザーのアクセス許可の問題をデバッグするときに非常に役立ちます。管理者権限を持つ自分のコンピュータで、c $などに接続することもできます。
共有を削除するには、それを右クリックするか、Net Use x: /delete
しかし、これは、サーバーへのクライアントの推定接続を削除しません。共有に接続しなくても、エクスプローラーでサーバーを参照するだけでもカウントされ、名前を偽らない限り、別の資格情報を使用してそのサーバーにログオンすることはできません。
マイクロソフトによれば、これは機能です。
フォルダーへのアクセスが行われ、ユーザーがキャッシュされた(つまり、アクティブなままである)PCへの接続を削除するには、次の手順(ステップバイステップ)を厳密に使用する必要があります。
2マシンのエクスプローラーをすべて閉じます
3コマンドプロンプトを開きます
4コマンドを実行します
ネット使用*/del
***この順序で実行する必要があります。そうしないと機能しません。たとえば、コマンドプロンプトが既に開いている場合(Windowsエクスプローラーの前)、コマンドは機能しません。
偽の資格情報を使用して、アクセスを実際に無効にします。
Net Use * /d /y
Net Use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
Net Use * /d /y
これは古い資格情報を上書きするようで、エクスプローラーに新しい不正な資格情報を使用させます。
Windows 7で動作する可能性がある[XPで動作する]これを試してください。 Start-> Run-> control keymgr.dllにこれを入力するだけです
ウィンドウが開き、保存されているパスワードとユーザー名が保存されます。そこから削除できます。
Windows 7用に保存されたすべてのパスワードは、資格情報マネージャーに保存されます。
コントロールパネル\すべてのコントロールパネル項目\資格情報マネージャー
ユーザーがネットワークの場所でユーザー名とパスワードを使用して認証した場合、そのユーザー名とパスワードはログオンセッション用にキャッシュされたままになります。再認証する前に、ログオフして再度ログオンする必要があります。
Windows 10(Powershell 5+)では、Remove-SmbMapping
。
Remove-SmbMapping -RemotePath \\somecomputeronmynetwork\somelocation$
また、Get-Command *Smb*
。
私は @ rocketsarefastの答え から、新しいログイン試行があるとWindowsが古いネットワーク資格情報をクリアすることも発見しました。
ただし、彼のNet Use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
コマンドは非常に遅く、特にクライアントがサーバーが拒否で応答するまで数秒待たなければならない場合、これはひどくて不便です。
私の使用例では、Win32 APIを使用してネットワーク共有をマップできました\\Server\Share
からS:\
ドライブ。最初にドライブを切断してから、Windowsネットワークログインダイアログでユーザーにプロンプトを表示し、ユーザーが別のユーザーとしてログアウトしてログインできるようにします。
これがCコードですmain.c
:
#ifndef UNICODE
#define UNICODE
#endif
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#define _WIN32_IE 0x0500
#pragma comment(lib, L"mpr.lib")
#include <windows.h>
//#include <stdio.h>
int wmain(const size_t argc, const wchar_t** argv) {
NETRESOURCE networkResource = {0};
networkResource.dwType = RESOURCETYPE_DISK;
networkResource.lpLocalName = L"S:";
networkResource.lpRemoteName = L"\\\\Server\\Share";
networkResource.lpProvider = NULL;
DWORD result = 0;
result = WNetCancelConnection2(networkResource.lpLocalName, CONNECT_UPDATE_PROFILE, TRUE);
// wprintf(L"WNetCancelConnection2 result: %d\n", result);
result = WNetAddConnection2(&networkResource, NULL, NULL, CONNECT_INTERACTIVE | CONNECT_Prompt);
// wprintf(L"WNetAddConnection2 result: %d\n", result);
// getchar();
return EXIT_SUCCESS;
}
こちらがCMakeLists.txt
:
cmake_minimum_required(VERSION 3.7)
project(MapNetworkDrive)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11 -g3 -pedantic -Wall -Wextra -O0")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -municode -mwindows")
set(SOURCE_FILES main.c)
add_executable(MapNetworkDrive ${SOURCE_FILES})
target_link_libraries(MapNetworkDrive mpr.lib)
MinGW-w64を使用してコンパイル-32ビットおよび64ビットWindowsの場合:
Cの代替として、APIに関する簡単なC#チュートリアルを次に示します。
プログラムによるドライブ文字のマッピング:
もちろん、次の方法で接続を削除できます
Net Use \\somemachine\someshare /d
しかし、おそらく最終的には再接続することもできます。さらに、ネットワーク共有に資格情報をキャッシュしている場合、接続を再確立すると、次のエラーの1つと戦うことがあります。
システムエラー1272が発生しました。
組織のセキュリティポリシーが認証されていないゲストアクセスをブロックしているため、この共有フォルダーにアクセスできません。これらのポリシーは、ネットワーク上の安全でないデバイスや悪意のあるデバイスからPCを保護するのに役立ちます。
または
システムエラー1219が発生しました。
複数のユーザー名を使用して、同じユーザーがサーバーまたは共有リソースに複数接続することはできません。サーバーまたは共有リソースへの以前の接続をすべて切断して、再試行してください。
したがって、代わりに、次のようにして再起動せずに問題を修正することをお勧めします。
net stop workstation
net start workstation
切断既存の共有はありますが、Net Use * /d
のようなもので削除した場合と同様に、それらは忘れられないという追加のボーナスがあります。
コマンドラインの要素が気に入らない場合は、代わりにServicesに直接アクセスして、Workstationサービスを再起動できます。
services
」と入力し、Enterキーを押します次に、Net Use \\somemachine\someshare /user:someuser
コマンドを再試行して、資格情報の再入力を求めます。