如何在Azure Files共享中展示带访问者信息的打开文件列表
Azure Files 共享已打开文件的访问者身份查询说明
Azure Files不存在和本地Windows服务器「计算机管理→共享文件夹→打开文件」完全一致的内置可视化面板,目前仅能获取到handlerId、无法定位具体打开人的问题,本质是查询时没调用返回身份字段的参数,且仅在域认证模式下可拿到自然人访问身份
能力边界说明
- 早期SMB句柄查询的默认返回结果,确实仅包含文件路径、打开时长、handlerId、客户端IP这类基础信息,不附带访问者身份,这也是查询结果仅能看到handlerId的原因
- 访问者身份字段不会在简化查询结果中默认返回,只有在查询时显式指定参数拉取全量字段时,才会同步展示
- 如果你是通过存储账户密钥、裸本地用户凭证(未接AD DS/Entra ID域认证)的方式访问Azure Files,无论用什么查询方式,返回的访问者主体只会是对应存储账户的共享账号,没法拆分到具体自然人,这和Windows服务器共享开启Guest匿名访问时,无法识别具体访问者的逻辑完全一致
可实现对标Windows视图的操作方法
以下操作拉取的字段,和本地Windows「打开文件」面板的展示列完全对齐,包含文件路径、打开权限、打开时长、访问者账号、来源客户端信息:
- PowerShell 查询方式
调用Get-AzFileHandle命令时,必须携带-ShowConnectedClients参数,才能拉取关联的访问者身份:Get-AzFileHandle -ResourceGroupName <存储所在资源组名称> -StorageAccountName <存储账户名称> -ShareName <目标文件共享名称> -ShowConnectedClients - Azure CLI 查询方式
调用az storage file handle list命令时,携带--show-connected-client参数,即可返回包含访问者AD账号/Entra UPN、来源IP的全量句柄信息:az storage file handle list --account-name <存储账户名称> --share-name <目标文件共享名称> --show-connected-client
常见误区
- 不要在没有域身份认证的配置下,期望能拿到具体自然人的访问记录:这种模式下所有SMB连接都是以共享账号身份建立的,天然没有自然人身份关联
- 拉取到的访问者身份字段,需要你提前把Azure Files的SMB访问配置为AD Kerberos认证(AD DS同步或者Entra ID Kerberos),否则字段值只会显示存储账户的访问密钥身份
内容的提问来源于stack exchange,提问作者Jacob.Christensen
相关产品推荐
相关产品推荐

