Powershell 脚本适用于服务器,但不适用于 cloudformation cfn-init 函数
Powershell script works on server but not with cloudformation cfn-init functions
我必须通过 cloudformation 脚本设置 windows ec2 服务器。
我有一些 powershell 脚本,可以添加标签并以特定格式格式化磁盘驱动器。
问题是当从 cloudformation cfn 函数调用此 powershell 脚本时,它会给出类似(来自 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
但是当同一个脚本在同一个 windows ec2 的 powershell 控制台中直接 运行 时,它 运行 完全没问题。我将这个 poweshell 脚本上传到 s3 存储桶,我在 cloudformation 中获取它并将它保存在 ec2 实例上。
这是我的完整脚本。 https://gist.github.com/rturam/c969e161b4089ac62d89b8ba5d1d1612
我可以自己解决这个问题。从网站复制粘贴到编辑器时出现问题。粘贴时会出现一些奇怪的字符,并且在编辑器中看不到。
诀窍就是在 PowerShell CLI 中执行 cat <file_name>
。如果有的话,它会显示外来字符。
我必须通过 cloudformation 脚本设置 windows ec2 服务器。 我有一些 powershell 脚本,可以添加标签并以特定格式格式化磁盘驱动器。
问题是当从 cloudformation cfn 函数调用此 powershell 脚本时,它会给出类似(来自 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
但是当同一个脚本在同一个 windows ec2 的 powershell 控制台中直接 运行 时,它 运行 完全没问题。我将这个 poweshell 脚本上传到 s3 存储桶,我在 cloudformation 中获取它并将它保存在 ec2 实例上。
这是我的完整脚本。 https://gist.github.com/rturam/c969e161b4089ac62d89b8ba5d1d1612
我可以自己解决这个问题。从网站复制粘贴到编辑器时出现问题。粘贴时会出现一些奇怪的字符,并且在编辑器中看不到。
诀窍就是在 PowerShell CLI 中执行 cat <file_name>
。如果有的话,它会显示外来字符。