Use this script to automatically create a Proxy PAC file to be used with WPAD or GPO delivery of a proxy automatic configuration script.  This script can be scheduled to save to a network share or other location.  You can also use it as a basis for including in other proxy PACs.  For details on the updated version, visit http://undocumented-features.com/archive/2016/08/18/updates-to-office-365-proxy-pac-generator.  For detailed information on the previous version of this tool (as well as how proxy autoconfiguration works), see the full blog at https://www.undocumented-features.com/2015/11/16/office-365-pac-file/.

 

This version:

Previous updates:

PowerShell
Edit|Remove
<#  
Automatic Proxy PAC file creator for Office 365 Address space 
based on Office 365 XML feed: 
 
https://support.content.office.net/en-us/static/O365IPAddresses.xml 
 
THIS CODE AND ANY ASSOCIATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY  
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE  
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR 
PURPOSE. THE ENTIRE RISK OF USE, INABILITY TO USE, OR RESULTS FROM THE USE OF  
THIS CODE REMAINS WITH THE USER. 
 
Author:        Aaron Guilmette 
            aaron.guilmette@microsoft.com 
             
Find the most updated version at: 
https://gallery.technet.microsoft.com/Office-365-Proxy-Pac-60fb28f7 
#> 
 
<# 
.SYNOPSIS 
Automatically generate a Proxy Automatic Configuration (PAC) file 
from the Office 365 URL and IP addresses XML feed. 
 
.PARAMETER AlwaysProxyBlockList 
Add the domains in Blocklist to a "PROXY ONLY" directive with no fail over to 
DIRECT. 
 
.PARAMETER Blocklist 
Use the "blocklist" to exclude domains and patterns from the proxy bypass list. 
Do not use wildcards, as RegEx matching can be used to filter entries out.  If 
AlwaysProxyBlockList is used, these entries will get added with a PROXY only 
directive. 
 
.PARAMETER GenerateIPList 
Use to generate a text file containing all IP address ranges for selected products. 
 
.PARAMETER ImportFile 
Use specified XML import file instead of downloading from support site. 
 
.PARAMETER IncludeIPAddresses 
Use to include IP addresses in PAC file output. 
 
.PARAMETER OnlyIPAddresses 
Use to create only a PAC file containing IP addresses. 
 
.PARAMETER OutputFile 
The OutputFile parameter specifies the name of the output PAC file. 
 
.PARAMETER Products 
Use the Products parameter to specify which products will be configured in the 
PAC. The full list of products keywords that can be used: 
    - 'O365' - Office 365 Portal and Shared 
    - 'LYO' - Skype for Business (formerly Lync Online) 
    - 'Planner' - Planner 
    - 'ProPlus' - Office 365 ProPlus 
    - 'OneNote' - OneNote 
    - 'WAC' - SharePoint WebApps 
    - 'Yammer' - Yammer 
    - 'EXO' - Exchange online 
    - 'Identity' - Office 365 Identity 
    - 'SPO' - SharePoint Online 
    - 'RCA' - Remote Connectivity Analyzer 
    - 'Sway' - Sway 
    - 'OfficeMobile' - Office Mobile Apps 
    - 'Office365Video' - Office 365 Video 
    - 'CRLs' - Certificate Revocation Links 
    - 'OfficeiPad' - Office for iPad 
    - 'EOP' - Exchange Online Protection 
    - 'EX-Fed' - Exchange Federation (?) 
    - 'Teams' - Microsoft Teams 
 
.PARAMETER ProxyServer 
Use the ProxyServer parameter to specify the proxy server URL or IP 
address and port combination. 
 
.PARAMETER USDefense 
Use the Defense IP Address list. 
 
.EXAMPLE 
.\Office365ProxyPac.ps1 -ProxyServer 10.0.0.1:8080 
Configure the PAC file to point to the proxy server at 10.0.0.1:8080. 
 
.EXAMPLE 
.\Office365ProxyPac.ps1 -ProxyServer 10.0.0.1:8080 -OutputFile Proxy.pac 
Configure the PAC file to point to the proxy server at 10.0.0.1:8080 
and write the output to the file Proxy.pac. 
 
.EXAMPLE 
.\Office365ProxyPac.ps1 -ProxyServer 5.6.7.8:8080 -Products EXO,LYO 
Configure the PAC file to point to proxy server at 5.6.7.8:8080 and only include 
entries related to Exhange Online and Skype for Business (formerly Lync Online). 
 
.EXAMPLE 
.\Office365ProxyPac.ps1 -ProxyServer 5.6.7.8:8080 -Products EXO,OfficeMobile -Blocklist facebook,youtube 
Configure the PAC file to point to proxy server at 5.6.7.8:8080 and only include 
entries related to Exchange Online and OfficeMobile, excluding URLs that match 
patterns 'facebook' and 'youtube'. 
 
.LINK 
https://gallery.technet.microsoft.com/Office-365-Proxy-Pac-60fb28f7 
 
.LINK 
https://blogs.technet.microsoft.com/undocumentedfeatures/tag/proxy-automatic-configuration/ 
 
.NOTES 
2018-01-26    Updated to include US Dept of Defense IP List parameter 
2018-01-10    Updated invalid/non-ascii characters 
2017-06-06  Updated to include options for IP address inclusion 
2017-05-19    Updated to include Skype IP address ranges in proxy bypass list when per PG 
#>
 Be sure to leave bug reports, questions, or comments either here or in the accompanying blog.