Windows 检测网络共享的SMB与SMB2

Windows 检测网络共享的SMB与SMB2,windows,winapi,osx-mavericks,smb,cifs,Windows,Winapi,Osx Mavericks,Smb,Cifs,给定类似于\\server\share的UNC路径,是否有任何方法可以使用Win32 API确定本地和远程计算机是使用SMB还是SMB2进行连接?也许您可以在SMB2规范中找到答案 应该有办法检测版本。。。也许您可以尝试实现SMB协议的一小部分,只是向服务器询问协议版本?最容易找到的方法之一是使用wireshark(在windows上)或unix(在SMB运行的地方)上的tcptrace/tcpdump进行网络跟踪。跟踪输出应该为您提供版本在烧毁付费支持事件后,Microsoft的官方回答是,

给定类似于
\\server\share
的UNC路径,是否有任何方法可以使用Win32 API确定本地和远程计算机是使用SMB还是SMB2进行连接?

也许您可以在SMB2规范中找到答案


应该有办法检测版本。。。也许您可以尝试实现SMB协议的一小部分,只是向服务器询问协议版本?

最容易找到的方法之一是使用wireshark(在windows上)或unix(在SMB运行的地方)上的tcptrace/tcpdump进行网络跟踪。跟踪输出应该为您提供版本

在烧毁付费支持事件后,Microsoft的官方回答是,Windows 7中的驱动程序不会公开此信息。在Windows 8上,它可以使用WMI和类,或PowerShell的
Get-SmbConnection
cmdlet使用。

检查这一点。我正在寻找一些我们可以在程序启动时动态检测客户连接到的任意服务器的东西。使用数据包嗅探器或调试器将无法工作。Win10 PowerShell的
Get-SmbConnection
cmdlet对我来说是必需的管理shell。工作