Powershell脚本适用于服务器,但不适用于cloudformation cfn-init函数

时间:2017-10-27 13:48:51

标签: windows powershell amazon-web-services amazon-cloudformation cloud-init

我必须通过cloudformation脚本设置windows ec2服务器。 我有一些powershell脚本,它以特定的格式添加标签和格式化磁盘驱动器。

问题是当这个powershell脚本从cloudformation cfn函数调用时,它会给出错误(来自LOGS)

a-label-format-drives-sql output: At C:\cfn\scripts\Label-and-Format-drives.ps1:44 char:35
+     $ErrorActionPreference = "Stop"
+                                   ~
The string is missing the terminator: ".
At C:\cfn\scripts\Label-and-Format-drives.ps1:36 char:5
+     {
+     ~
Missing closing '}' in statement block.
At C:\cfn\scripts\Label-and-Format-drives.ps1:27 char:19
+   $LablenFormatPs={
+                   ~
Missing closing '}' in statement block.
At C:\cfn\scripts\Label-and-Format-drives.ps1:19 char:5
+ try {
+     ~
Missing closing '}' in statement block.
At C:\cfn\scripts\Label-and-Format-drives.ps1:64 char:1
+ 
The Try statement is missing its Catch or Finally block.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

但是当同一个脚本直接在PowerShell控制台中运行在同一个窗口ec2中时,它运行得非常好。我将此poweshell脚本上传到s3存储桶中,我在cloudformation中将其保存并保存在ec2实例上。

这是我的完整脚本。 https://gist.github.com/rturam/c969e161b4089ac62d89b8ba5d1d1612

1 个答案:

答案 0 :(得分:0)

我自己能够解决这个问题。从网站到编辑器的复制粘贴存在问题。粘贴时,有一些奇怪的角色出现,在编辑器中无法查看。 诀窍就是在PowerShell CLI中执行index.html。如果有的话,它会显示外国字符。