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

如何将实现网络驱动器映射与打印机批量添加的VBScript脚本转换为PowerShell脚本?

VBScript 到 PowerShell 的转换脚本

下面是完全复刻原VBScript功能的PowerShell版本,我给每部分都加了注释,方便你对应原逻辑理解:

# 对应原VBS的on error resume next,让脚本遇到错误时继续执行
$ErrorActionPreference = 'SilentlyContinue'

# ---------------------- 映射网络驱动器部分 ----------------------
# 用哈希表整理驱动器映射规则,比原VBS的重复代码更简洁易维护
$driveMappings = @{
    'Z' = '\\ptfg-fs-005p\204ISShare'
    'Y' = '\\108arw-fs-02\global'
    'K' = '\\108arw-fs-02\apps'
}

foreach ($drive in $driveMappings.GetEnumerator()) {
    # 检查目标驱动器是否已存在
    if (-not (Get-PSDrive -Name $drive.Key -ErrorAction SilentlyContinue)) {
        # 映射网络驱动器,-Persist参数会让驱动器在重启后保留,不需要持久化的话可以去掉这个参数
        New-PSDrive -Name $drive.Key -PSProvider FileSystem -Root $drive.Value -Persist | Out-Null
    }
}

# ---------------------- 映射网络打印机部分 ----------------------
$printerBasePath = '\\ptfg-mp-001v\204isispcl000'
# 对应原VBS的数组,存储需要拼接的打印机后缀数字
$printerSuffixes = @('3','4','5','6','7','8')

foreach ($suffix in $printerSuffixes) {
    $fullPrinterPath = $printerBasePath + $suffix
    # 添加打印机连接
    Add-Printer -ConnectionName $fullPrinterPath
}

额外说明:

  • 我把原VBS里重复的驱动器检查逻辑改成了哈希表循环,后续要新增驱动器映射的话,直接在$driveMappings里加键值对就行,不用重复写判断代码
  • 如果不需要驱动器持久化(重启后自动消失),请去掉New-PSDrive里的-Persist参数
  • Add-Printer命令需要PowerShell 5.1及以上版本,若你用的是更老旧的PowerShell版本,可以替换成兼容命令:rundll32 printui.dll,PrintUIEntry /in /n"$fullPrinterPath"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:28:13