How can I query NTFS disk quotas in C#?

2019-07-16 20:55发布

问题:

I need to be able to find, for all users on a given remote machine, those users' disk quotas and actual disk usage. I need to be able to do this reporting in a C# application. (Well, technically a DLL plugin for an app I've already built; but that's irrelevant here.)

  • The remote machine is not on the same network, however, the application executing the app is able to supply the credentials.
  • WMI is perfectly acceptable; I just cannot find (after looking for over 3 hours now) the exact incantation needed. (I'm also not a WMI pro; if you post a WMI solution, please frame it in the requisite C#/.NET System.Management.* objects.)

回答1:

The WMI class is Win32_DiskQuota. Edit: I found a VB.NET sample which may help you.

Or you can try to do this using P/Invoke (link goes to the P/Invoke wiki, where you may find some of the signatures). A pointer to start with quotas is the following CodeProject article: http://www.codeproject.com/KB/system/DiskQuota.aspx