无法使用 Azure 自定义脚本扩展复制文件

Unable to copy files using Azure Custom script extension

我想在 Azure 虚拟机预配后安装 NAGIOS 等工具。我想使用 "Azure Custom Script" 来安装工具。下面是我正在使用的代码。

作为自定义脚本发送的 Powershell 脚本:

new-item "C:\newfile.txt" -Type file
copy-item -Path "\xxx.xx.x.x\c$\Nagios for windows" -Destination "C:\nagios" -Recurse
Start-Process "c:\nagios\NSCP-0.4.3.143-x64.msi" /qn -Wait

问题: 第一行代码正在运行(我将其作为健全性检查以确认脚本确实在运行)。但是,第二和第三行不起作用(最重要的部分)。我也没有在日志中看到任何错误。有人可以帮帮我吗?

作为解决方法,您可以将文件上传到 Azure 存储帐户(Blob、容器),然后使用 PowerShell 下载它。

您可以这样创建容器:

然后通过 Azure 门户将文件上传到那个 blob。

然后你可以使用 PowerShell 命令下载它:

Invoke-WebRequest -Uri https://jasondisk2.blob.core.windows.net/msi/01.PNG -outfile 'C:\'

您可以将此命令添加到 Azure 自定义脚本扩展。

希望对您有所帮助。

刚刚遇到这个。

为了加深故障排除方法,我建议您尝试 运行 您的脚本作为 "system" 帐户。您可以使用 psexec tool from the sysinternal suite

您可以从提升的 cmd.exe(运行 作为管理员)和 运行 您的脚本作为 "system" 使用 "psexec /s powershell" 启动新的 powershell 会话。

我假设您会看到下载失败是因为缺少对跳转主机上的 c$ 文件共享的 "system" 权限。

然后您可以继续在 "Everyone" 可以访问的跳转主机上创建一个新共享,并尝试从那里下载 Nagios 软件。避免 share/folder/filename 中的任何空格和特殊字符也很好,因为它总是在脚本级别上使 thinks 变得不必要 "complex"。