我正在尝试使用 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-SMBConnection
从Remove-SmbMapping
答案2
net use
是为了映射驱动器和打印机。甚至星号也只是驱动器号的快捷方式:
<DeviceName>
指定一个名称以连接到资源或指定要断开连接的设备。设备名称有两种:磁盘驱动器(即 D: 到 Z:)和打印机(即 LPT1: 到 LPT3:)。键入星号 (*) 而不是特定设备名称以指定下一个可用的设备名称。
映射驱动器是每个用户会话的。当您注销时,它们不再存在。
Get-SmbConnection
真的是所有 smb 连接,包括使用不同的凭证和会话:
Get-SmbConnection cmdlet 检索从服务器消息块 (SMB) 客户端到 SMB 服务器建立的连接。用户可以使用与关联登录凭据不同的凭据连接到 SMB 共享,这样每个用户登录的每个共享都会列出一个连接,每个使用的凭据