解决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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Access is denied" 是一个 Windows 操作系统的错误提示,意思是当前用户没有权限访问某个文件、文件夹、设备或某个操作。解决问题的方法可以有以下几种: 1. 以管理员身份运行程序或命令行工具:如果你试图访问某个需要管理员权限的文件或操作,可以尝试右键点击程序或命令行工具并选择“以管理员身份运行”。 2. 更改文件或文件夹的权限:如果你试图访问的是某个文件或文件夹,可以尝试更改其权限。右键点击该文件或文件夹,选择“属性”-> “安全”,然后在“编辑”中更改权限。 3. 检查防病毒软件或防火墙设置:有时,防病毒软件或防火墙可能会阻止某些操作。可以尝试暂时禁用这些软件或调整其设置。 4. 检查系统错误:如果以上方法都不起作用,可能是系统文件或注册表出现了错误。可以尝试使用系统修复工具修复错误。 需要根据具体情况采取相应的措施,如果不确定该如何解决,可以搜索相关的解决方案或寻求专业人士的帮助。 ### 回答2: "Access is denied" 是一个常见的错误信息,它意味着用户没有足够的权限来访问或执行特定的操作。这个问题通常在计算机系统、网络、文件夹或程序中出现。 要解决Access is denied问题,你可以尝试以下几种方法: 1. 确认你拥有足够的权限:检查你是不是拥有执行该操作所需的足够权限。如果你是计算机或网络管理员,你可以通过更改用户权限或添加到特定用户组来解决这个问题。 2. 使用管理员帐户运行程序:如果你已经是计算机管理员,以管理员身份运行程序或访问文件夹可以解决权限问题。右键点击程序或文件夹,选择“以管理员身份运行”或“使用管理员权限打开”。 3. 更改文件或文件夹的权限:检查文件或文件夹的权限设置。右键点击该文件或文件夹,选择“属性”,然后切换到“安全”选项卡。确保你有足够的权限来访问或执行操作。你可以添加自己的用户账户并赋予相应的权限。 4. 检查防火墙或安全软件设置:有时防火墙或安全软件可能阻止某些操作。你可以暂时关闭你的防火墙或安全软件来验证问题是否由它们引起。如果是,可以修改防火墙或安全软件设置来允许该操作。 5. 与系统管理员或技术支持联系:如果上述方法都无法解决问题,你可以联系系统管理员或相关技术支持。他们可能有更深入的了解和专业的解决方案,可以帮助你解决这个问题。 总之,解决Access is denied问题的方法取决于具体的场景和操作环境。通过检查权限、更改文件或文件夹的权限、调整防火墙或安全软件设置以及寻求专业支持,你应该能够解决这个问题。 ### 回答3: "Access is denied"(访问被拒绝)是一个常见的错误消息,通常在你试图访问受限资源时出现。这个问题的根源通常是权限设置或安全设置。 要解决"Access is denied"的问题,以下是一些可能的解决方法: 1. 确认你是否拥有访问该资源的权限。如果你是在使用受限制的用户账户尝试访问该资源,尝试使用拥有更高权限的账户进行访问。 2. 检查文件或文件夹的权限设置。右键点击该文件或文件夹,选择"属性",然后切换到"安全"选项卡。确保你的账户有足够的权限来访问该资源。 3. 如果你正在尝试访问网络共享文件夹或打印机,确保你拥有正确的网络权限和凭据。如果你是在公司或学校的网络中,可能需要与网络管理员联系来获取访问权限。 4. 检查防火墙或安全软件的设置。有时候,安全软件可能会阻止你访问某个资源或网站。确保相应的应用程序或端口被允许通过防火墙。 5. 尝试以管理员身份运行程序。对于某些程序或操作,需要以管理员身份运行才能获得足够的权限来访问资源。 6. 重启电脑。有时候,一些权限问题可能是由于临时的系统错误引起的,重启电脑可能会解决这些问题。 如果以上方法都无法解决问题,建议咨询计算机技术支持或网络管理员的帮助,他们可以进一步诊断和解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值