semenenko88
@semenenko88
Системный администратор

Где в условии if, в powershell я ошибаюсь?

Проверяем инстанс правила фаервола для ip:
PS C:\Users\Administrator> Get-NetFirewallAddressFilter | where RemoteAddress -eq 10.15.0.71 | select InstanceID

InstanceID
----------
{48F93E73-0AE8-476E-ADA3-86AC90361AFF}


Тоже самое но для порта:
PS C:\Users\Administrator> Get-NetFirewallPortFilter | where RemotePort -eq 12440-12499 | select InstanceID

InstanceID
----------
{48F93E73-0AE8-476E-ADA3-86AC90361AFF}


Это одно и тоже правило, поэтому InstanceID совпадает.
Теперь загоняю все это в переменные и проверяю что у меня в переменных:
PS C:\Users\Administrator> $IP=Get-NetFirewallAddressFilter | where RemoteAddress -eq 10.15.0.71 | select InstanceID
PS C:\Users\Administrator> $Port=Get-NetFirewallPortFilter | where RemotePort -eq 12440-12499 | select InstanceID
PS C:\Users\Administrator> $IP

InstanceID
----------
{48F93E73-0AE8-476E-ADA3-86AC90361AFF}


PS C:\Users\Administrator> $Port

InstanceID
----------
{48F93E73-0AE8-476E-ADA3-86AC90361AFF}


Вроде все совпадает.
Теперь использую if:
PS C:\Users\Administrator> if ($IP -eq $Port) {
>>    Write-Host "Совпадает"
>> }
>> else{
>>    Write-Host "Не совпадает"
>> }
>>
Не совпадает


Почему "Не совпадает"?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
@azarij
В меру опытный никто
попробуйте так:
PS C:\Users\Administrator> if ($IP.InstanceID -eq $Port.InstanceID) {
>>    Write-Host "Совпадает"
>> }
>> else{
>>    Write-Host "Не совпадает"
>> }
>>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы