【问题标题】:Unable to format a drive using ManagementObject from Non-Admin account无法使用非管理员帐户中的 ManagementObject 格式化驱动器
【发布时间】:2019-04-18 07:02:46
【问题描述】:

我有以下代码来格式化 USB 驱动器。代码可以在管理员帐户下正常工作,但如果我使用非管理员帐户运行 exe,它会返回 3(拒绝访问)。

我想在非管理员模式下格式化驱动器。有什么帮助吗? 我访问了这个链接https://social.msdn.microsoft.com/Forums/en-US/1e192745-9d58-4507-93f0-ceacbc0cde96/wmi-win32volume-format-method-returns-access-denied?forum=windowsgeneraldevelopmentissues,但没有帮助

ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"select * from Win32_Volume WHERE DriveLetter = '" + driveLetter + "'");
foreach (ManagementObject vi in searcher.Get())
{
   var result = vi.InvokeMethod("Format", new object[] { fileSystem, quickFormat, clusterSize, label, enableCompression });
   if (Convert.ToInt32(result) != 0)
   {
      throw new Exception("Error while formating drive");
   }
}

【问题讨论】:

    标签: c# .net windows format wmi


    【解决方案1】:

    您是否尝试过“右键单击>兼容性>更改所有用户设置>以管理员身份运行”? 如果这是解决方案,您可以使用代码执行此操作。

    大概,这个问题-答案,可以回答你的问题。 How do I force my .NET application to run as administrator?

    【讨论】:

    • 不,我不想以管理员身份运行我的应用程序。它只能在普通用户帐户上运行。
    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2017-03-13
    • 2014-07-27
    相关资源
    最近更新 更多