在 Windows 10 上使用 powershell 断开 smb 共享

在 Windows 10 上使用 powershell 断开 smb 共享

我正在尝试使用 Windows 10 中的 Powershell 命令断开 smb 共享:

net use * /delete

但是,此命令不起作用,因为未显示共享net use。输出为There are no entries in the list.

Get-SmbConnection显示的结果符合我的预期,

ServerName ShareName UserName  Credential Dialect NumOpens
---------- --------- --------  ---------- ------- --------
FILESERVER extra     xxx\xxxxx xxx\xxxxx  3.0     1
FILESERVER home      xxx\xxxxx xxx\xxxxx  3.0     1
FILESERVER IPC$      xxx\xxxxx xxx\xxxxx  3.0     0
FILESERVER public    xxx\xxxxx xxx\xxxxx  3.0     2

但我不知道如何断开与该信息的共享。

我提出这个问题的原因是:我想编写一个批处理脚本,在注销后断开 PC 上的所有网络共享(例如 Win+L 键)。在 Windows 7 和 8 上,我使用上述net use * /delete命令,但在 Windows 10 上不起作用,如上所示。可以使用 GUI(资源管理器 -> 网络...)访问 SMB 共享,我可以保存、更改和删除其中的文件。但共享未映射到驱动器号。


以下是执行以下任务的一些输出不是帮助,但似乎我的问题还不够清楚:

Get-SmbConnection:见上文,我想关闭这些!

Get-SmbSession:无输出。

Get-SmbMapping:无输出。

Get-SmbShare

Name   ScopeName Path                              Description
----   --------- ----                              -----------
ADMIN$ *         C:\WINDOWS                        Remoteverwaltung
C$     *         C:\                               Standardfreigabe
IPC$   *                                           Remote-IPC
print$ *         C:\WINDOWS\system32\spool\drivers Druckertreiber

答案1

尝试Remove-SmbMapping。假设您在客户端,这似乎是您想要使用的。您可能可以通过管道将结果Get-SMBConnectionRemove-SmbMapping

答案2

net use是为了映射驱动器和打印机。甚至星号也只是驱动器号的快捷方式:

<DeviceName>

指定一个名称以连接到资源或指定要断开连接的设备。设备名称有两种:磁盘驱动器(即 D: 到 Z:)和打印机(即 LPT1: 到 LPT3:)。键入星号 (*) 而不是特定设备名称以指定下一个可用的设备名称。

映射驱动器是每个用户会话的。当您注销时,它们不再存在。

Get-SmbConnection真的是所有 smb 连接,包括使用不同的凭证和会话:

Get-SmbConnection cmdlet 检索从服务器消息块 (SMB) 客户端到 SMB 服务器建立的连接。用户可以使用与关联登录凭据不同的凭据连接到 SMB 共享,这样每个用户登录的每个共享都会列出一个连接,每个使用的凭据

相关内容