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

如何用PowerShell批量修改多个用户目录下DefaultPrint.ini的配置值

错误原因
  • 路径拼接逻辑位置错误:你将$IniPath的生成逻辑写在了foreach循环之外,当$User变量为多用户数组时,脚本会直接将整个数组的所有用户名拼接为一个字符串生成路径,不会在循环中逐用户生成独立路径。
  • 变量重名冲突:存储多用户列表的变量和循环迭代变量都使用了$User命名,执行时会出现变量值覆盖的逻辑问题。
修复后脚本

场景1:直接定义用户数组

# 定义用户列表数组,避免和循环迭代变量重名
$userList = "Max","John","Sophia"

foreach ($user in $userList)
{
    # 路径拼接移到循环内部,逐用户生成独立路径
    $iniFile = "\\Network1\Home\$user\DefaultPrint.ini"
    
    # 可选路径校验,避免用户目录不存在时报错
    if (Test-Path -Path $iniFile) {
        # 加-Raw参数一次性读取全文件,替换效率更高
        $iniText = Get-Content -Path $iniFile -Raw
        $newText = $iniText.Replace("Old_Priter","New_Printer")
        Set-Content -Path $iniFile -Value $newText -Force
        Write-Host "已完成用户 $user 的配置修改"
    } else {
        Write-Warning "用户 $user 的配置文件不存在,路径:$iniFile"
    }
}

场景2:从CSV文件导入用户名

仅需替换用户列表定义行即可,其余逻辑和上述脚本一致:

# 要求CSV文件第一列表头为User,每行存储一个用户名
$userList = (Import-Csv -Path .\Users.csv).User
额外注意事项
  • 原脚本中替换的源字符串为Old_Priter,存在拼写偏差,如果你实际需要替换的是Old_Printer请自行修正拼写
  • 批量执行前建议先选取1-2个测试用户验证修改效果,避免批量操作出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:06:03