Set-AzStorageBlobContent 引发异常:路径中存在非法字符

2024-03-28

我正在将 Azure 部署脚本从 AzureRM 迁移到 Az,新模块似乎无法打开文件。

有任何想法吗?

我尝试用正斜杠替换反斜杠; 我什至从脚本所在的文件夹中调用它,所以我不需要向它传递完整的文件名,它会正确地将其解析为全名,但它仍然无法打开它。

PS C:\dev\pq\service\scripts\azure\NestedTemplates> Set-AzStorageBlobContent -Container "florin-container" -Context $storageAccount.Context -File ApplicationInsights.json
Set-AzStorageBlobContent : Failed to open file C:\dev\pq\service\scripts\azure\NestedTemplates\ApplicationInsights.json: Illegal characters in path..
At line:1 char:1
+ Set-AzStorageBlobContent -Container "florin-container" -Context $stor ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzStorageBlobContent], TransferException
    + FullyQualifiedErrorId : TransferException,Microsoft.WindowsAzure.Commands.Storage.Blob.SetAzureBlobContentCommand

2019 年 2 月 13 日更新:

我在更大的脚本套件之外创建了一个非常简单的测试用例场景,并且可以非常轻松地重现问题。我将一个名为 test.json 的文件放在 c:\ 中,它包含一个空的 json 对象,只有大括号,如下面的输出中所示。我正在使用 AzureRM Alias 场景:

PS C:\> type test.json
{}
PS C:\> type C:\test.json
{}
PS C:\> Enable-AzureRmAlias
PS C:\> $sa = Get-AzureRmStorageAccount -ResourceGroupName florin-rg -Name florinsa
PS C:\> Set-AzureStorageBlobContent -Container florin-container -Context $sa.Context -File test.json -Blob test
Set-AzureStorageBlobContent : Failed to open file C:\test.json: Illegal characters in path..
At line:1 char:1
+ Set-AzureStorageBlobContent -Container florin-container -Context $sa. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : CloseError: (:) [Set-AzStorageBlobContent], TransferException
+ FullyQualifiedErrorId : TransferException,Microsoft.WindowsAzure.Commands.Storage.Blob.SetAzureBlobContentCommand

PS C:\>

阅读了来自的讨论后https://github.com/Azure/azure-powershell/issues/8473 https://github.com/Azure/azure-powershell/issues/8473(归功于上面的评论)并点击链接https://blogs.msdn.microsoft.com/jeremykuhne/2016/06/09/new-net-path-handling-sneak-peek/ https://blogs.msdn.microsoft.com/jeremykuhne/2016/06/09/new-net-path-handling-sneak-peek/我能够解决我的机器上的问题。

第二个链接文档说“删除一个名为powershell.exe.config in C:\Windows\System32\WindowsPowerShell\v1.0具有以下内容”。我碰巧已经拥有该文件,因此我将内容添加到现有文件中。

<configuration>
  <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false" />
  </runtime>
</configuration>

重新启动 PowerShell 后,我现在能够成功执行我的脚本。我更新到之后就出现这个问题了Az模块并删除了AzureRm模块。这有望节省其他人追逐链接的时间。

UPDATE 0

也可以通过修改注册表来解决问题。

$registryPath = "HKLM:\SOFTWARE\Microsoft\.NETFramework\AppContext"
New-Item -Path $registryPath
New-ItemProperty -Path $registryPath -Name "Switch.System.IO.UseLegacyPathHandling" -Value "false"

然后重新启动 PowerShell 实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Set-AzStorageBlobContent 引发异常:路径中存在非法字符 的相关文章

随机推荐

  • mysql 复制 - 一个数据库上的从服务器

    我找不到我的问题的答案 我有 2 台 mysql 服务器 主服务器 从服务器 现在我想添加另一个从服务器 但我有其他网站在该服务器上运行 我可以只复制一个数据库吗 是的你可以 如果你只想从master复制一个数据库 你可以设置replica
  • 如何将这些邮政编码导入到标准化表中?

    我有一个 CSV 其中包含一些数据 如下所示 A0A0A0 48 5674500000 54 8432250000 Gander NL A0A1A0 47 0073470000 52 9589210000 Aquaforte NL A0A1
  • Mac OSX 上 IntelliJ Idea 中区分大小写的文件

    我的java项目有名称相同但大小写不同的文件 Test java test java 我在 Mac 上设置了区分大小写的文件系统 并且能够通过 CLI 查看 编辑它们 但是 Intellij Idea 并不认为它们不同 编译失败 如何修复
  • 如何使用 SuperObject 序列化包含点(例如 IP 地址)的 JSON 密钥?

    我正在尝试保存 JSON 其中 IP 是关键 预期的 JSON 结果是 SnmpManagers 10 112 25 235 162 Delphi超级对象代码 const IpAddr 10 112 25 235 Port 162 var
  • 删除字符串时堆损坏

    这是我的代码 std string readString int strLen Read
  • 使用 Gradle 运行多个 Spring Boot 微服务

    我正在开发一个使用 Gradle 构建的 Spring Boot 应用程序 我们有多个微服务作为该应用程序的子项目 我正在尝试使用 Spring Boot 的 bootRun 任务从命令行使用单个 bootRun 命令运行应用程序和所有微服
  • Android 模拟器停止显示屏幕键盘?

    我在 eclipse 中使用 AVD 管理器 是否有一个设置可以用来在输入字段获得焦点时停止显示屏幕键盘 我尝试了硬件键盘 true 但模拟器似乎根本没有启动 S 姆斯托伊克的回答 https stackoverflow com a 541
  • 如何调试CompletableStage死锁?

    我最近遇到的最困难的调试问题是异步操作之间的死锁 例如 给定两个CompletionStage链 其中第一个链调用依赖于第二个链的完成的方法 第二个链调用依赖于第一个链的完成的方法 这在现实生活中并不那么明显 因为依赖关系往往是隐藏的 有时
  • OTRS:使用 wsdl 生成 Java SEI 时出错

    Windows 7 Java 7 OTRS appliannce 我正在尝试使用 wsimport 来生成带有 wsdl 文件的 Java SEIhttps raw githubusercontent com OTRS otrs maste
  • C 中 (*p)[8] 和 *p[8] 有什么区别?

    两个声明如下 int p 8 int p 8 第一个是single指向 8 个整数的数组的指针 而第二个是array8 个指针 每个指针指向一个整数 如果你只是踢起来cdecl 对于这类事情来说非常棒 pax cdecl Type help
  • 如何使用 laravel-mix 将 mdbootstrap vue 加载到 Laravel 5 中?

    我正在尝试将 mdbootstrap vue 安装到 Laravel 5 6 项目中 但我真的不明白我该怎么做 如果有人能给我一些教程 那就太好了 试试这个 已更新 假设你已经安装了laravel 转到您的项目目录并执行以下操作 npm i
  • 删除 Ember 数据中 POST/PUT 操作的 JSON 根元素

    我正在使用一个 Web 服务 该服务在 POST PUT 动词中需要如下所示的 JSON id CACTU companyName Cactus Comidas para llevar contactName Patricio Simpso
  • 字典中的差异

    我试图找出字典中的差异 是否添加或删除了某些内容以及从什么内容中添加或删除了某些内容 这是一个添加值的情况 original 0 None 1 False 2 16 new 0 None 1 False 2 2 16 difference
  • 从构建中获取 BuildAgent 信息

    我有一个 IBuildDetail 变量 其中包含我需要的构建信息 好的 但是当我检查属性 BuildAgent 时 它显示 build BuildAgent 抛出了类型为 System NotImplementedException 的异
  • Windows CMD 中的创建日期

    使用 Windows 批处理 此函数返回文件的创建日期 creationDate set CompareFile 1 echo CompareFile for f skip 5 tokens 1 2 4 5 delims a in dir
  • 如何获取内存中对象的数据集?

    有谁知道与泛型和 RTTI 一起使用的 TDataset 后代 以便我可以编写这样的代码 并在 GUI 中使用数据感知组件 ds TDataset
  • 如何使用 Clap Args 的内部库 Enum

    我目前正在研究一个铁锈端口 https github com JuxhinDB twistrs某证券的tool https github com elceef dnstwist 与 Rust 的指南一致 我想将核心库隔离到自己的包中 以便我
  • 如何以编程方式删除 Groovy 中的默认导入?

    默认情况下 一些包是在 Groovy 类中导入的 我知道您可以使用 ImportCustomizer 添加新的 但有没有一种方法可以以编程方式删除它们 预先感谢您的回答 不 如果你查看代码 你会发现标准进口 http groovy code
  • 使用java库访问谷歌云存储遇到“403禁止”

    我正在尝试在 scala 中使用谷歌云存储 java 库来列出存储桶中的项目 val credential new GoogleCredential Builder setTransport GoogleNetHttpTransport n
  • Set-AzStorageBlobContent 引发异常:路径中存在非法字符

    我正在将 Azure 部署脚本从 AzureRM 迁移到 Az 新模块似乎无法打开文件 有任何想法吗 我尝试用正斜杠替换反斜杠 我什至从脚本所在的文件夹中调用它 所以我不需要向它传递完整的文件名 它会正确地将其解析为全名 但它仍然无法打开它