我有以下代码来格式化USB驱动器。代码可以与Admin帐户一起正常运行,但是如果我使用Non Admin帐户运行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");
}
}
答案 0 :(得分:0)
您是否尝试过“右键单击>兼容性>更改所有用户设置>以管理员身份运行”? 如果这是解决方案,则可以使用代码来实现。
这个问题-答案可能可以回答您的问题。 How do I force my .NET application to run as administrator?