我正尝试在Azure订阅中的VM上使用Invoke-AzVMRunCommand
。
我的Powershell看起来像这样
Invoke-AzVMRunCommand -VMName $vm.Name -ResourceGroupName $vm.ResourceGroupName -CommandId 'RunPowerShellScript' -ScriptPath $scriptPath
字符串
我的$scriptPath
中的脚本如下所示
Get-NetFirewallProfile | ConvertTo-Csv
型
然而,当运行这个程序时,响应似乎告诉我windows防火墙已启用,尽管我知道事实并非如此。
脚本的其他部分需要ConvertTo-Csv
才能按需运行,因为Invoke-AzVMRunCommand
返回一个字符串对象,这不是很有用。
有谁知道为什么会这样吗?
2条答案
按热度按时间7kqas0il1#
运行Get-NetFirewallProfile时,Invoke-AzVMRunCommand未返回预期值
要使用
Invoke-AzVMRunCommand
从远程计算机检查firewall
的状态,可以在脚本中使用以下命令以表格格式显示详细信息,而不是使用Get-NetFirewallProfile | ConvertTo-Csv
字符串
下面是上面命令的结果。
x1c 0d1x的数据
如果要查看
Windows firewall
的所有详细信息,可以使用以下命令:型
或者,如果您只需要检查name和firewall status,则可以使用上述命令。
脚本路径
型
下面是一个在远程计算机上执行
scriptpath
的脚本。型
结果:
防火墙详细信息已导出为CSV
的
kdfy810k2#
所以我运行的命令从GUI检查注册表的不同区域。
GUI:
字符串
CMDLETS:
型
这就是问题的来源。
如果你有这个问题,但一定要检查这两个注册表项。