簡體   English   中英

有沒有辦法獲取掛載為NTFS文件夾的iSCSI驅動器上的可用空間

[英]Is there a way to get the free space on an iSCSI drive mounted as a NTFS folder

我有一堆作為NFSAN文件夾安裝的iSCSI驅動器( 作為NFTS文件夾 ,以避免耗盡所有驅動器號),我想獲得有關其可用空間的信息。 根本原因是當空間低於特定閾值時發出警告,這是計划任務的一部分,該任務還會執行其他一系列檢查。

有沒有辦法做到這一點,最好使用C#(通過WMI,P / Invoke或其他方法)? 當然,任何腳本解決方案也都很棒,因為無論如何我都可以調用它(PowerShell)? 我首先嘗試了樂觀路線,使用的DriveInfo使用此類路徑進行了初始化,但它只是返回有關根卷而不是裝載的信息。 我還嘗試枚舉Win32_DiskPartitionWin32_LogicalDiskWin32_MappedLogicalDisk類的東西,但根本沒有得到這些驅動器。

正如@FrédéricHamidi解釋的那樣,WMI存儲卷提供程序中的Win32_Volume類顯示有關已安裝卷的正確空間信息。

使用示例(C#)類似於:

// iSCSI drive mounted in a NTFS folder
var ntfsPath = @"x:\iscsi\volume";

// it's good to know that backspaces must be escaped in WMI queries
var cmd = string.Format(
    "SELECT * FROM Win32_Volume WHERE Name LIKE '{0}%'", 
    ntfsPath.Replace(@"\", @"\\"));

using (var searcher = new ManagementObjectSearcher(cmd))
{
    foreach (ManagementObject queryObj in searcher.Get())
    {
        var name = (string)queryObj["Name"];
        var freeSpaceInBytes = (ulong)queryObj["FreeSpace"];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM