azure 运行Get-NetFirewallProfile时,Ranke-AzVMRunCommand未返回预期值

pftdvrlh  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(95)

我正尝试在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返回一个字符串对象,这不是很有用。
有谁知道为什么会这样吗?

7kqas0il

7kqas0il1#

运行Get-NetFirewallProfile时,Invoke-AzVMRunCommand未返回预期值
要使用Invoke-AzVMRunCommand从远程计算机检查firewall的状态,可以在脚本中使用以下命令以表格格式显示详细信息,而不是使用Get-NetFirewallProfile | ConvertTo-Csv

Get-NetFirewallProfile | Select-Object Name, Enabled

字符串
下面是上面命令的结果。
x1c 0d1x的数据
如果要查看Windows firewall的所有详细信息,可以使用以下命令:

$firewall = Get-NetFirewallProfile


或者,如果您只需要检查namefirewall status,则可以使用上述命令。

脚本路径

$FilePath = "C:\Users\Venkat\Desktop\Firewall.csv"
$firewall = Get-NetFirewallProfile
$firewall | Export-Csv -Path $FilePath -NoTypeInformation


下面是一个在远程计算机上执行scriptpath的脚本。

Connect-AzAccount
Get-AzVM -name "venaktvm"
$scriptpath = "xxxxxxxxxx\Firewall.ps1" 
Invoke-AzVMRunCommand -ResourceGroupName "VM-RG-Name" -Name "VM-NAME"  -CommandId 'RunPowerShellScript' -ScriptPath $scriptpath

结果:

防火墙详细信息已导出为CSV


kdfy810k

kdfy810k2#

所以我运行的命令从GUI检查注册表的不同区域。
GUI:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile

字符串
CMDLETS:

HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile


这就是问题的来源。
如果你有这个问题,但一定要检查这两个注册表项。

相关问题