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

如何用PowerShell将Azure VM文件复制到Blob存储容器指定文件夹?

PowerShell命令:从Azure VM按文件名复制文件到Blob存储指定文件夹

前置准备

  • 确保Azure VM已安装Az.Storage模块,未安装则执行:
    Install-Module -Name Az.Storage -Force -AllowClobber
    
  • 若使用VM托管身份连接Azure,需先为VM分配存储账户的Blob数据参与者权限;若用账户登录,执行Connect-AzAccount完成身份验证。

核心脚本

# 配置基础参数
$storageAccountName = "你的存储账户名称"
$containerName = "containerName"
$localFileDir = "VM本地文件目录(如C:\UserReports\)"

# 获取目标目录下的所有文件
$targetFiles = Get-ChildItem -Path $localFileDir -File

# 遍历文件并按规则上传到指定Blob子路径
foreach ($file in $targetFiles) {
    # 根据文件名匹配目标Blob路径
    switch -Wildcard ($file.Name) {
        "*ReportA*" { $blobSubPath = "UserA/Report/A/$($file.Name)" }
        "*ReportB*" { $blobSubPath = "UserA/Report/B/$($file.Name)" }
        default {
            Write-Host "文件 $($file.Name) 不匹配规则,跳过上传"
            continue
        }
    }

    # 获取存储账户上下文
    $storageCtx = (Get-AzStorageAccount -Name $storageAccountName).Context

    # 执行文件上传
    Set-AzStorageBlobContent -Context $storageCtx `
                              -Container $containerName `
                              -File $file.FullName `
                              -Blob $blobSubPath `
                              -Force
}

自定义说明

  • 可根据实际文件名规则修改switch语句中的匹配逻辑,如需正则匹配可替换为switch -Regex
  • -Force参数会覆盖Blob中同名文件,无需覆盖可移除该参数
  • 批量处理大量文件时,可添加-ErrorAction SilentlyContinue忽略单个文件上传错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:39:58