我有下面的代码格式化一个USB驱动器。使用Admin帐户可以很好地运行代码,但如果我使用非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");
}
}发布于 2019-04-18 16:06:22
您是否尝试过"Right Click> Compatibility> Change All User Settings> Run As Administrator"?如果这就是解决方案,您可以使用代码完成此操作。
或许,这个问答可以回答你的问题。How do I force my .NET application to run as administrator?
https://stackoverflow.com/questions/55740715
复制相似问题