<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic PowerShell - Microsoft Office365 in API / CLI Discussion</title>
    <link>https://community.checkpoint.com/t5/API-CLI-Discussion/PowerShell-Microsoft-Office365/m-p/6029#M506</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I wrote another script to push all hosts and networks from Microsoft Office 365 (documented in an XLM file) into objects.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#&lt;BR /&gt;# Download Office365/Azure network Details&lt;BR /&gt;#&lt;BR /&gt;# (C) 2017, Hugo van der Kooij&lt;BR /&gt;#&lt;BR /&gt;# Don't forget to run `Install-Module psCheckPoint` (as administrator) once!&lt;BR /&gt;#&lt;BR /&gt;# WARNING: This script will put a significant load on your SmartCenter!&lt;BR /&gt;#&lt;/P&gt;&lt;P&gt;# Import Modules&lt;BR /&gt;Write-Verbose " *** Loading Modules *** "&lt;BR /&gt;Import-Module psCheckPoint&lt;/P&gt;&lt;P&gt;# Download Microsoft Cloud IP Ranges and Names into Object&lt;BR /&gt;&lt;SPAN&gt;$O365IPAddresses = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://support.content.office.net/en-us/static/O365IPAddresses.xml" rel="nofollow"&gt;https://support.content.office.net/en-us/static/O365IPAddresses.xml&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;[XML]$O365 = Invoke-WebRequest -Uri $O365IPAddresses -DisableKeepAlive&lt;/P&gt;&lt;P&gt;$Updated = $O365.products.updated&lt;BR /&gt;$Comments = "Microsoft Office365 updated $Updated"&lt;BR /&gt;$MSO365 = "Microsoft_Office365"&lt;BR /&gt;$MS = "Microsoft"&lt;/P&gt;&lt;P&gt;# Ignore Certificate Block on self-sign certificate&lt;BR /&gt;Write-Verbose " *** Ignore Private Certificates *** "&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $True }&lt;/P&gt;&lt;P&gt;# Login to Check Point API to get Session ID&lt;BR /&gt;Write-Verbose " *** Log in to Check Point Smart Center API *** "&lt;BR /&gt;$Session = Open-CheckPointSession -SessionName $MSO365 -SessionComments "Microsoft Office365 Filler" -SessionTimeOut 1800&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Write-Verbose "New-CheckPointGroup -Session $Session -Name $MSO365 -Tag $MSO365 -Color Red -Comments $Comments"&lt;BR /&gt;$Object = New-CheckPointGroup -Session $Session -Name $MSO365 -Tag $MSO365 -Color Red -Comments "$Comments"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;ForEach ($Product in $O365.products.product) {&lt;BR /&gt; $GroupName = $MSO365 + "_" + $Product.Name&lt;/P&gt;&lt;P&gt;Write-Verbose "New-CheckPointGroup -Session $Session -Name $GroupName -Tag $MSO365,$Type -Color Red -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointGroup -Session $Session -Name $GroupName -Tag $MSO365,$Type -Color Red -Comments "$Comments"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; ForEach ($AddressList in $Product.addresslist) {&lt;BR /&gt; $Type = $AddressList.type&lt;/P&gt;&lt;P&gt;ForEach ($Address in $AddressList.address) {&lt;BR /&gt; ForEach ($Entry in $Address) {&lt;BR /&gt; If ($Type -eq "IPv4" ) {&lt;BR /&gt; $Name = $GroupName + "_" +$Entry&lt;BR /&gt; $Network = $Entry.split("/")[0]&lt;BR /&gt; $MaskLength = $Entry.split("/")[1]&lt;BR /&gt; If ($MaskLength -eq 32) {&lt;BR /&gt; Write-Verbose "New-CheckPointHost -Session $Session -Name $Name -ipv4Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointHost -Session $Session -Name $Name -ipv4Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments"&lt;BR /&gt; } else {&lt;BR /&gt; Write-Verbose "New-CheckPointNetwork -Session $Session -Name $Name -Subnet4 $Network -MaskLength4 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointNetwork -Session $Session -Name $Name -Subnet4 $Network -MaskLength4 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; } ElseIf ($Type -eq "IPv6") {&lt;BR /&gt; $Network = $Entry.split("/")[0]&lt;BR /&gt; $MaskLength = $Entry.split("/")[1]&lt;BR /&gt; If ($Entry -notlike "*/") {&lt;BR /&gt; $MaskLength = 128&lt;BR /&gt; }&lt;BR /&gt; $Name = $GroupName + "_" +$Entry&lt;BR /&gt; If ($MaskLength -eq 128) {&lt;BR /&gt; Write-Verbose "New-CheckPointHost -Session $Session -Name $Name -ipv6Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointHost -Session $Session -Name $Name -ipv6Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; } else {&lt;BR /&gt; Write-Verbose "New-CheckPointNetwork -Session $Session -Name $Name -Subnet6 $Network -MaskLength6 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointNetwork -Session $Session -Name $Name -Subnet6 $Network -MaskLength6 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; }&lt;BR /&gt; } ElseIf ($Type -eq "URL") {&lt;BR /&gt; Write-Host " Hostname ($GroupName) : $Entry"&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; } &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;# Publish Changes&lt;BR /&gt;Write-Verbose " *** Publish Session changes *** "&lt;BR /&gt;Publish-CheckPointSession -Session $Session&lt;BR /&gt;#Reset-CheckPointSession -Session $Session&lt;/P&gt;&lt;P&gt;# Logout from Check Point API&lt;BR /&gt;Write-Verbose " *** Logout Session *** "&lt;BR /&gt;Close-CheckPointSession -Session $Session&lt;/P&gt;&lt;P&gt;# Ignore Certificate Block on self-sign certificate no longer&lt;BR /&gt;Write-Verbose " *** Ignore Private Certificates no longer *** "&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $False }&lt;/P&gt;&lt;P&gt;# Remove Modules&lt;BR /&gt;Write-Verbose " *** Remove Modules *** "&lt;BR /&gt;Remove-Module psCheckPoint&lt;/P&gt;&lt;P&gt;# DONE!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Let me knopw if it works for you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 07 Sep 2017 09:49:05 GMT</pubDate>
    <dc:creator>Hugo_vd_Kooij</dc:creator>
    <dc:date>2017-09-07T09:49:05Z</dc:date>
    <item>
      <title>PowerShell - Microsoft Office365</title>
      <link>https://community.checkpoint.com/t5/API-CLI-Discussion/PowerShell-Microsoft-Office365/m-p/6029#M506</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I wrote another script to push all hosts and networks from Microsoft Office 365 (documented in an XLM file) into objects.&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;#&lt;BR /&gt;# Download Office365/Azure network Details&lt;BR /&gt;#&lt;BR /&gt;# (C) 2017, Hugo van der Kooij&lt;BR /&gt;#&lt;BR /&gt;# Don't forget to run `Install-Module psCheckPoint` (as administrator) once!&lt;BR /&gt;#&lt;BR /&gt;# WARNING: This script will put a significant load on your SmartCenter!&lt;BR /&gt;#&lt;/P&gt;&lt;P&gt;# Import Modules&lt;BR /&gt;Write-Verbose " *** Loading Modules *** "&lt;BR /&gt;Import-Module psCheckPoint&lt;/P&gt;&lt;P&gt;# Download Microsoft Cloud IP Ranges and Names into Object&lt;BR /&gt;&lt;SPAN&gt;$O365IPAddresses = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://support.content.office.net/en-us/static/O365IPAddresses.xml" rel="nofollow"&gt;https://support.content.office.net/en-us/static/O365IPAddresses.xml&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;[XML]$O365 = Invoke-WebRequest -Uri $O365IPAddresses -DisableKeepAlive&lt;/P&gt;&lt;P&gt;$Updated = $O365.products.updated&lt;BR /&gt;$Comments = "Microsoft Office365 updated $Updated"&lt;BR /&gt;$MSO365 = "Microsoft_Office365"&lt;BR /&gt;$MS = "Microsoft"&lt;/P&gt;&lt;P&gt;# Ignore Certificate Block on self-sign certificate&lt;BR /&gt;Write-Verbose " *** Ignore Private Certificates *** "&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $True }&lt;/P&gt;&lt;P&gt;# Login to Check Point API to get Session ID&lt;BR /&gt;Write-Verbose " *** Log in to Check Point Smart Center API *** "&lt;BR /&gt;$Session = Open-CheckPointSession -SessionName $MSO365 -SessionComments "Microsoft Office365 Filler" -SessionTimeOut 1800&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Write-Verbose "New-CheckPointGroup -Session $Session -Name $MSO365 -Tag $MSO365 -Color Red -Comments $Comments"&lt;BR /&gt;$Object = New-CheckPointGroup -Session $Session -Name $MSO365 -Tag $MSO365 -Color Red -Comments "$Comments"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;ForEach ($Product in $O365.products.product) {&lt;BR /&gt; $GroupName = $MSO365 + "_" + $Product.Name&lt;/P&gt;&lt;P&gt;Write-Verbose "New-CheckPointGroup -Session $Session -Name $GroupName -Tag $MSO365,$Type -Color Red -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointGroup -Session $Session -Name $GroupName -Tag $MSO365,$Type -Color Red -Comments "$Comments"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; ForEach ($AddressList in $Product.addresslist) {&lt;BR /&gt; $Type = $AddressList.type&lt;/P&gt;&lt;P&gt;ForEach ($Address in $AddressList.address) {&lt;BR /&gt; ForEach ($Entry in $Address) {&lt;BR /&gt; If ($Type -eq "IPv4" ) {&lt;BR /&gt; $Name = $GroupName + "_" +$Entry&lt;BR /&gt; $Network = $Entry.split("/")[0]&lt;BR /&gt; $MaskLength = $Entry.split("/")[1]&lt;BR /&gt; If ($MaskLength -eq 32) {&lt;BR /&gt; Write-Verbose "New-CheckPointHost -Session $Session -Name $Name -ipv4Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointHost -Session $Session -Name $Name -ipv4Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments"&lt;BR /&gt; } else {&lt;BR /&gt; Write-Verbose "New-CheckPointNetwork -Session $Session -Name $Name -Subnet4 $Network -MaskLength4 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointNetwork -Session $Session -Name $Name -Subnet4 $Network -MaskLength4 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; } ElseIf ($Type -eq "IPv6") {&lt;BR /&gt; $Network = $Entry.split("/")[0]&lt;BR /&gt; $MaskLength = $Entry.split("/")[1]&lt;BR /&gt; If ($Entry -notlike "*/") {&lt;BR /&gt; $MaskLength = 128&lt;BR /&gt; }&lt;BR /&gt; $Name = $GroupName + "_" +$Entry&lt;BR /&gt; If ($MaskLength -eq 128) {&lt;BR /&gt; Write-Verbose "New-CheckPointHost -Session $Session -Name $Name -ipv6Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointHost -Session $Session -Name $Name -ipv6Address $Network -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; } else {&lt;BR /&gt; Write-Verbose "New-CheckPointNetwork -Session $Session -Name $Name -Subnet6 $Network -MaskLength6 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments $Comments"&lt;BR /&gt; $Object = New-CheckPointNetwork -Session $Session -Name $Name -Subnet6 $Network -MaskLength6 $MaskLength -Color Red -Groups $MSO365,$GroupName -Tags $MSO365,$GroupName -Comments "$Comments" &lt;BR /&gt; }&lt;BR /&gt; } ElseIf ($Type -eq "URL") {&lt;BR /&gt; Write-Host " Hostname ($GroupName) : $Entry"&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; } &lt;BR /&gt; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;# Publish Changes&lt;BR /&gt;Write-Verbose " *** Publish Session changes *** "&lt;BR /&gt;Publish-CheckPointSession -Session $Session&lt;BR /&gt;#Reset-CheckPointSession -Session $Session&lt;/P&gt;&lt;P&gt;# Logout from Check Point API&lt;BR /&gt;Write-Verbose " *** Logout Session *** "&lt;BR /&gt;Close-CheckPointSession -Session $Session&lt;/P&gt;&lt;P&gt;# Ignore Certificate Block on self-sign certificate no longer&lt;BR /&gt;Write-Verbose " *** Ignore Private Certificates no longer *** "&lt;BR /&gt;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $False }&lt;/P&gt;&lt;P&gt;# Remove Modules&lt;BR /&gt;Write-Verbose " *** Remove Modules *** "&lt;BR /&gt;Remove-Module psCheckPoint&lt;/P&gt;&lt;P&gt;# DONE!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Let me knopw if it works for you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Sep 2017 09:49:05 GMT</pubDate>
      <guid>https://community.checkpoint.com/t5/API-CLI-Discussion/PowerShell-Microsoft-Office365/m-p/6029#M506</guid>
      <dc:creator>Hugo_vd_Kooij</dc:creator>
      <dc:date>2017-09-07T09:49:05Z</dc:date>
    </item>
  </channel>
</rss>

