Powershell &引用;不能对空值表达式调用方法";在使用ansible时;win“U shell”;模块

Powershell &引用;不能对空值表达式调用方法";在使用ansible时;win“U shell”;模块,powershell,ansible,Powershell,Ansible,我使用ansible win_shell模块在windows主机上运行以下命令,但出现错误“您不能对空值表达式调用方法” 命令:- CircleCI作业失败,出现以下错误 amazon-ebs: "cmd": "$ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"dev-asg-v2\").Instances | findstr \"InstanceId InService\" $InstanceId=(echo $ASG) | fi

我使用ansible win_shell模块在windows主机上运行以下命令,但出现错误“您不能对空值表达式调用方法”

命令:-

CircleCI作业失败,出现以下错误

amazon-ebs:     "cmd": "$ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"dev-asg-v2\").Instances | findstr \"InstanceId InService\" $InstanceId=(echo $ASG) | findstr 'InstanceId' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).replace(' ','')",
    amazon-ebs:     "delta": "0:00:12.531289",
    amazon-ebs:     "end": "2020-02-12 12:12:35.640112",
    amazon-ebs:     "msg": "non-zero return code",
    amazon-ebs:     "rc": 1,
    amazon-ebs:     "start": "2020-02-12 12:12:23.108822",
    amazon-ebs:     "stderr": "You cannot call a method on a null-valued expression.\r\nAt line:1 char:291\r\n+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...\r\n+                                                  ~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException\r\n    + FullyQualifiedErrorId : InvokeMethodOnNull\r\n \r\nYou cannot call a method on a null-valued expression.\r\nAt line:1 char:65\r\n+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...\r\n+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException\r\n    + FullyQualifiedErrorId : InvokeMethodOnNull",
    amazon-ebs:     "stderr_lines": [
    amazon-ebs:         "You cannot call a method on a null-valued expression.",
    amazon-ebs:         "At line:1 char:291",
    amazon-ebs:         "+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...",
    amazon-ebs:         "+                                                  ~~~~~~~~~~~~~~~~",
    amazon-ebs:         "    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException",
    amazon-ebs:         "    + FullyQualifiedErrorId : InvokeMethodOnNull",
    amazon-ebs:         " ",
    amazon-ebs:         "You cannot call a method on a null-valued expression.",
    amazon-ebs:         "At line:1 char:65",
    amazon-ebs:         "+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...",
    amazon-ebs:         "+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
    amazon-ebs:         "    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException",
    amazon-ebs:         "    + FullyQualifiedErrorId : InvokeMethodOnNull"
    amazon-ebs:     ],
    amazon-ebs:     "stdout": "",
    amazon-ebs:     "stdout_lines": []
    amazon-ebs: }



这通常意味着您调用方法的变量是
null
。这意味着由于脚本问题,从未设置变量

通过查看正在Ansible上调用的脚本,您将能够进一步进行调试。在该脚本中,错误表明它遇到了问题:
位于第1行char:291
。这似乎是其中一个变量:

$InService=(echo$InstanceId |%{$\.Split(':')[1];})


尝试直接在主机上运行脚本以查看更多内容。

谢谢您的评论。嗯,我尝试在服务器上本地运行所有3个命令,所有命令都按预期工作。在使用ansible win_shell运行这些命令时,我是否使用了正确的语法?据我所知,语法是正确的。您可能需要再次检查Ansible(无论您在哪里运行剧本)与该主机之间的连接。您是否可以进一步详细介绍一切通信方式以及每个实例/主机的位置?这将使我们更清楚地了解您的环境。
amazon-ebs:     "cmd": "$ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"dev-asg-v2\").Instances | findstr \"InstanceId InService\" $InstanceId=(echo $ASG) | findstr 'InstanceId' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).replace(' ','')",
    amazon-ebs:     "delta": "0:00:12.531289",
    amazon-ebs:     "end": "2020-02-12 12:12:35.640112",
    amazon-ebs:     "msg": "non-zero return code",
    amazon-ebs:     "rc": 1,
    amazon-ebs:     "start": "2020-02-12 12:12:23.108822",
    amazon-ebs:     "stderr": "You cannot call a method on a null-valued expression.\r\nAt line:1 char:291\r\n+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...\r\n+                                                  ~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException\r\n    + FullyQualifiedErrorId : InvokeMethodOnNull\r\n \r\nYou cannot call a method on a null-valued expression.\r\nAt line:1 char:65\r\n+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...\r\n+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException\r\n    + FullyQualifiedErrorId : InvokeMethodOnNull",
    amazon-ebs:     "stderr_lines": [
    amazon-ebs:         "You cannot call a method on a null-valued expression.",
    amazon-ebs:         "At line:1 char:291",
    amazon-ebs:         "+ ... d' $InService=(echo $InstanceId | %{ $_.Split(':')[1]; }).rep ...",
    amazon-ebs:         "+                                                  ~~~~~~~~~~~~~~~~",
    amazon-ebs:         "    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException",
    amazon-ebs:         "    + FullyQualifiedErrorId : InvokeMethodOnNull",
    amazon-ebs:         " ",
    amazon-ebs:         "You cannot call a method on a null-valued expression.",
    amazon-ebs:         "At line:1 char:65",
    amazon-ebs:         "+ ... ing $false; $ASG=(Get-ASAutoScalingGroup -AutoScalingGroupName \"d ...",
    amazon-ebs:         "+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",
    amazon-ebs:         "    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException",
    amazon-ebs:         "    + FullyQualifiedErrorId : InvokeMethodOnNull"
    amazon-ebs:     ],
    amazon-ebs:     "stdout": "",
    amazon-ebs:     "stdout_lines": []
    amazon-ebs: }