Powershell &引用;不能对空值表达式调用方法";在使用ansible时;win“U shell”;模块
我使用ansible win_shell模块在windows主机上运行以下命令,但出现错误“您不能对空值表达式调用方法” 命令:- CircleCI作业失败,出现以下错误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
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: }