解决gopsutil/disk报 Access is denied的问题

这篇具有很好参考价值的文章主要介绍了解决gopsutil/disk报 Access is denied的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用gopsutil/disk库编写脚本,下列代码执行报错Access is denied:

stats, err := disk.IOCounters("C:")
		if err != nil {
			fmt.Println("Error:", err)
			return

切换到管理员模式仍然报错,开始排查。

1 排查到是引用库中的这部分报错

h, err := windows.CreateFile(syscall.StringToUTF16Ptr(szDevice), 0, windows.FILE_SHARE_READ|windows.FILE_SHARE_WRITE, nil, windows.OPEN_EXISTING, 0, 0)
			if err != nil {
				if err == windows.ERROR_FILE_NOT_FOUND {
					continue
				}
				return drivemap, err
			}

2 打印,发现是走到 M盘时候报错,怀疑是M盘的问题,因为我的电脑没有M盘

\\.\C:
\\.\D:
\\.\M:
Error: Access is denied.

3 查看磁盘列表,发现逻辑分区,比实际分区多出一个M,可以确定是这个导致的

> wmic logicaldisk get caption
Caption
C:
D:
M:

Get-WmiObject Win32_Volume | Select-Object DriveLetter, DeviceID, FileSystem, Label

DriveLetter DeviceID                                          FileSystem Label
----------- --------                                          ---------- -----
C:          \\?\Volume{865b8944-eee6-4637-9188-1ac95c53f5c2}\ NTFS       Windows
            \\?\Volume{55a26f03-6b71-4efd-9176-3ae0567f14b5}\ NTFS       WinRE_DRV
D:          \\?\Volume{5824d226-b7e1-4721-964c-4fcb8ab70d79}\ NTFS       Data
            \\?\Volume{31b8e965-f7e1-47c7-9d3a-554a3455c560}\ FAT32      SYSTEM

文章来源地址https://www.toymoban.com/news/detail-609663.html

到了这里,关于解决gopsutil/disk报 Access is denied的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包