首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取有关Azure文件共享文件句柄的详细信息- Get-AzStorageFileHandle

获取有关Azure文件共享文件句柄的详细信息- Get-AzStorageFileHandle
EN

Stack Overflow用户
提问于 2019-10-01 22:19:57
回答 1查看 1.4K关注 0票数 0

我已经从azure存储帐户文件共享中获得了打开的文件句柄,但这些信息似乎很少,无法理解是什么进程启动了它,或者这个文件句柄在哪个文件上。

获取文件句柄https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefilehandle?view=azps-2.7.0

https://github.com/Azure/azure-powershell/blob/master/src/Storage/Storage.Management/help/Get-AzStorageFileHandle.md#example-1-list-all-file-handles-on-a-file-share-recursively-and-sort-by-clientip-and-opentime

如何使用handleid或sessionid从此列表中获取更多信息?

我在azure文档和互联网上搜索了很多,但没有关于这方面的信息。

示例脚本和响应:

代码语言:javascript
复制
PS C:\>Get-AzStorageFileHandle -ShareName "mysharename" -Recursive | Sort-Object ClientIP,OpenTime 

HandleId    Path                  ClientIp       ClientPort OpenTime             LastReconnectTime FileId               ParentId             SessionId          
--------    ----                  --------       ---------- --------             ----------------- ------               --------             ---------          
28506980357                       104.46.105.229 49805      2019-07-29 08:37:36Z                   0                    0                    9297571480349046273
28506980537 dir1                  104.46.105.229 49805      2019-07-30 09:28:48Z                   10376363910205800448 0                    9297571480349046273
EN

回答 1

Stack Overflow用户

发布于 2019-10-22 14:43:22

经过快速研究和本地测试,我相信该命令返回的" path“就是您要查找的文件或目录路径。文件句柄不仅适用于文件,也适用于文件夹。这里的诀窍是文件的句柄并不总是保持不变。事实上,大多数应用程序在打开文件后立即释放文件句柄,如记事本。因此,当您运行该命令时,大多数情况下,您只能看到文件夹的句柄,而不是文件的句柄。

为了验证这一点,我使用以下代码进行了测试:

代码语言:javascript
复制
        static void Main(string[] args)
        {
            string path = args[0];
            var file=File.Open(path, FileMode.OpenOrCreate);
            Console.WriteLine("Press any key to release the handle");
            Console.ReadKey();
            file.Close();
        }

当执行File.Open时,进程持有句柄,然后我运行Get-AzStorageFileHandle。将显示"test.csv“的句柄:

但是如果你用记事本打开文件,只会显示文件夹的句柄。

无论如何,您可以使用返回的"path“来确定哪个文件正在被其他人持有。

顺便说一下,handle.exe不适用于云环境。您不应该使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58186835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档