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

Fileserver 2019如何批量关闭除指定用户外的已打开文件

Windows Server 2019 文件服务器定向关闭打开文件方案

运行环境为Fileserver 2019,需求为批量关闭除某一指定用户外所有用户已打开的文件。
原有全量关闭脚本逻辑是遍历net files返回的文件ID逐个执行关闭操作,无法实现用户过滤:

for /f "skip=4 tokens=1" %%a in ('net files') do net files %%a /close

之前尝试单独提取用户名匹配时,因为只取了用户名字段,丢失了同条记录对应的文件ID,无法关联到需要跳过的文件条目;而net session \\<ip> /delete是基于来源IP踢整个会话,同IP多用户场景下会误操作,完全不适用。

注意:所有脚本都需要使用管理员权限运行,否则会因为权限不足无法枚举、关闭打开的文件;不要通过远程PS会话、远程C$共享挂载的方式执行脚本,避免脚本误关闭自身的远程连接导致执行中断。


方案1:原生批处理实现(无额外依赖,直接可用)

net files跳过4行表头后的有效输出行中,第1个token为打开文件的数字ID,第3个token为打开该文件的关联用户名,遍历输出时同时提取两个字段即可直接建立ID和用户名的对应关系,不需要额外做反向关联。
将脚本中KEEP_USER变量的值替换为需要保留的用户名,直接运行即可:

@echo off
set "KEEP_USER=Andrew"
for /f "skip=4 tokens=1,3" %%i in ('net files') do (
    echo %%i| findstr /r "^[0-9]*$" >nul
    if %errorlevel% equ 0 (
        if /i not "%%j"=="%KEEP_USER%" (
            echo 正在关闭文件ID: %%i,对应用户: %%j
            net files %%i /close >nul
        ) else (
            echo 跳过保留用户的打开文件,ID: %%i,用户: %%j
        )
    )
)
echo 操作完成
pause

脚本逻辑说明:

  • tokens=1,3参数同时提取每行的文件ID(存入变量%%i)和用户名(存入变量%%j),同一次遍历直接拿到对应关系
  • 数字ID校验逻辑会自动跳过net files输出末尾的“命令执行成功”这类非文件条目,避免无效ID导致的执行报错
  • /i参数实现用户名大小写不敏感匹配,适配域账号大小写输入不一致的场景
  • 执行过程打印全量操作日志,方便事后核对操作结果

方案2:PowerShell实现(输出更稳定,适合扩展规则)

Windows Server 2019自带PowerShell 5.1环境,可直接调用系统CIM类枚举打开的文件列表,不需要解析命令行文本输出,稳定性更高:

# 配置需要保留的用户名
$keepUser = "Andrew"
# 枚举服务器上所有打开的文件连接
$openFileList = Get-CimInstance -ClassName Win32_ServerConnection -ErrorAction SilentlyContinue
foreach ($fileConn in $openFileList) {
    # 域账号格式为「域名\用户名」,截取反斜杠后的用户名部分做匹配
    $currentUser = $fileConn.UserName.Split('\')[-1]
    if ($currentUser -ine $keepUser) {
        Write-Host "关闭文件ID: $($fileConn.Id),对应用户: $currentUser"
        $fileConn | Remove-CimInstance
    } else {
        Write-Host "跳过保留用户的文件,ID: $($fileConn.Id),用户: $currentUser"
    }
}
Write-Host "操作完成"

内容的提问来源于stack exchange,提问作者AndreaTaroni86

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:48:28