You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本或命令行设置远程驱动器配额?

如何通过脚本或命令行设置远程驱动器配额?

我完全懂你现在的困扰——每次在文件管理器里等远程共享的配额条目加载完,简直是浪费时间,而且fsutil又只能管本地卷,确实有点棘手。不过别担心,咱们可以用PowerShell结合CIM/WMI,或者WMIC命令行工具来搞定远程磁盘配额的设置,效率高多了,而且不用等那些条目加载。

方案一:用PowerShell(推荐,更灵活)

PowerShell的CIM cmdlets可以轻松远程访问Windows服务器的磁盘配额配置,前提是你有足够的权限(域管理员或目标服务器的本地管理员权限),且远程服务器开启了WMI服务、防火墙允许WMI通信。

1. 查询远程服务器的现有配额信息

先确认目标卷的配额状态,以及是否已有目标用户的配额条目:

# 替换成你的远程服务器名和卷路径(注意是服务器本地的路径,比如C:\)
$serverName = "你的远程服务器名"
$volumePath = "C:\"

# 查询该卷的所有配额条目
Get-CimInstance -ComputerName $serverName -ClassName Win32_DiskQuota -Filter "VolumePath='$volumePath'"

2. 创建或修改用户配额

比如给域用户DOMAIN\张三设置10GB的配额上限,9GB的警告阈值:

$serverName = "你的远程服务器名"
$volumePath = "C:\"
$domainName = "你的AD域名"
$userName = "张三"

# 构建用户账户对象
$userAccount = New-CimInstance -ClassName Win32_UserAccount -Property @{Domain=$domainName;Name=$userName} -ClientOnly

# 查找是否已有该用户的配额条目
$quotaEntry = Get-CimInstance -ComputerName $serverName -ClassName Win32_DiskQuota -Filter "VolumePath='$volumePath' AND User='$($userAccount.Path)'"

if ($quotaEntry) {
    # 如果已有条目,修改配额值
    $quotaEntry | Set-CimInstance -Property @{
        QuotaLimit = 10GB  # 配额上限,支持GB/MB等单位
        QuotaThreshold = 9GB  # 警告阈值
        Disable = $false  # 启用配额
    }
    Write-Host "已更新用户$userName的配额"
} else {
    # 如果没有条目,创建新的配额
    New-CimInstance -ComputerName $serverName -ClassName Win32_DiskQuota -Property @{
        VolumePath = $volumePath
        User = $userAccount.Path
        QuotaLimit = 10GB
        QuotaThreshold = 9GB
        Disable = $false
    }
    Write-Host "已为用户$userName创建新配额"
}

方案二:用WMIC命令行工具

如果你习惯用命令行,WMIC也能实现远程配额管理,语法更简洁,但灵活性稍差。

1. 查询远程配额信息

# 替换服务器名和卷路径(注意路径里的反斜杠要写两个)
wmic /node:"你的远程服务器名" diskquota where VolumePath='C:\\' get /all

2. 创建用户配额

比如给DOMAIN\张三设置10GB配额(字节数计算:10GB = 1010241024*1024 = 10737418240):

wmic /node:"你的远程服务器名" diskquota create VolumePath='C:\\',User='DOMAIN\\张三',QuotaLimit=10737418240,QuotaThreshold=9663676416,Disable=FALSE

关键注意事项

  • 权限要求:运行脚本/命令的账户必须拥有远程服务器的管理员权限,以及AD中读取用户信息的权限。
  • 服务与防火墙:远程服务器要确保Windows Management Instrumentation服务处于运行状态,防火墙允许WMI(默认域环境下已允许,跨域可能需要手动配置规则)。
  • 卷配额启用:目标卷必须已经启用了磁盘配额功能,可以远程执行fsutil quota query C:来确认,或者用PowerShell远程启用:
    Invoke-Command -ComputerName $serverName -ScriptBlock { fsutil quota enforce C:\ }
    

备注:内容来源于stack exchange,提问作者The KNVB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:13:01