我正在按 JIT(准时制)工作。应在所有 Azure 虚拟机中启用它。 为此,我正在检索详细信息以查看启用或禁用了多少虚拟机的 JIT。
是否有任何脚本或命令可以通过 PowerShell 获取这些详细信息(在 Excel 中提供详细信息)?
最佳答案
命令应该是Get-AzJitNetworkAccessPolicy
# Sample from microsoft docs
Get-AzJitNetworkAccessPolicy
Id : /subscriptions/487bb485-b5b0-471e-9c0d-10717612f869/resourceGroups/myService1/providers/Microsoft.Security/locations/centralus/jitNetworkAccessPolicies/default
Name : default
Kind : Basic
VirtualMachines : {/subscriptions/487bb485-b5b0-471e-9c0d-10717612f869/resourceGroups/myService1/providers/Microsoft.Compute/virtualMachines/testService}
Requests : {Microsoft.Azure.Commands.Security.Models.JitNetworkAccessPolicies.PSSecurityJitNetworkAccessPolicyRequest}
ProvisioningState : Succeeded
它是 Az.Security 模块的一部分。
该命令将向您显示所有即时策略和分配的计算机(VirtualMachines 属性) 与 Get-AzVM 一起,您可以创建尚未启用 JIT 的列表。
像这样的事情应该可以解决问题:
Import-Module Az.Compute
Import-Module Az.Security
Connect-AzAccount -SubscriptionId "<Id>"
$AzJITPolicies = Get-AzJitNetworkAccessPolicy
$AzVMs = Get-AzVM
$ResultSet = @("VmName;JITEnabled")
foreach($AzVM in $AzVMS) {
# You probably need to filter the rules even further here.
$PolicyExists = $AzJITPolicies | Where-Object { $_.VirtualMachines | Where-Object { $_.Id -eq $AzVm.Id }}
$JITEnabled = $false
if($PolicyExists) {
$JITEnabled = $true
}
$ResultSet += ($AzVM.Name + ";" + $JITEnabled)
}
# export as csv => import in excel
$ResultSet -join "`r`n" | Out-File "c:\result.csv"
关于azure - 是否有任何 PowerShell 命令可以获取已分配或未分配 JIT(即时)的所有 Azure VM 的详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72854234/