Powershell ExchangeOnline, vreemd gedrag van variabele

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
Ik ben bezig om een script te maken die ik op al mijn tenants los kan laten om op die manier

Alleen krijg ik bij 1 commando iets vreemds.

Ik heb dit (uitgekleedde versie ter test):
code:
1
2
3
4
5
6
7
8
    $AuthoritativeDomainList = Get-AcceptedDomain | Where-Object DomainType -eq Authoritative | Select-Object -ExpandProperty DomainName
    $AcceptedDomainsCommaSeparated = $AuthoritativeDomainList -join ","

    New-MalwareFilterPolicy -Name "MalwareFilterPolicy" -Action DeleteAttachmentAndUseCustomAlert `
    -CustomAlertText "Attachment blocked by MalwareFilterPolicy. Please contact us if you think this is incorrect." `
    -EnableFileFilter $true -ZapEnabled $true | Out-Null

    New-MalwareFilterRule -Name "MalwareFilterRule" -MalwareFilterPolicy "MalwareFilterPolicy" -Enabled $true -RecipientDomainIs $AcceptedDomainsCommaSeparated -Priority 0 | Out-Null


De $AcceptedDomainsCommaSeparated bevat braaf: domein1.ext,domein2.ext etc.
Run ik 'm, dan wordt de rule gewoon netjes aangemaakt, maar in de portal wordt het als 1 domein gezien.
doe ik handmatig New-MalwareFilterRule -Name "MalwareFilterRule" -MalwareFilterPolicy "MalwareFilterPolicy" -Enabled $true -RecipientDomainIs domein1.ext,domein2.ext -Priority 0 | Out-Null

Dan staat het allemaal wél goed en wordt het gezien als losse domeinen.

Ik heb al geprobeerd de lijst met domeinnamen tussen ' en " te zetten, maar dat maakt niets uit.
Ook al getest door:
[string[]]$AcceptedDomainsCommaSeparated = $AuthoritativeDomainList -join "," of [object[]]$AcceptedDomainsCommaSeparated te gebruiken.

Als check heb ik even gekeken wat het commando wordt door er gewoon eventjes write-host voor te zetten.
Copy+Paste ik die output, dan werkt het ook. In theorie moet het goed gaan dus.. Maar dat doet het niet.

Is er misschien een betere manier om de lijst met domeinen door te geven want deze methode is kennelijk kneiter fout :D Alleen zie ik 'm niet meer.

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku

Beste antwoord (via RoRoo op 30-05-2022 14:23)


  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 18-09 16:52

Jazzy

Moderator SSC/PB

Moooooh!

PowerShell werkt met objecten, je bent nu aan het proberen om er weer tekst van te maken en dat is helemaal niet nodig. Als je een variabele $AuthoritativeDomainList met daarin de domeinnamen, dan kun je die gewoon aanhalen in je commando:

code:
1
2
3
New-MalwareFilterRule -Name "MalwareFilterRule"
    -MalwareFilterPolicy "MalwareFilterPolicy" -Enabled $true
    -RecipientDomainIs $AuthoritativeDomainList -Priority 0 | Out-Null


Edit: of misschien niet, zie dat -ExceptIfRecipientDomainIs van het type Word[] is. Geen tijd om te testen nu.

[ Voor 12% gewijzigd door Jazzy op 30-05-2022 14:24 ]

Exchange en Office 365 specialist. Mijn blog.

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 18-09 16:52

Jazzy

Moderator SSC/PB

Moooooh!

PowerShell werkt met objecten, je bent nu aan het proberen om er weer tekst van te maken en dat is helemaal niet nodig. Als je een variabele $AuthoritativeDomainList met daarin de domeinnamen, dan kun je die gewoon aanhalen in je commando:

code:
1
2
3
New-MalwareFilterRule -Name "MalwareFilterRule"
    -MalwareFilterPolicy "MalwareFilterPolicy" -Enabled $true
    -RecipientDomainIs $AuthoritativeDomainList -Priority 0 | Out-Null


Edit: of misschien niet, zie dat -ExceptIfRecipientDomainIs van het type Word[] is. Geen tijd om te testen nu.

[ Voor 12% gewijzigd door Jazzy op 30-05-2022 14:24 ]

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

  • RoRoo
  • Registratie: Mei 2001
  • Laatst online: 30-08 16:13

RoRoo

Certified Prutser

Topicstarter
|:( :F

My god wat een domme actie weer.
Ik las op de documentatiepagina dat er een comma separated value verwacht.. Dus heel braaf om zitten zetten naar comma separated.

Bedankt!!!

It's not DNS. There's no way it's DNS. It was DNS. --The Sysadmin haiku