0

我正在使用以下命令从 azure xplat cli 创建 Windows VM:

azure network vnet create --location "East US" testnet
azure vm create --vm-name xplattest3 --location "East US" --virtual-network-name testnet --rdp 3389 xplattest3 ad072bd3082149369c449ba5832401ae__Windows-Server-Remote-Desktop-Session-Host-on-Windows-Server-2012-R2-20150828-0350 username SAFEpassword!

创建 Windows VM 后,我想执行一个 powershell 脚本来配置服务器。据我了解,这是通过执行 CustomScriptExtension 来完成的。

我找到了几个 PowerShell 的示例,但没有找到 Xplat cli 的示例。

例如,我想运行以下HelloWorld PowerShell 脚本

New-Item -ItemType directory -Path C:\HelloWorld

阅读文档后,我应该能够通过执行类似这样的操作来运行 CustomExtensionScript(以下命令不起作用):

azure vm extension set xplattest3 CustomScriptExtension Microsoft.Compute 1.4 -i '{"URI":["https://gist.githubusercontent.com/tk421/8b7dd37145eaa8f82e2f/raw/36c11aafd3f5d6b4af97aab9ef5303d80e8ab29b/azureCustomScriptExtensionTest"] }'

我认为问题出在参数-i上。我无法在 Internet 上找到示例。有一些参考资料和文档,例如MSDNGithub,但没有示例。

因此,我的问题是:如何PowerShell在 Azure 中使用创建 Windows VM 后执行脚本xplat cli

请注意,我当前的方法是 a CustomScriptExtension,但任何允许引导配置脚本的方法都将被考虑!

编辑我怎么知道它失败了?

运行命令后azure vm extension ...

  1. xplat cli确认命令已正确执行。
  2. 根据MSDN 文档,该文件夹C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\已创建,但没有脚本下载到C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\{version-number}\Downloads\{iteration}
  3. 文件夹C:\HelloWorld没有创建,说明脚本的内容还没有被执行。
  4. 我找不到任何类型的日志或踪迹来知道发生了什么。有谁知道我在哪里可以找到这些信息?
4

1 回答 1

0

我在阅读 MSDN 文档后使用的参数(The Json)不正确。但是,您可以通过阅读 C# 代码获得正确参数的线索。

最后的命令是:

azure vm extension set xplattest3 CustomScriptExtension Microsoft.Compute 1.4 -i '{"fileUris":["https://macstoragetest.blob.core.windows.net/testcontainername/createFolder.ps1"], "commandToExecute": "powershell -ExecutionPolicy Unrestricted -file createFolder.ps1" }'

此命令成功创建C:\HelloWorld目录。

注意:我决定将脚本上传到 Azure,因为我在帖子和强制性文档中阅读过。但是我刚刚做了一个测试,从 Github 下载原始脚本,它工作正常,所以我猜文档有点过时了。

编辑:我创建了一篇详细的文章,解释了如何在 Azure 中使用 xplat-cli 配置 windows 服务器

于 2015-10-17T08:23:34.677 回答