gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:47:19 26 4
gpt4 key购买 nike

我已经从 azure 存储帐户文件共享中获取了打开的文件句柄,但此信息似乎很难理解哪个进程启动了它或该文件句柄在哪个文件上。

获取文件句柄 https://learn.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 文档和互联网上搜索了很多,但没有这方面的信息。

示例脚本和响应:

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

最佳答案

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

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

        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”的句柄:

enter image description here

但是如果用记事本打开文件,则仅显示文件夹句柄。

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

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

关于azure - 获取有关 Azure 文件共享文件句柄的详细信息 - Get-AzStorageFileHandle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58186835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com