有没有办法从我的 Windows 2012 Server 中查找客户端是否已建立签名通信?
Net Session提供了基本细节,但没有提及任何有关签名的信息。
C:\>net session \\a.b.c.d
User name Administrator
Computer a.b.c.d
Guest logon No
Client type
Sess time 00:08:02
Idle time 00:07:50
Share name Type # Opens
--------------------------------------
test Disk 0
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)
是否有任何Powershell cmdlet或任何管理工具或命令可以提供此类信息?提前致谢。
编辑1:我也尝试了以下方法。应在客户端上执行Get-SmbConnection以查找客户端已建立连接的服务器。
PS C:\Users\Administrator> Get-SmbConnection | Select-Object -Property *
ContinuouslyAvailable : False
Credential : domain\administrator
Dialect : 3.00
Encrypted : False
NumOpens : 3
ServerName : server1
ShareName : test
UserName : SERVER1\Administrator …Run Code Online (Sandbox Code Playgroud) 我有两台运行 Windows 2012 R2 的服务器,其中一台是 SMB 服务器,另一台是 iSCSI 服务器,客户端使用的是 Win7 x64。
现在我想在客户端和服务器上使用 2 个 NIC 在 iSCSI 和 SMB 之间分离网络。为此,我需要在 SMB 服务器的内部 NIC 上禁用 SMB,并启用外部 NIC SMB 功能。
但是我在禁用服务器 2012 R2 上特定 NIC 的 SMB 共享时遇到问题
取消选中文件和打印机共享没有任何效果。有没有其他方法可以做到这一点?
注意:我阅读了 SMB Multichannel,但问题是,我客户的规格似乎与 Win10 不兼容。与 Win7 相比,它非常滞后
我完全不知道ZFS 上的本地 SMB/CIFS。这个 wiki 文档没有提到性能差异。两者之间存在什么样的性能差异?
在将我的头发拉出 DFS 之后,我突然想到了这个奇怪且具有潜在危险的想法,因此,可能我可以使用 HA-Proxy 来负载平衡服务器之间的文件共享。
我已经完成了一些补救数据包跟踪,看起来 TCP 端口 445 是使用 Windows 文件共享所涉及的唯一问题。多年来,我一直认为 UDP 139、135 等也至少参与建立连接 - 但显然不是!
所以我设置了一个基本的测试:
listen SMBTest *:445
mode tcp
server Smb1 172.16.61.201:445
server Smb2 172.16.61.202:445
Run Code Online (Sandbox Code Playgroud)
你永远不会猜到是什么......它有效???(!)
现在显然有关于文件服务器之间同步的全部问题(当然)。这可以通过一点 Robocopy 脚本轻松解决。
考虑到我只需要一个 HA 只读文件共享,文件锁定等不会有任何问题。
file-sharing samba load-balancing server-message-block haproxy
每当我检查本地安装的文件系统的情况时,我都非常厌倦必须手动 egrep 退出 NFS 和 SMB 安装的文件系统。因此,我的问题是:是否有一些标志组合可以传递给其中之一,df或者mount强制它们仅显示本地文件系统并跳过任何和所有网络安装的文件系统?
上周六,我们将一台新的虚拟 2008R2 服务器升级为 dc,并将所有 FSMO 角色转移给它。今天我们花了一整天的时间来追查域浏览器功能的问题。
今天早上的问题是,xp 机器之间的网络发送停止工作。我们开始调查。
在 ntads04 上的事件日志中,我们有消息,其他站点上的 DC 被检测为主浏览器,并且本地主浏览器关闭或强制选举。(消息是德语抱歉)。事件日志 xml 如下。
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="bowser" />
<EventID Qualifiers="49152">8003</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2011-12-06T16:46:16.873033800Z" />
<EventRecordID>19226</EventRecordID>
<Channel>System</Channel>
<Computer>ntads04.domain.local</Computer> …Run Code Online (Sandbox Code Playgroud) 我需要的是一种将客户端名称或 IP 地址与打开的文件相关联的方法,以便我可以干净地关闭文件以进行维护。NET SESSION不显示打开文件的名称,也不显示打开文件NET FILE的客户端。我曾希望我可以交叉引用来自这两个命令的数据,但这似乎不可能。我看到的其他所有内容都提供与这些命令相同的数据,但没有明显的方法来确定哪个客户端机器打开了文件。
澄清:我不想强制关闭服务器上的文件,冒着文件损坏的风险并导致客户端程序崩溃。
我有一台运行 Ubuntu 12.04 的服务器作为 Samba 服务器运行。文件系统是 LVM 物理驱动器池上的 XFS 格式虚拟驱动器。
我最近将我们的客户端升级到 Windows 8,我注意到客户端连接 Ubuntu 服务器上的 SMB 共享有 6-8 秒的延迟。在 Windows 7 中,没有这样的延迟。在 Ubuntu 服务器上,SMBD 进程在与共享的初始连接期间会在几秒钟内达到 100% CPU 使用率。
strace显示 smbd 在该连接期间一遍又一遍地打开 /etc/passwd。我的客户应该以访客身份连接(无身份验证)。
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 28
_llseek(28, 0, [0], SEEK_CUR) = 0
fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0
mmap2(NULL, 1568, PROT_READ, MAP_SHARED, 28, 0) = 0xb6de2000
_llseek(28, 1568, [1568], SEEK_SET) = 0
fstat64(28, {st_mode=S_IFREG|0644, st_size=1568, ...}) = 0
munmap(0xb6de2000, 1568) = 0
close(28) = 0
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 28 …Run Code Online (Sandbox Code Playgroud) 我已获得访问 Windows Server 2003 SP1 系统 (10.a.bbb.ccc) 上的共享的权限,该系统是一个文件和打印机服务器,并且经常将大文件复制到该共享。但是,有时这样的副本会失败。使用 Robocopy(在 10.xxx.yy.zzz 上)重现此问题时,我得到类似
70.4%
2013/07/31 11:20:21 ERROR 64 (0x00000040) Copying File <<file name removed>>
The specified network name is no longer available.
Waiting 30 seconds... Retrying...
New File 105.2 m <<file name removed>>
0.0%
Run Code Online (Sandbox Code Playgroud)
dumpcap + Wireshark 显示,当发生这种情况时,在复制过程中,服务器突然不再接受 TCP 端口 445 上的任何数据,方法是将窗口大小设置为零:
No. Time Source Destination Protocol Length Info
7303 5.841186000 10.a.bbb.ccc 10.xxx.yy.zzz TCP 60 [TCP ZeroWindow] microsoft-ds > 57918 [ACK] Seq=10864 Ack=6973070 Win=0 Len=0
7304 6.149715000 10.xxx.yy.zzz 10.a.bbb.ccc TCP 55 [TCP …Run Code Online (Sandbox Code Playgroud) \\host.example.com\ShareName\Tail\Components
|______________| |_______| |_____________|
host share tail
Run Code Online (Sandbox Code Playgroud)
我可以在 UNC 路径的尾部组件上找到大量资源,并且我假设主机组件遵循区分大小写的 DNS 规则,但是共享名又如何呢?
当您仅连接到主机而不指定共享名称时,您要连接的实现可以向您发送正确的共享大小写。当您直接连接到共享时,情况将如何处理?
我只能在 Samba 手册中看到一行,说明“部分和参数名称不区分大小写”,这实际上并没有说明任何一种方式(部分名称用于创建共享,但与该共享的连接可以以不同的方式处理)。我在 Windows 共享文件夹帮助中看不到有关案例的提及。
这是否意味着共享名实际上不区分大小写,并且没有人想过将其明确化,或者有人可以向我指出文档吗?
编辑:
根据微软的SMB2规范:
服务器必须按照 [MS-DTYP] 第 2.2.49 节中的指定解析缓冲区字段,以提取主机名和共享名组件。如果 Buffer 字段不是第 2.2.9 节中指定的格式,服务器必须使请求失败并返回 STATUS_INVALID_PARAMETER。否则,服务器必须提供从请求消息中解析的元组 <hostname, sharename> 以调用 [MS-SRVS] 第 3.1.6.8 节中指定的事件,通过解析服务器别名和评估共享范围来规范主机名。服务器必须使用<规范化主机名,共享名>在ShareList中查找共享。如果没有找到具有匹配的共享名称和服务器名称的共享,则服务器必须使请求失败并返回 STATUS_BAD_NETWORK_NAME。
因此,共享名没有标准化,而且我找不到任何表明合规实现必须不区分大小写地执行匹配的内容。
理想情况下,我正在寻找一些文档或来自在 Windows 和 Samba 之外的多种实现上测试过此问题的人的答案,讨论他们的发现。
cifs ×1
file-sharing ×1
filesystems ×1
grep ×1
haproxy ×1
linux ×1
mount ×1
networking ×1
nfs ×1
samba ×1
smb-conf ×1
tcp ×1
tcp-window ×1
ubuntu ×1
windows ×1
windows-8 ×1
wins ×1
zfs ×1