следующий код
function Get-SSMMaintenanceWindowMatch ($instance) {
$mws = (Get-SSMMaintenanceWindowList -Region eu-central-1).WindowId
for ($i=0; $i -le $mws.Length; $i++) {
$val = ((Get-SSMMaintenanceWindowTargets -region eu-central-1 -WindowId $mws[$i]).Targets).Values
if (($val -eq $instance) -and ($val -eq $null)) {
return $instance
else {
return -1
}
}
}
}
выдает следующую ошибку.
PS C:\WINDOWS\system32> Get-SSMMaintenanceWindowMatch $instanceId
Get-SSMMaintenanceWindowTargets : 1 validation error detected: Value null at 'windowId' failed to satisfy constraint: Member must not be
null
At line:4 char:18
+ ... $val = ((Get-SSMMaintenanceWindowTargets -region eu-central-1 -Win ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Amazon.PowerShe...owTargetsCmdlet:GetSSMMaintenanceWindowTargetsCmdlet) [Get-SSMMaintenan
ceWindowTargets], InvalidOperationException
+ FullyQualifiedErrorId : Amazon.SimpleSystemsManagement.AmazonSimpleSystemsManagementException,Amazon.PowerShell.Cmdlets.SSM.GetSSMMa
intenanceWindowTargetsCmdlet
Некоторые окна обслуживания не имеют значения, так как для них не зарегистрированы цели (экземпляры).В этот момент член массива является нулевым, и функция не работает.Если я использую экземпляр, который зарегистрирован непосредственно, он работает.
Как мне заставить цикл работать только с нулевыми элементами.
Thx для любого ввода.