提问人:user182595 提问时间:11/10/2023 更新时间:11/15/2023 访问量:61
运行 Get-NetFirewallProfile 时,Invoke-AzVMRunCommand 不返回预期值
Invoke-AzVMRunCommand does not return the expected value when running Get-NetFirewallProfile
问:
我正在尝试在我的 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
有谁知道为什么会这样?
答:
0赞
Venkat V
11/10/2023
#1
运行 Get-NetFirewallProfile 时,Invoke-AzVMRunCommand 不返回预期值
要从远程计算机检查状态的状态,可以在脚本中使用以下命令以表格格式显示详细信息,而不是使用firewall
Invoke-AzVMRunCommand
Get-NetFirewallProfile | ConvertTo-Csv
Get-NetFirewallProfile | Select-Object Name, Enabled
这是上述命令的结果。
如果要检查 的所有详细信息,可以使用以下命令:Windows firewall
$firewall = Get-NetFirewallProfile
或者,如果您只需要检查名称和防火墙状态,则可以使用上述命令。
脚本路径
$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
评论
0赞
user182595
11/10/2023
感谢您的响应,但是运行此响应仍然返回说域,专用和公共防火墙已启用,即使它们未启用。
0赞
Venkat V
11/10/2023
如果命令 Get-NetFirewallProfile 显示不正确的防火墙状态,请重新启动 VM 并再次检查。
0赞
Venkat V
11/10/2023
1.检查计算机上的本地组策略设置。2.检查 Windows 防火墙的域组策略设置,如果计算机是 Active Directory 域的一部分。
0赞
user182595
11/14/2023
#2
因此,我运行的命令从 GUI 检查注册表的不同区域。
图形用户界面:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile
CMDLET:
HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile
这就是问题的来源。
如果您遇到此问题,但请务必检查这两个注册表项。
评论