tag:blogger.com,1999:blog-23010849358772767932024-02-21T08:58:30.914+08:00LazyExchangeAdminJune Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-2301084935877276793.post-1499327854611092752019-05-22T13:00:00.003+08:002019-06-24T23:06:04.952+08:00PowerShell Script to Delete Files By Age with Email Summary Report and MS Teams Notification<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJmiXGCYZnMtZwUBULeRtqMq2T-0W93rGYSX-k6luLOPy59Yjt1vO2kTbSdsx4C597pZmxcE-KzO2bNgRk49U7U30vesJd99kyZrbvVD-FOUEZB1eFeDQitF-sLc7jkpqzw3huGl9_NsC_/s1600/Delete-FilesByAge.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJmiXGCYZnMtZwUBULeRtqMq2T-0W93rGYSX-k6luLOPy59Yjt1vO2kTbSdsx4C597pZmxcE-KzO2bNgRk49U7U30vesJd99kyZrbvVD-FOUEZB1eFeDQitF-sLc7jkpqzw3huGl9_NsC_/s1600/Delete-FilesByAge.png" /></a></div><h3></h3>This script can be used to perform file deletions based on age in days, and with the option to send an email summary report. In my particular case, this is deployed to performed housekeeping of IIS and Exchange Server Logs older than seven (7) days. This is a fork of the previous script published as <a href="https://www.lazyexchangeadmin.com/2016/09/DeleteFilesOlderThanXDays.html" target="_blank">DeleteFilesOlderThanXDays.ps1</a><br />
<br />
<h3>Requirements</h3><div><ul><li>PowerShell 5.1 (recommended), but works and tested with PowerShell 4.</li>
<li>If "email summary" report will be enabled, an SMTP relay is required.</li>
</ul></div><div><br />
</div><h3>Script Installation</h3><h4>From GitHub</h4><div><b> </b> To get the script, you can clone or download from this link - <a href="https://github.com/junecastillote/Delete-FilesByAge" target="_blank">Delete-FilesByAge.ps1</a> and save it on your preferred path.<br />
<br />
<b></b></div><h4>From PowerShell Gallery</h4><div>If you have PowerShell 5, you can simply install from PSGallery.<br />
<br />
<a href="https://www.powershellgallery.com/packages/Delete-FilesByAge">https://www.powershellgallery.com/packages/Delete-FilesByAge</a></div><div><br />
</div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikdrDxTkWKcn79Pi-yKsIxIdFz9HufZfMa8JbQHPOUC9ylv0PcTxYHjPG4j0kO8mw7lqoDYEyH95q-AUhZgdCx6aUGXpFqQQVoChsZqxrarYytk8hukIWnTTMi4xCnI98LBzl6ka0ylJwV/s1600/mRemoteNG_2019-05-22_12-51-36.png" imageanchor="1" style="clear: left; display: inline; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;"><img align="left" border="0" data-original-height="41" data-original-width="447" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikdrDxTkWKcn79Pi-yKsIxIdFz9HufZfMa8JbQHPOUC9ylv0PcTxYHjPG4j0kO8mw7lqoDYEyH95q-AUhZgdCx6aUGXpFqQQVoChsZqxrarYytk8hukIWnTTMi4xCnI98LBzl6ka0ylJwV/s1600/mRemoteNG_2019-05-22_12-51-36.png" style="display: inline; float: left;" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Install Script from PSGallery</td></tr>
</tbody></table></div><div><br />
</div><div><br />
<br />
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVGLxijKP4d60fjX2O3cOEyT-RfPlyYhZQArBlMYkBRYp7NW1J0cR2L3iStRfCGFsv9P6sAukAJgyA0HTstl9HQKcN4PwLD_Krcdk238yplWV5YMP1seyC8HVaUf1isjO_mZAxCpi0BBip/s1600/mRemoteNG_2019-05-22_12-58-31.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img align="left" border="0" data-original-height="400" data-original-width="834" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVGLxijKP4d60fjX2O3cOEyT-RfPlyYhZQArBlMYkBRYp7NW1J0cR2L3iStRfCGFsv9P6sAukAJgyA0HTstl9HQKcN4PwLD_Krcdk238yplWV5YMP1seyC8HVaUf1isjO_mZAxCpi0BBip/s1600/mRemoteNG_2019-05-22_12-58-31.png" style="display: inline; float: left;" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Confirmed that the script was installed</td></tr>
</tbody></table><br />
</div><h3>How to Use</h3><h4>Required Parameters</h4><b><u>-Paths</u></b><br />
<b><u><br />
</u></b> This accepts the directory or path that will be the target of the cleanup. It accepts multiple entries separated by a comma. The paths can be a local or UNC path location.<br />
<b>Example:</b> "C:\TEMP","\\SERVER\C$\TEMP"<br />
<br />
<b><u>-outputDirectory</u></b><br />
<b><u><br />
</u></b> Indicates the path where the output files will be saved.<br />
<b>Example:</b> "C:\Scripts\Output"<br />
<br />
<b><u>-include</u></b><br />
<b><u><br />
</u></b>Single or List of files or file extensions to include in the deletion.<br />
<b>Example:</b> "*.log","file1.txt",*.blg" - This will delete files with specific extensions or file names.<br />
<b>Example:</b> "*.*" <span style="background-color: yellow;">THIS WILL DELETE ALL FILES</span><br />
<br />
<b><u>-daysToKeep</u></b><br />
<br />
Files that are older than this number of days will be deleted.<br />
<b>Example:</b> 30 - This will keep the files modified within the last 30 days.<br />
<h4><br />
</h4><h4>Optional Parameters</h4><div><b><u>-logDirectory</u></b></div><div><b><u><br />
</u></b></div><div><div>Indicates the path where the transcript log files will be saved.</div><div><b>Example:</b> "C:\Scripts\Logs"</div></div><br />
<b><u>-exclude</u></b><br />
<b><u><br />
</u></b> Single or List of files or file extensions to exclude from the deletion.<br />
<b>Example:</b> "*.log","file1.txt",*.blg"<br />
<br />
<b><u>-recurse</u></b><br />
<b><u><br />
</u></b> Switch to indicate whether or not a recursive deletion will be performed. No value is required for this parameter.<br />
<br />
<b><u>-sendEmail</u></b><br />
<b><u><br />
</u></b> Switch to indicate whether or not to send the HTML summary report through email. No value is required for this parameter.<br />
<br />
<b><u>-sender</u></b><br />
<b><u><br />
</u></b> Sender Email Address to be used for the Summary Report. Required if <b>sendEmail </b>switch is used.<br />
<b>Example:</b> sender@domain.com OR "Sender Display Name <sender domain.com="">"</sender><br />
<br />
<b><u>-recipients</u></b><br />
<b><u><br />
</u></b> List of recipients of the email report. Multiple recipients are accepted separated with a comma. Required if <b>sendEmail </b>switch is used.<br />
<b>Example</b>: "recipient1@domain.com","recipient2@domain.com"<br />
<br />
<b><u>-smtpServer</u></b><br />
<b><u><br />
</u></b> The SMTP Relay Server. This can be an IP Address, Hostname or FQDN. Required if <b>sendEmail </b>switch is used.<br />
<b>Example:</b> 192.168.0.6<br />
<b>Example:</b> smtp.server.com<br />
<br />
<b><u>-smtpPort</u></b><br />
<b><u><br />
</u></b> SMTP Server Port to use. This is normally port 25 for an unauthenticated relay, or 587 for Office 365 authenticated relay. Required if <b>sendEmail </b>switch is used.<br />
<b>Example:</b> 587<br />
<br />
<b><u>-smtpSSL</u></b><br />
<br />
Switch to indicate whether or not SSL will be used for the SMTP relay connection. No value is required for this parameter.<br />
<br />
<b><u>-smtpCredential</u></b><br />
<br />
Used if SMTP relay (eg. Office 365) requires authentication. Required if <b>sendEmail </b>switch is used.<br />
<br />
<b><u>-notifyTeams</u></b><br />
<br />
This can be used to send the notification to one or more MS Teams Webhook.<br />
<h3>Example</h3><div>In this example:</div><div><ul><li>Using Office 365 as SMTP Relay, with Authentication, using Port 587 with SSL enabled.</li>
<li>Stored Authentication credential in variable $credential</li>
<li>Included *.log,*.blg extensions.</li>
<li>Excluded log1.log</li>
<li>Files older than 30 days will be deleted.</li>
<li>Selected Paths "\\poshlabexc\c$\inetpub\logs","c:\temp"</li>
</ul><div><br />
</div><div>Command:</div><pre style="border: 1px solid Gray; font-family: Consolas;"><!--
Code highlighting produced by Actipro SyntaxEditor
http://www.ActiproSoftware.com/Products/DotNet/
--><span style="color: rgb(128 , 0 , 128);">$credential</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(255 , 0 , 0);">=</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">Get-Credential</span><span style="color: rgb(0 , 0 , 0);">
.\Delete-FilesByAge.ps1 -Paths </span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(128 , 0 , 0);">\\poshlabexc\c$\inetpub\logs</span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(0 , 0 , 0);">,</span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(128 , 0 , 0);">c:\temp</span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-Include *.log,*.blg -Recurse -daysToKeep </span><span style="color: rgb(0 , 0 , 0);">30</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-outputDirectory </span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(128 , 0 , 0);">C:\Scripts\Delete-FilesByAge\output</span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-headerPrefix LazyExchangeAdmin </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-sendEmail </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-sender postmaster@lazyexchangeadmin.com</span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-recipients june@lazyexchangeadmin.com </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-smtpServer smtp.office365.com </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-smtpPort </span><span style="color: rgb(0 , 0 , 0);">587</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-smtpCredential </span><span style="color: rgb(128 , 0 , 128);">$credential</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-smtpSSL </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-logDirectory </span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(128 , 0 , 0);">C:\Scripts\Delete-FilesByAge\Log</span><span style="color: rgb(128 , 0 , 0);">"</span><span style="color: rgb(0 , 0 , 0);"> </span><span style="color: rgb(95 , 158 , 160); font-weight: bold;">`</span><span style="color: rgb(0 , 0 , 0);">
-Exclude log1.log</span></pre></div><br />
<div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzBNLgeytNIaJNknnRIQ66WtTGpVxjj_TRoOmAf1YCvZkeqmHaK6_4oorkw3TtZBITlHqYsHIbecxHzfblxsD6Q0qxcvV7llB5UFBJb4VtDXkfpBXRDYdzHIMjyW7k6fsaHEwH7rRBCXQ0/s1600/mRemoteNG_2019-05-22_11-52-47.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img align="left" border="0" data-original-height="267" data-original-width="861" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzBNLgeytNIaJNknnRIQ66WtTGpVxjj_TRoOmAf1YCvZkeqmHaK6_4oorkw3TtZBITlHqYsHIbecxHzfblxsD6Q0qxcvV7llB5UFBJb4VtDXkfpBXRDYdzHIMjyW7k6fsaHEwH7rRBCXQ0/s1600/mRemoteNG_2019-05-22_11-52-47.png" style="display: inline; float: left;" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJB8U7Log9ReZQ5XTBbiRa-kjaRNt7t7iuQoCYr89SjVxngjWCr_9KFlYCLGgj5hphvdj6byhJrkvNTBA5_xo-ab-HVv9frp4QqXl-5ESa0K0Dig_rHRyBxW6ftFZBkNzPndydofQ51g-/s1600/mRemoteNG_2019-05-22_11-53-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img align="left" border="0" data-original-height="242" data-original-width="859" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJB8U7Log9ReZQ5XTBbiRa-kjaRNt7t7iuQoCYr89SjVxngjWCr_9KFlYCLGgj5hphvdj6byhJrkvNTBA5_xo-ab-HVv9frp4QqXl-5ESa0K0Dig_rHRyBxW6ftFZBkNzPndydofQ51g-/s1600/mRemoteNG_2019-05-22_11-53-01.png" style="display: inline; float: left;" /></a></div><br />
<h3><br />
</h3><h3><br />
</h3><h3><br />
</h3><h3><br />
</h3><h3><br />
</h3><h3><br />
</h3><h3>Sample Output</h3><h4>Email</h4><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjCHqlGT3io7gg2RuF_pDkaB1grgyP17cfX96jYzgNqr5ip4fXZZOQ0l4TQkwYTwh5pljCCbKOKx4tZwMLOXHUidHpz_JC4m2-vsjnK9y3oEnDV_p3bojXUosOHlMa5C2DtgIkuRzRZZXs/s1600/mRemoteNG_2019-06-17_11-33-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="686" data-original-width="704" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjCHqlGT3io7gg2RuF_pDkaB1grgyP17cfX96jYzgNqr5ip4fXZZOQ0l4TQkwYTwh5pljCCbKOKx4tZwMLOXHUidHpz_JC4m2-vsjnK9y3oEnDV_p3bojXUosOHlMa5C2DtgIkuRzRZZXs/s1600/mRemoteNG_2019-06-17_11-33-28.png" /></a></div></div><div><br />
</div><div><br />
</div><h4></h4><h4></h4><h4></h4><h4> </h4><h4>MS Teams</h4><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzQUDxfPeTHREpU1ZKMoHepcvK4MShUtKNJzwBwdmnPdA2Jv-Am1JxRgGErfEk_YFQLAdXT9slV-STUOqhdZR9N3jzhBmwDC8wniFrJ4w30aszelfhAglNufnIhmqWcRbnSxw6Qh9ePGHq/s1600/mRemoteNG_2019-06-17_11-29-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="418" data-original-width="670" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzQUDxfPeTHREpU1ZKMoHepcvK4MShUtKNJzwBwdmnPdA2Jv-Am1JxRgGErfEk_YFQLAdXT9slV-STUOqhdZR9N3jzhBmwDC8wniFrJ4w30aszelfhAglNufnIhmqWcRbnSxw6Qh9ePGHq/s1600/mRemoteNG_2019-06-17_11-29-18.png" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />
<br />
<br />
</div>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-64231571951033132002019-03-13T09:51:00.000+08:002019-06-15T20:39:44.862+08:00How To Get Microsoft Graph API Token Using PowerShell<b><span style="color: red;">UPDATE</span></b>: This is now available as a module<br />
<a href="https://www.powershellgallery.com/packages/Office365TokenGet">https://www.powershellgallery.com/packages/Office365TokenGet</a><br />
<br />
One of the things that I had difficulty with when I was starting to work with MS Graph API was how to get authenticated. So here is a post that hopefully would help others start their coding with MS Graph API.<br />
<br />
This simple function helps you get a pre-authenticated token.<br />
<br />
<h3>
The Function Code</h3>
<script src="https://gist.github.com/junecastillote/5b478a9aa3bf4b4efdae4f5da2ced429.js"></script><br />
<br />
<h3>
The Function in Action</h3>
<br />
Note that I already have an App registered in Azure AD. This means that I already have the Client ID, Client Secret, and the Tenant Domain.<br />
<br />
I will not cover the Azure App Registration in this post.<br />
<br />
<h4>
Define Required Parameter Values with Variables</h4>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjYWEuf89FrjR5D6Kqfvx05RlBdSB78lQB90H_nUEPeVRmFo9lNyU1UTohGJLEPkslw7gPJgqUPv8lKONAJqnF3Th5LvuXeyIJw4OWE66FGCOLvyyrRvVSbjvpLEaz6rpLJtdCEjIl9LL/s1600/mRemoteNG_2019-03-13_09-31-16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="39" data-original-width="489" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjYWEuf89FrjR5D6Kqfvx05RlBdSB78lQB90H_nUEPeVRmFo9lNyU1UTohGJLEPkslw7gPJgqUPv8lKONAJqnF3Th5LvuXeyIJw4OWE66FGCOLvyyrRvVSbjvpLEaz6rpLJtdCEjIl9LL/s1600/mRemoteNG_2019-03-13_09-31-16.png" /></a></div>
<br />
<h4>
Acquire Token</h4>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHH36m9EUebHnTP_8dISlig-UZHI8qh3WR3HcN1fKy79vW-BWyqegJrsgU13geHgP4cGkhMJMaFvzTZpr_cgfMnepzVg1RZNYHRGRQiaE6JB-oDCAvnr2ESJN_FrK02oISJ9zODvdVwo0/s1600/mRemoteNG_2019-03-13_09-31-52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="24" data-original-width="793" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHH36m9EUebHnTP_8dISlig-UZHI8qh3WR3HcN1fKy79vW-BWyqegJrsgU13geHgP4cGkhMJMaFvzTZpr_cgfMnepzVg1RZNYHRGRQiaE6JB-oDCAvnr2ESJN_FrK02oISJ9zODvdVwo0/s1600/mRemoteNG_2019-03-13_09-31-52.png" /></a></div>
<br />
<h4>
Retrieve User Profile</h4>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIroQ3hS53Z4RLHOSzpgIUDo4fnktzac3bXVDO0geCh-BZMm2HdOU5Fx3RUU4mlkQTRkbM5Ud0Hx1XZIWuerKm2Q6GLOjYqQGSBJthH0JEcA83j8eJURJimB9eJr9BkbmZrN5MfbcyaPQg/s1600/mRemoteNG_2019-03-13_09-40-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="320" data-original-width="654" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIroQ3hS53Z4RLHOSzpgIUDo4fnktzac3bXVDO0geCh-BZMm2HdOU5Fx3RUU4mlkQTRkbM5Ud0Hx1XZIWuerKm2Q6GLOjYqQGSBJthH0JEcA83j8eJURJimB9eJr9BkbmZrN5MfbcyaPQg/s1600/mRemoteNG_2019-03-13_09-40-21.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<br />
That's the end of this simple demonstration on how to get MSGraph API Token using PowerShell.<br />
<br />June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-88088778809826696162018-10-29T21:41:00.000+08:002019-06-21T11:53:20.719+08:00Office 365 Service Health Monitor using Office 365 Management API v2 and PowerShell<div class="separator" style="clear: both; text-align: center;">
</div>
<b><span style="color: red;">NOTES:</span></b><br />
<span style="color: red;">May 30, 2019 - Updated post to show new App Registration experience.</span><br />
<br />
This script demonstrates how to retrieve the Office 365 Service Health Data using the <strong><u>Office 365 Management API</u></strong>, and send the email report using <strong><u>Microsoft Graph API</u></strong>.<br />
<strong><u><br />
</u></strong> <strong><u>The logic flow is simple:</u></strong><br />
<ol>
<li>Retrieve Office 365 Service Health Record (this is the only action done during the first run, saved to new.csv)</li>
<li>Read Old Records from the file (old.csv)</li>
<li>Compare retrieved records with old records (new.csv VS old.csv)</li>
<li>Report if there are new or updated records (updated.csv)</li>
</ol>
You may want to have this running as a scheduled task at an interval you prefer.<br />
<h3>
What is covered by this post?</h3>
<ul>
<li>App Registration in Azure AD</li>
<li>Configuring the Script</li>
<li>Running the Script and Generating Outputs / Reports</li>
</ul>
<h3>
What is NOT covered by this post?</h3>
This post does not cover the “<em>How-To”</em> of the said APIs, because they can already be found by following these links:<br />
<ul>
<li><strong>Office 365 Management APIs</strong> - <a href="https://docs.microsoft.com/en-us/office/office-365-management-api/" title="https://docs.microsoft.com/en-us/office/office-365-management-api/">https://docs.microsoft.com/en-us/office/office-365-management-api/</a></li>
<li><strong>Microsoft Graph API</strong> - <a href="https://developer.microsoft.com/en-us/graph/docs/concepts/overview" title="https://developer.microsoft.com/en-us/graph/docs/concepts/overview">https://developer.microsoft.com/en-us/graph/docs/concepts/overview</a></li>
</ul>
<h3>
Requirements</h3>
<ul>
<li>Application Registration in Azure AD (Application ID + Key + Permissions)</li>
<li>Exchange Online Mailbox (User or Shared Mailbox, for sending reports)</li>
</ul>
<h3>
Download and Change Logs</h3>
v1.5 (latest) - <a href="https://github.com/junecastillote/Get-O365HealthReport">https://github.com/junecastillote/Get-O365HealthReport</a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<ul>
<li>code cleanup</li>
<li>added code to cater to the new App Registration Keys special characters</li>
</ul>
v1.4<br />
<ul>
<li>code cleanup</li>
<li>fixed JSON conversion for the email report</li>
</ul>
v1.3<br />
<ul>
<li>added "exclusion" feature. (requested from this <a href="https://github.com/junecastillote/Get-O365HealthReport/issues/1">issue</a>)</li>
<li>the <b>exclusions.csv</b> file inside the <b>\resource</b> folder can now be used to exclude workloads from the report.</li>
</ul>
v1.2<br />
<ul>
<li>Modified to also check the changes in "Status" to trigger an update alert. (eg. Service Degradation to Service Restored). This is because I observed that some events' Last Updated Time does not change but the Status change which is not getting captured by the previous script.</li>
</ul>
v1.1<br />
<ul>
<li>Added “organizationName” field in config.xml</li>
<li>Removed “mailSubject” field from config.xml</li>
<li>Send one email per event (alerts are no longer consolidated in one single email)</li>
</ul>
v1.0<br />
<br />
<ul>
<li>Initial build</li>
</ul>
<br />
<br />
<h3>
App Registration</h3>
Note: Your account must be a Global Admin<br />
<ul>
<li>Go to <strong>Azure Active Directory</strong> > <strong>App Registrations</strong></li>
</ul>
<blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMaxarE_rk_cAREavY1tOIuZJOYKLjRSRjCnqxx6AvEK5FU0ztOxMmewf6qZAHiCBFe1M6yXlWJDSWnPi-RHEMoGwzRmjwsLCp9UcAPkui-0lB4gd5ukSD9OF6uWqlCWpHHIW4WEmng4KL/s1600-h/mRemoteNG_2018-11-07_13-43-15%255B6%255D" target="_blank"><img alt="" border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-jkGp9HD6XBoaNwyPLz07mPLWpkkkajU0Q_eVVTXsZ-TGEQgZFarDUATUfpKbLRlbfD5j3blljVjwyKCsg2kmdIiDVcAZUgzXoGD5VQqe65ufIlFe-E5gXyzWZoBrgAgc-LrmCpoYjDah/?imgmax=800" style="background-image: none; border: 0px currentcolor; display: inline;" title="" width="485" /></a></blockquote>
<ul>
<li>Click <strong>New Registration</strong><strong> </strong></li>
<li>Fill out the <strong>Name</strong>, <strong>Supported account types</strong> and <b>Redirect URI</b> as shown below, then click <strong>Create</strong></li>
</ul>
<blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0u-8V9WA8o7d-rmjWgzs1Onep257-amutRzf3co6N3Ncf_CbU3b1MxMLKaxS7G4xjYubU2qJlRWddLMdje2SRfc6Za3eI4y4NJ7gkV3uoCtj6Vtyk9utyzlj3KGvTcIwbIhNWu6em-38z/s1600/chrome_2019-05-30_04-13-44.png" imageanchor="1" style="display: inline !important; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="108" data-original-width="465" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0u-8V9WA8o7d-rmjWgzs1Onep257-amutRzf3co6N3Ncf_CbU3b1MxMLKaxS7G4xjYubU2qJlRWddLMdje2SRfc6Za3eI4y4NJ7gkV3uoCtj6Vtyk9utyzlj3KGvTcIwbIhNWu6em-38z/s1600/chrome_2019-05-30_04-13-44.png" /></a></div>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWx5ZWuhKaHJI9NbfZ3OIdjKTot3YwyvIXQRO_cvl4HIuMHZzDVOXXiC1vQ4R8RzY8vUZotYyYrIH0Uv-qWMBMTr-M00UoT5jmSh-jHOCntqEcGjI1ug-Z_Q3W1ne09igrqfFz3EsGjWfG/s1600/chrome_2019-05-30_04-15-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="102" data-original-width="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWx5ZWuhKaHJI9NbfZ3OIdjKTot3YwyvIXQRO_cvl4HIuMHZzDVOXXiC1vQ4R8RzY8vUZotYyYrIH0Uv-qWMBMTr-M00UoT5jmSh-jHOCntqEcGjI1ug-Z_Q3W1ne09igrqfFz3EsGjWfG/s1600/chrome_2019-05-30_04-15-28.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOwkj_ZI-UMywNGc72HycbnSevmHbcsZdTSPrGMEkRtxDWf0HzLwwtagqW8MUj8I9ZHbwO3Yz6Q7LcKe9IhT29cXb102ThhIEVYU6abdqwZgGuYXvcu9UjW23Q0Fro9ujFSZyquu4h8bL-/s1600/chrome_2019-05-30_04-17-09.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="127" data-original-width="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOwkj_ZI-UMywNGc72HycbnSevmHbcsZdTSPrGMEkRtxDWf0HzLwwtagqW8MUj8I9ZHbwO3Yz6Q7LcKe9IhT29cXb102ThhIEVYU6abdqwZgGuYXvcu9UjW23Q0Fro9ujFSZyquu4h8bL-/s1600/chrome_2019-05-30_04-17-09.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<ul>
<li>Then click <b>Register</b></li>
<li>Once the App is registered, copy the<strong> Application ID</strong> for later use.</li>
</ul>
<blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-I92fpqxCw_ZgOSmHcRxwkDpQBXTpH7fS2ozRG4PG0ETrcvrFmIXQ4NOdBSd73_RDGA_qcd-KKs8sRahgwLrbPdk2u70MjjXaAoVfZzs3KPi-Lm-hH0Vfb1ZPEYMzEN30VSHb-l4dh67i/s1600/chrome_2019-05-30_04-20-07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="219" data-original-width="325" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-I92fpqxCw_ZgOSmHcRxwkDpQBXTpH7fS2ozRG4PG0ETrcvrFmIXQ4NOdBSd73_RDGA_qcd-KKs8sRahgwLrbPdk2u70MjjXaAoVfZzs3KPi-Lm-hH0Vfb1ZPEYMzEN30VSHb-l4dh67i/s1600/chrome_2019-05-30_04-20-07.png" /></a></div>
</blockquote>
<ul>
<li>Click <b>Certificates and Secrets</b></li>
<li>Click <b>New client secret</b></li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu9IL7naHX98J0oYUnOlKSUKamII1YUe8BjwtM3uOpiQzfl4hbfr4CSSrmkFG-7o96irdKJWTQcV0MCxBZkUVRiHAptMDbbXRIBaLQGbAj4GgW09xScn9yLWQZ91W3UD8oKMZWRcQQj1Jw/s1600/chrome_2019-05-30_04-23-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="132" data-original-width="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu9IL7naHX98J0oYUnOlKSUKamII1YUe8BjwtM3uOpiQzfl4hbfr4CSSrmkFG-7o96irdKJWTQcV0MCxBZkUVRiHAptMDbbXRIBaLQGbAj4GgW09xScn9yLWQZ91W3UD8oKMZWRcQQj1Jw/s1600/chrome_2019-05-30_04-23-43.png" /></a></div>
<ul>
<li>Type in the <strong>Description</strong> and select the <strong>expiration</strong> for your key, then click <strong>Add</strong></li>
</ul>
<blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh29A57fy4n2O1wVi56VlT7jIJuMIpvNFwrpybfJw_UfjXARUBE-mqpUeOJlyMkDBJELyGVfZZ_yLlyWj_GsX5aSdfWjGNeXPlBN5t33X57tTsSQrHDGTSz_uAIVqG2EAo3i4vE92SMj4Qw/s1600/2019-05-30_04-25-25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="275" data-original-width="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh29A57fy4n2O1wVi56VlT7jIJuMIpvNFwrpybfJw_UfjXARUBE-mqpUeOJlyMkDBJELyGVfZZ_yLlyWj_GsX5aSdfWjGNeXPlBN5t33X57tTsSQrHDGTSz_uAIVqG2EAo3i4vE92SMj4Qw/s1600/2019-05-30_04-25-25.png" /></a></div>
</blockquote>
<ul>
<li>After clicking Add, the Key will be generated. You must copy this key value because it will not be shown again.</li>
</ul>
<blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZg98Ag3bZmaUUTEfDR8m6NvFPJb3hZ054AQBuHOFbPmuBs3j82oATO1u_-FGYImXKUvdB5KpMkdbe03dhP143bF8iluv3HWs1AWHuhK_MNo35ZcTM5XYyyoHIBYyBCaTSpfqrOKzGe-LT/s1600-h/mRemoteNG_2018-11-07_13-59-21%255B8%255D" target="_blank"><img alt="" border="0" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiULrryrJbOqlj-n7E5uXs5a7F-adzbmC6OsWdtFD0Mq-4B8_JYhu56FB363mdSTtNjxn5i3xAQ0whAQj8n02TbfjKe-9_e4GnF3eJfOkue7WUUrYbEaraLZeWX_XI5B1rYNN-FgqVCTtd4/?imgmax=800" style="background-image: none; display: inline;" title="" width="637" /></a></blockquote>
<ul>
<li>Go to <b>API permission</b>s and make sure you add these permissions </li>
</ul>
<blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsATySftT6Z-FHhy2zqFdxmG46a8msZDWUiYaYjIJJkeOlJ3eR4Gz5i8qVhYWL7o2nh8A03PUhJ5XTJU9fedw6tE3mNZFbfrom7u-SRwDLaCYT7gwCY_ezby1bZ9uFMcwTQRyQfYXasMFw/s1600/chrome_2019-05-30_04-28-36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="340" data-original-width="729" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsATySftT6Z-FHhy2zqFdxmG46a8msZDWUiYaYjIJJkeOlJ3eR4Gz5i8qVhYWL7o2nh8A03PUhJ5XTJU9fedw6tE3mNZFbfrom7u-SRwDLaCYT7gwCY_ezby1bZ9uFMcwTQRyQfYXasMFw/s1600/chrome_2019-05-30_04-28-36.png" /></a></div>
</blockquote>
<br />
<ul>
<li>Once Required Permissions are added, click <strong>Grant admin consent..</strong></li>
</ul>
<blockquote>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS6_7lohqRakzau5nZSaOSPceUoxL3I1Z0dVbeTkDr-GgJu355t3lM22avrb8RvHzJe6-OwyslrucZED73-ZL2ZLnBphllHT-j6WZ8x72tfxtYgC0Aahkn_-_Ey95W5zKkGkgw1068hNhN/s1600/chrome_2019-05-30_04-31-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="126" data-original-width="700" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS6_7lohqRakzau5nZSaOSPceUoxL3I1Z0dVbeTkDr-GgJu355t3lM22avrb8RvHzJe6-OwyslrucZED73-ZL2ZLnBphllHT-j6WZ8x72tfxtYgC0Aahkn_-_Ey95W5zKkGkgw1068hNhN/s1600/chrome_2019-05-30_04-31-01.png" /></a></div>
</blockquote>
<ul>
<li>Click <strong>Yes</strong></li>
</ul>
<blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiStFL2nB4uc6o5GlFaROXbiEJkCadewvCYRb7yc0Z_HFxfopwdiSkMe2JuMvKHiRw1N6q-U6UJ9-Q3uCqiUkAy204HayL5XAZt1Z43Q8Bk3KJm1mvMEnrUpqaC5ohLxbNx7fjh45D4tnBO/s1600-h/mRemoteNG_2018-11-07_14-16-59%255B4%255D" target="_blank"><img alt="" border="0" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgjlab7KcOalUqnaZOYbdXSBLOS_FGw7Ea7kMXCGkqFHJ6bosoOra5Z2iuP8zsFInmIkjpGMg2tCavJtWee13N6FBjl0bsjUqVXE_8hlZRkupI0pqr6itLvQiIoWZvZ5j51L70Zzf5eCI/?imgmax=800" style="background-image: none; display: inline;" title="" width="540" /></a> </blockquote>
<h3>
Script Configuration</h3>
Open the config.xml file and edit the values as necessary like the example below:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKrMlo-WIACYaY5NK0r6RBALNUyo_fuR5cTSsx5TXTNZxKDb3WeN9k0jBdu5TPXXVyENMm2wVX6hTMhaMLR6dZMDT4uH7o9xX7mcGv6F3Ri1-ifrzEJIvooWQVlfbVZ222MeEaBUL31Bah/s1600-h/mRemoteNG_2018-11-28_12-45-24%255B7%255D" target="_blank"><img alt="" border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBlJ6ubo2mryMz2M55BS81SJ3v_EpyK3eI5gP4FE4exlTHcrj-IMcF7je0rhp-0j_guMgSXfBvmnbM17k3i1Ms0WKeQKCjMJ8td2NohUsHfuQtUvVkBEIgLL-uiiJ-vAhcFN4-x0yi54xz/?imgmax=800" style="background-image: none; display: inline;" title="" width="774" /></a><br />
<strong><br />
</strong> <strong>sendEmail</strong> – set this to TRUE or FALSE depending on whether you want the report sent thru email.<br />
<strong>testMode</strong> – set this to TRUE or FALSE depending on whether you want to run in test mode or not. Test Mode will treat ALL items retrieved from the service health dashboard as NEW or UPDATE. When you’re ready to put this script in production, set this to FALSE<br />
<strong>clientID</strong> – this is the Application ID you copied from the App Registration in Azure AD<br />
<strong>clientSecret</strong> – this is the Key you copied from the App Registration in Azure AD<br />
<strong>tenantDomain</strong> – this is your Office 365 Tenant Domain<br />
<strong>toAddress</strong> – your intended recipients of the report, separate multiple recipients with a comma with no spaces.<br />
<strong>fromAddress</strong> – the primary smtp address of the Shared Mailbox or User Mailbox you want to use for sending the email report.<br />
<strong>organizationName </strong>– the name of your organization to reflect in the alert.<br />
<br />
<h3>
How to Exclude Workloads from the Report</h3>
<b>Note: This is applicable only from version 1.3.</b><br />
<ol>
<li>Open the <b><i>\resources\exclusions.csv</i></b> file</li>
<li>Change the Excluded value of the workload you want to exclude to 1 (0=include, 1=include)</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWv6R9n26Fv8BuUwzZ7yE13dVQkylwzx1ooD_NdzTpSkmcinreb8UMVTighoESd0UaZUb3BgN_yBYoW9GOPdD604bwvnlHj-twHJc_pWll-yZx8Tyqq7PFp5lY3yhN3KA000XfZV_xoag2/s1600/exclusions.csv.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="428" data-original-width="474" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWv6R9n26Fv8BuUwzZ7yE13dVQkylwzx1ooD_NdzTpSkmcinreb8UMVTighoESd0UaZUb3BgN_yBYoW9GOPdD604bwvnlHj-twHJc_pWll-yZx8Tyqq7PFp5lY3yhN3KA000XfZV_xoag2/s1600/exclusions.csv.png" /></a></div>
<h3>
Running the Script</h3>
<strong>IMPORTANT</strong>: In the first run, whether in Test Mode or not, will only generate the data that will be needed for future run comparisons.<br />
In this example, the script is in run Test Mode.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEzuU5f-Yytf_KNuYxAfHx_UaORNy4zCpKl_dfFCk6WETdKF_Vc3RSU1WihFrRY3FRODGpKf-PyM8ygq9EUUgdXT_0_uqVag1I1iQAd_7JHnntZpX8r0qZf5aeVDI4E_ekNaAS6KTv-c46/s1600-h/mRemoteNG_2018-11-28_12-49-03%255B4%255D" style="margin-left: 1em; margin-right: 1em;" target="_blank"><img alt="" border="0" height="204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeVpznjh7os-ghEgI3kq_2EasiEA328EmIDaF2gbbIJkXIJZzfJPUB0ujF-Xarg-Xtp0R5roGGX8nqtv72gOM5IdEWS-l2x2zchcmM5Xj3AfJcPMmcMTEkGnrpqOfukK8Yhuh_b259O7n-/?imgmax=800" style="background-image: none; display: inline;" title="" width="531" /></a></div>
<h3>
Sample Output</h3>
<h4>
Email</h4>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivWPjfNjgzYMqzyDC4T2jJbPwjQfRjrw1G2QfWehO50pOU7F4xQxE_cbvps8HYC8-zciWVBYOOVA62U2bXiiYrvfK4TpcaknrFqWzADx1MekccyIUF509MXnNVbmdu_CG1npkSEUDBWfbU/s1600-h/mRemoteNG_2018-11-28_12-50-41%255B6%255D" target="_blank"><img alt="" border="0" height="821" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbG6AhJHlLhSZ3GDxLD_TNCOZ-_7Nsatdd5mJHSdLzVQAEQAO_eDkjqb2xJ4_c9STamqgDEIgA25FrMErxQMyVZI4N89UmW0VrPpnz2F8PaWuxSalysS9fkIZgNRxSOwf_j3cUHDgPEBy/?imgmax=800" style="background-image: none; display: inline;" title="" width="701" /></a><br />
<h4>
HTML</h4>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP7e1umb_iAAi2yiVlHshBUYlNg8ZhtO1ne5rCjbwydy77oNqp-hLFef-r8GZO6dErMMazyTvn5gajkxbTXYCbgRIG8W14WiFNEhe6KnuQ68GgCDV-vSjae1QLvBoUWFT_1FV81zkNHmZ2/s1600-h/mRemoteNG_2018-11-28_12-52-22%255B3%255D"><img alt="mRemoteNG_2018-11-28_12-52-22" border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2oZB6TqlLsqXrWXXzM8BdLnFoG9HLtm7_PULBUoVB0qzu3gDW1zAMU458BaeIwDrEftlLK95nAd5gTvoBniqt9LyuKHOjk6URGdArOKvDEwrOT5TV6gauTJ-5iAPbRTB7MQJXVzj-ef7G/?imgmax=800" style="background-image: none; display: inline;" title="mRemoteNG_2018-11-28_12-52-22" width="401" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-XHcbdN0mQuH7hSZJrxu-k6x1l_CeS3N-FdJFFZljQH1aP_7xYKXEbbd0W1uIXEIUx6_IWNMzpDm-_dDGiiWZVR5ZFvfYP3v-TKTruZRqDJhHtyhmqDi4ibnoi17a779nV7vqkvnJGQhu/s1600-h/mRemoteNG_2018-11-28_12-53-17%255B4%255D" target="_blank"><img alt="" border="0" height="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhtaj92frhxniem5Us3hWdQqEjRwigsS1uKAXlYJo-kV_mzAFxT4-Sjdy4YgrDiLqCrUcV4NYZZ37ikiQpiFSKGiC7NLAeSszA7zImQLqndS77nb8RFJxoEh3AdGn7cL8MBqTgw9ldAA1r/?imgmax=800" style="background-image: none; display: inline;" title="" width="1038" /></a><br />
<br />
This script is functional, but I’m sure there can be many improvements. Or perhaps someone else has accomplished this differently. So please feel free to comment or modify and improve, just please don’t forget to credit the original source.June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com14tag:blogger.com,1999:blog-2301084935877276793.post-78697979158086057742018-10-20T20:24:00.002+08:002019-03-09T10:41:01.464+08:00Office 365 Mailbox Forwarding Rules Report using PowerShellBeing on top of who’s forwarding messages to who’s email, especially those being forwarded to external domains is essential to email security for administrators. Phishing attacks can leave your users’ mailboxes prone to data exfiltration by way of forwarding emails, and so being able to regularly review and audit mailbox forwarding rules is beneficial to protecting your company’s data.<br />
This script can be used to export a report of all the forward/redirect rules present in all user mailboxes.<br />
<h3>
<br />
</h3>
<h3>
Download Link</h3>
<a href="https://github.com/junecastillote/Export-ExoMailForwardRules" title="https://github.com/junecastillote/Export-ExoMailForwardRules">https://github.com/junecastillote/Export-ExoMailForwardRules</a><br />
<h3>
<br />
</h3>
<h3>
Requirements</h3>
<ul>
<li>Must have an Office 365 account that is assigned at least an Exchange Administrator role whose credentials will be used to connect to Office 365 PowerShell.</li>
<ul>
<li>It is important that the account is not MFA enabled as the script operates by paging and re-authenticates to Office 365 page.</li>
</ul>
<li>Must have a mailbox to be able to send the email report using Office 365 SMTP Relay. This could be the Service Account you’re using for the session, or a Shared Mailbox that the Service Account has Send As permission to. If you do not plan to send the report thru email, then you can disregard this requirement.</li>
</ul>
<h3>
<br />
</h3>
<h3>
How to use</h3>
<h4>
Setup Office 365 Credentials</h4>
<ul>
<li>Open PowerShell and change to the directory where the script is saved (eg. C:\Scripts\Export-ExoMailForwardRules)</li>
<li>Run this command:</li>
<strong>Get-Credential | Export-CliXml Office365StoredCredential.xml</strong><br />
<strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbWJDOkjh2HTJUmOPS0S3HE3NamVHSF_C0QgSrn4vhOCRzW3jjwQ4VeTNH73SoE1Hi3T40oJN2Y8INgenRTPWMC5z5dk8HzBoNV68boDUyc-dMXXgEhhFzQXjSx5EyjElkZZ532MV_XPG4/s1600-h/mRemoteNG_2018-10-20_21-33-11%255B2%255D"><img alt="" border="0" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgImDatu01IP4Z2tqDWutcB3MgmDRERZ2hK2tNJK-JYZPROkikJmUOR6vcu7e1LcTE_KZLTga7Gq5hroXgWo4yV4Zlkd_GPKNCNmGjMWZHVlWRKMpXm7p55djY0khly-u4ROHkFH8YJ-jm8/?imgmax=800" style="background-image: none; display: inline;" title="" width="733" /></a></strong>
<br />
<li>This saves the encrypted credential in the same folder</li>
<br />
</ul>
<h4>
<br />
</h4>
<h4>
Modify Variables</h4>
<h4>
Email Settings</h4>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibG6ywt6EotsL6f5uesb8XKYlnV3ueA53U-XWrRpPO4oZFYkXPLoFoVICf937LeiJX4k4PwUDErel3PwBEXcXOeLjMe9tsKE3yfzDr103jL_172f_x3zXOB043TwFoNekDTZmMecgg_mj0/s1600-h/mRemoteNG_2018-10-20_22-33-35%255B2%255D"><img alt="" border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGyGpDMvBFoXRZYBjqoZwnDoyybMSY_jhoHhrJhpz5e6wcpjJ2F9gjzMj_o6y9v6eKT6bLxMNx1KZBqUFf5xmSHhN0OcrSLNsm00-8dru6bEA-rvp7llJJa-5_UTUUoiWqUKw3D45URXV3/?imgmax=800" style="background-image: none; display: inline;" title="" width="542" /></a><br />
<strong>NOTE</strong>: The <strong><em>$sender</em></strong> value must be the actual email address of the service account or the shared mailbox used for sending the email report.<br />
<h4>
Paging</h4>
In cases where there are a large number of mailboxes to be processed, the Exchange Online PowerShell session may timeout/disconnect which would cause the script to fail. As a workaround, this script is configured to process the mailboxes in pages. By default, the page settings is set to 100 – which means after every 100 mailboxes processed, the script will re-establish and re-authenticate the PowerShell session. You can increase the page value but it is not recommended to set it too high.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtCeaGdity6TZ50wU9sT_-l6BDv6sRwrADHmPIVgyw_NiDoeoCOIkUICWFfLPFToo18kEEfcxfs_L7NGMWXV_XHM33Zu_1hLgHxQ0oM_97wN6tBZdmr7XdncHRUXH8oEmO5qW0kNIkLk7y/s1600-h/mRemoteNG_2018-10-20_22-51-45%255B2%255D"><img alt="" border="0" height="42" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyh-xIcN-uoKz-YBpwv3isus8t5pbEWChphXviXCsFsTAuodzTh8gvSQsgHfFXw4F95P6hQOJuLvgwfgGPidVkaseN4N_8YEvOi9BLE-BEjx9YzqCcH8zHoWsy1LlI7rssexWhPZenjrru/?imgmax=800" style="background-image: none; display: inline;" title="" width="122" /></a><br />
<h4>
Run the script</h4>
The script requires no parameters.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju2PX8hExoD99Av79liw2brcDWfIAQmqb4LJhj1rODkGVz0-DeFvMMb2tUJytwIERnxwqkWzu22gTQwUlDV97ZGSTqjIVTXG0TvzPsA_vbCr_Himu7ACl5YyWU74TVstUFEO0x5cKB88EB/s1600-h/mRemoteNG_2018-10-20_21-54-17%255B7%255D"><img alt="" border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirtGaDAQ0CbSeZ3ZIrLPiLQUCRvDR7hkZ1raK2qBwvxaDE9gDidR_UqnXAWSqHqSLPbXM6rQOMvMqLF94tOO3zvApuQ6kwDFxhyfMx1B9sRyXYCOtbLGqPz6R_Z588Z5XGjMb5ZxEH9A5m/?imgmax=800" style="background-image: none; display: inline;" title="" width="742" /></a><br />
<h3>
<br />
</h3>
<h3>
Output</h3>
CSV File<br />
The csv file gets saved in the “\Reports” folder<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY1are9ymKLytNKwXyvhNepuxu9YqxjPPK4oFqV7PEF29aZyjr0YU5I84H4ZIvEMbpizRRmeFKhr89BghvzAhx4vL-F4HbsIuG6p-VrIAUnh0l708PJ51af8kmx_OBnZgVX0lWv6s6Jr_V/s1600-h/mRemoteNG_2018-10-20_22-43-04%255B2%255D"><img alt="" border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkrWboN_cm4ywLPPCshSiFtnAqbT7O1f1AG68bkCdZvMi1T_L6eysGWDlX5Nm-qxfT48alZ9HZsSgBLQju84HWlNMcqeZDFuW4pihORWWAxkHGdBD2z6RPgzwE2NoaMV-GpZpqxPtUpWxF/?imgmax=800" style="background-image: none; display: inline;" title="" width="457" /></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDaEOci6OaEIQ7fUYUNXVb4om1Y23W2AqB7kjAxTemKE8aPim3YYewiZ4zbSNR1I9WZ4hP5Ff6hv70Ybrpi6CqRcjWBiiSp4QVriHQeKkml_93gWAxuTrZ6K1wFTEYNKhnBCEmBFUqnZ-5/s1600-h/mRemoteNG_2018-10-20_22-55-56%255B2%255D"><img alt="" border="0" height="70" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD8rvIKHdPQsxyhBfzl98_anN6MpVUxm9-nYDuX_5yboOL04eWIlsb0SgpcjBiLmeU-M9b_pI_OR8BwI0GiozxJwZSLejlDFjklmFiYqCiUJHUZv-hxhxw1xjxym6LMT3tbPk7QJJc74Vo/?imgmax=800" style="background-image: none; display: inline;" title="" width="820" /></a><br />
<h4>
Email</h4>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWxSDeK1WGt15Z_9RkIWGYjd-QqsOAMOuT1gdM09HicLw8xAxlvt6mYVYyn0Fqnkf7LwUH6AyYyA7Jb36cFrGC3WU2M-FbQgYxnAiIYoe-jJ_qxRPasnroCVR9VjGypOtlFE0yE1lAC0V7/s1600-h/mRemoteNG_2018-10-20_22-44-18%255B2%255D"><img alt="" border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFI9KtaYHED7tUcHsRehQhQV_SGuOmIBCPT6Rkz7pRMUiP2YqBmKa6Y-DNPcrDzH02XqnOTW3w0_CxkUHmDaFS8AFx4mxRC8wXectL7IsPwe2w5JPPQjSvmSLXoYdnUpS2btWbEtuVRF3Z/?imgmax=800" style="background-image: none; display: inline;" title="" width="470" /></a>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-64887033561213906642018-09-30T21:46:00.001+08:002018-10-01T00:21:35.471+08:00Enable Mailbox Auditing in Office 365 using PowerShell Script<p>One of the things that don’t happen automatically when provisioning an Office 365 Mailbox is getting the Mailbox Audit Enabled. This script can be run manually or by schedule to enable auditing on mailboxes.</p><h3>Download Link</h3><p><a title="https://github.com/junecastillote/Enable-EXOMailboxAudit" href="https://github.com/junecastillote/Enable-EXOMailboxAudit">https://github.com/junecastillote/Enable-EXOMailboxAudit</a></p><h3><br></h3><h3>Requirements</h3><ul><li>The Office 365 account to be used to run the script must be assigned an Exchange Administrator role in order to read and set mailbox audit settings.</li><li>Must have a mailbox to be able to send the email report using Office 365 SMTP Relay</li></ul><h4><br></h4><h3>Office 365 Credentials</h3><p>This script uses an encrypted credential (XML). To store the credential:<ul><li>Login to the Server/Computer using the account that will be used to run the script/task</li><li>Run this "<em>Get-Credential | Export-CliXml Office365StoredCredential.xml</em>"</li><li>Make sure that <strong><u>Office365StoredCredential.xml</u></strong> is in the same folder as the script.</li></ul><p><br></p><h3>Modify Variables</h3><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsZfXYFinLtlu11gMm1jR_FTz_k2ubQ7s5KN5gRkD9qymNDva6TcRrjsiJ-HT-_qga03leh0crCFrLQqF_iKLx7h4pZbQPWt5wOdd2nTZ03PZ-Jq4_6aRu8rgsPVfuTGzl5wjjCRWFK6hu/s1600-h/Code_2018-10-01_00-11-15%255B2%255D"><img width="590" height="86" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMijAJdi1C8IsMQfvG625vzwkfrbpujWDu_ohHMkpwKjxrIOo1EPTcbSxElOouvD1F6hfNT9GE9Qz7vsbzlJk64CVHCHM-DTT3lL26TRcEiqzFFxQQ8Ui0jf8J17bGtXO1QlPHMV3aJOuH/?imgmax=800" border="0"></a></p><ul><li>$sendEmail – set to $true or $false depending on whether you’d like the report to be send to email</li><li>$sender – This is the Sender Email Address – make sure this is the email address or the Office 365 Credential you are using for the script.</li><li>$recipients – These are the recipient addresses. To add multiple recipients, separate with comma.</li><li>$subject – This will show as the subject of the email report.</li></ul><p><br></p><h3>Run the script</h3><p>The script requires no parameters.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSgHiG8q3IHg2k88bI8cd6qrqnG1Llhbn709e2yvfnkKmH-ZoiWOCtll9VrFxOoSUp_DEq3i5kevckjYVsa7d4qjDh-_-v5u2EGwiJa4A0dpK0QhwVDN2m97vjKfTel2amFBr_RASaOx5l/s1600-h/2018-10-01_00-09-50%255B3%255D"><img width="828" height="295" title="" style="display: inline;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuPp6HtaEaONKTHcwWbIA2ApYTs_l86AEd35Wv_6mglpouiRSRhhqwUcZBDIHqBMfAL9r5vriE_YXJswppZ-_MWHbokuqEBcJ3zJvIShM9O66Rw92VFRvmZK_O-ZlfhO-U3pqhwtRI9MTn/?imgmax=800"></a></p><h3>Sample Report</h3><h4>Email</h4><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik8aLBz3alotdwr2ryAWxyeYLWr5V6BNfLc7gx4UPkA1tO2Tm7vG2FG75Gom4GM_JWC8xpb-fx7qhmv3qVRxvM8l3sgrSJkTTvMFwTQYmvLj3UwOkGCFjpAt6ZfZPDD1-JB5_9i6snDcMx/s1600-h/mRemoteNG_2018-10-01_00-10-08%255B2%255D"><img width="719" height="344" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTfRDGrgC4VXARQ0V1FMcRD7XclQOAtTgQV7XuQE5X802-Iv2_QKPhSNHoqJB5C4jD10nbLve7NnCACsBoGno11NJTEG_c1y8hHUvhb2_ivgc0sbZzKJ3TEtbl3P0t5tEcXr94bqtVshQd/?imgmax=800" border="0"></a></p><p>CSV</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe3ZuJaeeLGNcj_-ALxiO5Ya7zIH8Nytbns68J8m5_HPzH8xuOHay7q3AU938h6moTKFuj093UUrlCDfqn7J7Dglj4_gJdGpdvm2C5xJttSxx165u78ZmDk_prYOsM2Kq9sKoTi9bakfCy/s1600-h/mRemoteNG_2018-10-01_00-10-20%255B2%255D"><img width="362" height="136" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwL8-D6hpYwo1QBMGe1YYwsIeW4tS-T8pkWPGf5l6-Sozq2p7-stfWgItrYq_T7zJL_vyFzoobzNMW1EVgBjzRZQ-84euMz94s9z92eG3icSDwP9QOCfoEbCXMYzn6Va6JJs0Qpu2PxMe/?imgmax=800" border="0"></a></p>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-29751394626591896272018-09-26T13:40:00.001+08:002018-09-30T23:18:55.233+08:00Monitoring Event IDs using PowerShell<p>I know that there are 3rd party commercial solutions that can monitor your servers for events IDs. But most of the time these solutions comes with features that you don’t really need and can cost some serious cash. Or maybe your company already have one in place but doesn’t always work as expected, and you could use a custom monitoring script as backup.</p><p>This script is for monitoring a list of events ids from local or remote computers. Can be configured to send the report by email or just write to an HTML output.</p><h3>Download Link</h3><p><a title="https://github.com/junecastillote/PSEventMonitor" href="https://github.com/junecastillote/PSEventMonitor">https://github.com/junecastillote/PSEventMonitor</a></p><h3>How to Use</h3><p>Modify the CONFIG.XML file to confirm with your requirements</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtNctVDddMoB_79af9N8QnTzKnAVoK7yM8Y0WDF-9U0hf1J06YpR2qce-J1ZuB2B5jJz7vJF0aDyX6PZN1N4Ik8cgW3WTYJZ-35MJA2563hPAcE3DNCpvSStxOGlQZoRLdXkYD5qpD6mIw/s1600-h/mRemoteNG_2018-09-28_01-01-22%255B3%255D"><img width="700" height="256" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNXNEYgJ6foAswjIzxpnMzV69LRWRllw3Mt3p_IRiv2cgZTVnEIM5cKD5AwZ4J7leeJOQLP7ct7dQH8pmppNfhSK27xC_SZhyphenhyphenkl-GA5f9ASE2PYBqtNSv4-B1oUsvZd9eDz_hM3dHu9GKq/?imgmax=800" border="0"></a></p><p>Modify the “application.txt” to contain the event IDs you need to monitor.<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXLqwlB1V61cfawQqTGlpNI2LSqudOYH96S4DH0IX6BzdTEMheBCOb1BzOwYd2hf1wiHuEIuYj2IDyLXDxrtymcAV6aAQBbUf2f_bb0dobL1CD1-T2666zQa9ZuS_8LYrMTiOZR8X34P53/s1600-h/mRemoteNG_2018-09-28_01-04-47%255B3%255D"><img width="441" height="85" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivUaD0ijfPXdk0mieDhAwwvNd6UoUarCTbjmzge9qkq50fk5MSEzI2kg5P3ckTyQE7GNx1GSW6voy0JEfyY-jbIL8volPbYwQxn1Fu-I6H1Ia6B4sh3evO0XzSfwz_avt3ezsLludeT-Ga/?imgmax=800" border="0"></a><p>Then you can run the script, no parameters required because it reads the configuration from the XML file.<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbxNsG5cOjmyjXqrpBC_z5ubld84TkEkSOvMcEu-ZjEiiBaekfYi_L8S-e6NY4Frnhu2oPQTv5K1ndaBGLso7dS1wUQfkKMTc1a3JW7Q5nvg29ATnvye9K6IMeBoK3O3fKwXchFrkynCnw/s1600-h/mRemoteNG_2018-09-28_01-03-03%255B3%255D"><img width="443" height="244" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY-pn6TtVSo1peQB28sqoXOFRCNhokgO6WnbG2ZOH8XloIFb_VgAzdAi3TWPzVN42nORYc1QtURrChwCTwHWj1g16C1HXCcKx8_YDBYIBkjB2Y0b8WH7sSrf00FH2PLqhwY4Y7QZrXj2hT/?imgmax=800" border="0"></a><h3>Sample Reports</h3><h4>HTML file</h4><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoV2nxEgS-UCIkqoQIcKHZzlr2Cc5jSHdqjbH6THsPnhJd5qvwJ05vMv_w7lTmS9QoaAMCTsfH_HhHrzDhTjVqfPJAhUAhWSRNhjpd_ZRrlVmHVv0ndIJfo2uyqVHaPrXUGwLDLwOFs0QU/s1600-h/mRemoteNG_2018-09-28_00-55-58%255B3%255D"><img width="808" height="481" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU_YOIgcJIeuhUN3qwP9jchUOPI1MT6xBCHQx5aPXoWihxjAasEG8Xs2Km25R6Bb1UN1V7xF_WKSsqAmeG4bWWGe9bZ4OqOv7gOYeqHoatYIQncozJWGsutixIzCXm-5_6-i-slXp_T7m8/?imgmax=800" border="0"></a></p><h4>Email</h4><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhWOf778Ju3ZCNCbHLrBCi27Q83z7nobUFgJWjhfMv4om11Oj3H4BfsaVvjVMcVYuh3FymkkM1t6Y4hvknjTYJtKrUuvK5H-_P4Rjqu_raHA4o5iXn396WFqpqu37F4H4yQRPjjLpu44E8/s1600-h/mRemoteNG_2018-09-28_00-56-44%255B2%255D"><img width="995" height="442" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirBKI1zcg1F7zA0OjiBPZyLeKQv69WvKyRZbPKJ6a-W-PGZ36kDKh_3u8a8xnJvDxD6XIrOfPKOLkltjMKV83p4t5_6Bx7kTRCrMqKk4dCZYBSscqgwM_5x_zJSq_bAqYn4zM5WXZmx83N/?imgmax=800" border="0"></a></p><p><strong>Attribution:</strong><p><strong>This work is based on the script from this <a href="http://community.spiceworks.com/scripts/show/1714-central-monitor-powershell-event-log-email-reporter" target="_blank">link</a>.</strong>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-64358080997957648312018-08-18T13:40:00.000+08:002019-06-04T20:59:58.280+08:00Generate DNS MX Record Report using PowerShellWhen you manage an email system, you’re sure to deal with MX records, and sometimes it is good to be able to generate a report of all the DNS MX Records for your domains to monitor their validity or availability. Being caught by surprise as your MX records go missing resulting in incoming mail delivery failures is never good.<br />
This script can query a list of domains for their MX records, and generate a report which can be also sent as an email. Depending on your purpose, you can just run it manually or setup a task to run the script at an interval or daily schedule.<br />
<h3>
Requirements</h3>
This script requires PowerShell version 5.1<br />
<h3>
How to Install</h3>
<h4>
From GitHub Repository</h4>
You can download the latest version of the script from this link, and just save it in you preferred folder.<br />
<a href="https://github.com/junecastillote/Get-MXReport" title="https://github.com/junecastillote/Get-MXReport">https://github.com/junecastillote/Get-MXReport</a><br />
<h4>
From PS Gallery</h4>
This script can be installed from PSGallery by running this command:<br />
<span style="background-color: #333333; color: white; font-family: Consolas;"><span style="color: yellow;">Install-Script</span> Get-MXReport <span style="color: #cccccc;">–Scope</span> AllUsers</span><br />
Once completed, the script will be installed in “C:\Program Files\WindowsPowerShell\Scripts” by default, and is added to the PATH.<br />
<h3>
How to Use</h3>
<table border="1" cellpadding="2" cellspacing="0"><tbody>
<tr> <td valign="top"><span style="color: black; font-family: Consolas;"><strong><span style="color: blue;">Get-MXReport.ps1</span></strong> </span><br />
<blockquote>
<span style="color: black; font-family: Consolas;">[-domains] <string[]> </span><br />
<span style="color: black; font-family: Consolas;">[-outputDirectory] <string> </span><br />
<span style="color: black; font-family: Consolas;">[[-nameServer] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-logDirectory] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-headerPrefix] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-sendEmail] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-sender] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-recipients] <string[]>] </span><br />
<span style="color: black; font-family: Consolas;">[[-smtpServer] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-smtpPort] <string>] </span><br />
<span style="color: black; font-family: Consolas;">[[-smtpCredential] <pscredential>] </span><br />
<span style="color: black; font-family: Consolas;">[-smtpServerRequiresAuthentication] </span><br />
<span style="color: black; font-family: Consolas;">[-smtpSSL]</span><br />
<span style="color: black; font-family: Consolas;"> [-attachCSVReport] </span><br />
<span style="color: black; font-family: Consolas;">[<CommonParameters>]</span></blockquote>
</td> </tr>
</tbody> </table>
<h3>
Examples</h3>
<h4>
EXAMPLE 1</h4>
<h4>
</h4>
<table border="1" cellpadding="2" cellspacing="0"><tbody>
<tr> <td valign="top"><span style="font-family: Consolas;"><span style="font-family: Consolas;"><span style="font-family: Consolas;"><span style="color: blue;">Get-MXReport.ps1</span> <span style="color: #4f81bd;">–domains</span> </span></span>“gmail.com”,”lazyexchangeadmin.com” <span style="color: #4f81bd;">–outputDirectory</span> C:\Scripts\output</span></td> </tr>
</tbody> </table>
This example queries the MX record for the specified domains and save the HTML and CSV report to the specified folder<br />
<h4>
EXAMPLE 2</h4>
<table border="1" cellpadding="2" cellspacing="0"><tbody>
<tr><td valign="top"><div align="left">
<span style="font-family: Consolas;"><span style="color: #646b86;">$domainsList</span> = “gmail.com”,”yahoo.com”,”lazyexchangeadmin.com”</span></div>
<div align="left">
<span style="font-family: Consolas;"><span style="font-family: Consolas;"><span style="color: blue;">Get-MXReport.ps1</span> <span style="color: #4f81bd;">–domains</span> $domainsList <span style="color: #4f81bd;">–outputDirectory</span> <span style="font-family: Consolas;">C:\Scripts\output</span> –<span style="color: #4f81bd;">sendEmail</span> OnError <span style="color: #4f81bd;">–sender </span><a href="https://www.blogger.com/null">sender@domain.com</a> <span style="color: #4f81bd;">–recipients</span> <a href="https://www.blogger.com/null">recipient1@domain.com,recipient2@domain.com</a> <span style="color: #4f81bd;">–smtpServer</span> smtp.server.com <span style="color: #4f81bd;">–smtpPort</span> 25 <span style="color: #4f81bd;">–AttachCSVReport</span></span></span></div>
</td></tr>
</tbody></table>
This example queries the MX records, save the reports to the specified folder and if a failed lookup is logged, it will send the email report to the specified recipient using a non-authenticated SMTP relay and the CSV report is attached to the email.<br />
<h4>
EXAMPLE 3</h4>
<table border="1" cellpadding="2" cellspacing="0"><tbody>
<tr><td valign="top"><div align="left">
<span style="font-family: Consolas;"><span style="color: #646b86;">$domainsList</span> = “gmail.com”,”yahoo.com”,”lazyexchangeadmin.com”</span></div>
<div align="left">
<span style="font-family: Consolas;"><span style="color: #646b86;">$smtpCredential</span> = (<span style="color: blue;">Get-Credential</span>)</span></div>
<div align="left">
<span style="font-family: Consolas;"><span style="font-family: Consolas;"><span style="color: blue;">Get-MXReport.ps1</span> <span style="color: #4f81bd;">–domains</span> $domainsList <span style="color: #4f81bd;">–outputDirectory</span> <span style="font-family: Consolas;">C:\Scripts\output</span> –<span style="color: #4f81bd;">sendEmail</span> OnError <span style="color: #4f81bd;">–sender </span><a href="https://www.blogger.com/null">sender@domain.com</a> <span style="color: #4f81bd;">–recipients</span> <a href="https://www.blogger.com/null">recipient1@domain.com,recipient2@domain.com</a> <span style="color: #4f81bd;">–smtpServer</span> smtp.office365.com <span style="color: #4f81bd;">–smtpPort</span> 587 <span style="color: #4f81bd;">–smtpSSL</span> <span style="color: #4f81bd;">–AttachCSVReport</span> <span style="color: #4f81bd;">–smtpServerRequiresAuthentication</span> <span style="color: #4f81bd;">–smtpCredential</span> $smtpCredential</span></span></div>
</td></tr>
</tbody></table>
This example queries the MX records, save the reports to the specified folder and if a failed lookup is logged, it will send the email report to the specified recipient using an authenticated SMTP relay via Office 365, port 587 with SSL.<br />
<br />
<br />
<h3>
Required Parameters</h3>
-<strong>domains</strong><br />
<ul>
<li>Type: String (multiple, array)</li>
<li>Description: List of mail domains to query.</li>
<li>Example: “contoso.com”,”gmail.com”</li>
</ul>
-<strong>outputDirectory</strong><br />
<ul>
<li>Type: String (directory path)</li>
<li>Description: Path to where the reports will be saved.</li>
<li>Example: C:\scripts\report</li>
</ul>
<h3>
<br />
</h3>
<h3>
Optional Parameters</h3>
-<strong>nameServer</strong><br />
<ul>
<li>Type: String</li>
<li>Description: Name or IP of the custom DNS Server to use for lookup. If not specified, script will use the local DNS Server IP of the machine.</li>
<li>Example: “8.8.8.8”</li>
</ul>
<strong>-logDirectory</strong><br />
<ul>
<li>Type: String</li>
<li>Description: Path to where the session transcript log should be saved. Logging will only work if this is specified.</li>
<li>Example: C:\scripts\log</li>
</ul>
<strong>-headerPrefix</strong><br />
<ul>
<li>Type: String</li>
<li>Description: String that will appear in front of the report title or email subject. Can be any string value.</li>
<li>Example: MyCompanyName</li>
</ul>
<strong>-sendEmail</strong><br />
<ul>
<li>Type: String</li>
<li>Valid values: </li>
<ul>
<li>Always – Send email report everytime.</li>
<li>OnError – Send email report only when there’s a failed lookup result.</li>
</ul>
<li>Description: If specified, the script will trigger sending of the report through email.</li>
<li>Example: –sendEmail Always, –sendEmail OnError</li>
</ul>
<strong>-sender</strong><br />
<ul>
<li>Type: String</li>
<li>Description: The email address that will appear as the sender of the email</li>
<li>Example: <a href="mailto:sender@domain.com">sender@domain.com</a></li>
</ul>
<strong>-recipients</strong><br />
<ul>
<li>Type: String</li>
<li>Description: The recipient address or addresses of the email report. This parameter is required if -sendEmail is used.</li>
<li>Example: <a href="mailto:recipient1@domain.com,recipient2@domain.com">recipient1@domain.com,recipient2@domain.com</a></li>
</ul>
<strong>-smtpServer</strong><br />
<ul>
<li>Type: String</li>
<li>Description: The IP address, Hostname, or Fully-Qualified Domain Name of the SMTP Relay Server. This parameter is required if -sendEmail is used.</li>
<li>Example: smtp.server.com</li>
</ul>
<strong>-smtpPort</strong><br />
<ul>
<li>Type: Integer</li>
<li>Description: The SMTP Port Number to be used along with the –smtpServer. This parameter is required if -sendEmail is used.</li>
<li>Example: 25</li>
</ul>
<strong>-smtpServerRequiresAuthentication</strong><br />
<ul>
<li>Type: Switch</li>
<li>Description: Use if the SMTP server requires authentication to be able to relay messages. There is no need to specify any value for this parameter.</li>
</ul>
<strong>-smtpCredential</strong><br />
<ul>
<li>Type: PSCredential</li>
<li>Description: The login credential for the SMTP server authentication. This parameter is required if -smtpServerRequiresAuthenticationis used.</li>
<li>Example: $smtpCredential = Get-Credential</li>
</ul>
<strong>-smtpSSL</strong><br />
<ul>
<li>Type: Switch</li>
<li>Description: Use this switch if the SMTP Relay connection requires SSL.</li>
</ul>
<h3>
<br />
</h3>
<h3>
Sample Output</h3>
<h4>
HTML Email Summary Report</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Zje6IWxJz5FV0Gu6L9aTmv-Svr8ExAkzGPn6kwtTeu45LDepAAfvEHD8ztS8-1T3H_0FDcdxQdSQ844uAIDVeaAZhGQTypIkeBLGStCFazKqfNFYKfk3PhxnfUUMDOHp69QQ9SvflK_8/s1600/mRemoteNG_2019-06-04_20-56-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="1013" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Zje6IWxJz5FV0Gu6L9aTmv-Svr8ExAkzGPn6kwtTeu45LDepAAfvEHD8ztS8-1T3H_0FDcdxQdSQ844uAIDVeaAZhGQTypIkeBLGStCFazKqfNFYKfk3PhxnfUUMDOHp69QQ9SvflK_8/s1600/mRemoteNG_2019-06-04_20-56-50.png" /></a></div>
<br />
<br />
<h4>
CSV Report</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9kDp42-O7n4vxGwNSyTIy8XRuKuG0g_cp_qOZEZ6PNCWJx4d9STRlfJf5TOtgBIf651mK9D10NQppSWriC2Px7aRu1ysfAGHTyGu0h-qjQ2YscoN-O-lynjCXf7sVS_u_nyfxVSg93R-h/s1600/mRemoteNG_2019-06-04_20-59-11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="110" data-original-width="1008" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9kDp42-O7n4vxGwNSyTIy8XRuKuG0g_cp_qOZEZ6PNCWJx4d9STRlfJf5TOtgBIf651mK9D10NQppSWriC2Px7aRu1ysfAGHTyGu0h-qjQ2YscoN-O-lynjCXf7sVS_u_nyfxVSg93R-h/s1600/mRemoteNG_2019-06-04_20-59-11.png" /></a></div>
<div>
<br /></div>
June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-73435895602565632192018-08-13T13:05:00.000+08:002019-03-09T10:37:16.327+08:00Checking Website Up Status using PowerShell<h3>
Overview</h3>
<div>
This script can be used to query a list of sites and produce an HTML report of their status. I created this script in order to get a report of SharePoint sites that my team manage without having to check the site one by one to see if they are up or not.</div>
<div>
<br /></div>
<h3>
Download</h3>
<div>
https://github.com/junecastillote/Get-WebUpStatus</div>
<div>
<br /></div>
<h3>
How to use</h3>
<h4>
Modify the configuration file</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHGKFo8R3XkdPLgpU0nTV5kWVa7XvqPAGUcZgjWisLc23vBVJY5Q4BYyNeLZWjxNpVpbgk6mZXfJg6CnQXNTfDs8pq_llU2TgCb0WyMuQaI1L2F_YKdDIcM-y7mzfmS-Onde_N54YzLFYo/s1600/mRemoteNG_2019-03-09_01-35-53.png" imageanchor="1" style="display: inline !important; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="255" data-original-width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHGKFo8R3XkdPLgpU0nTV5kWVa7XvqPAGUcZgjWisLc23vBVJY5Q4BYyNeLZWjxNpVpbgk6mZXfJg6CnQXNTfDs8pq_llU2TgCb0WyMuQaI1L2F_YKdDIcM-y7mzfmS-Onde_N54YzLFYo/s1600/mRemoteNG_2019-03-09_01-35-53.png" /></a></div>
<div>
</div>
<div>
<br /></div>
<div>
<ul>
<li><b>enableDebug </b>(1 = ON, blank = OFF)</li>
<ul>
<li>Enable or disable the transcript logging</li>
</ul>
<li><b>sendEmail </b>(1 = ON, blank = OFF)</li>
<ul>
<li>Enable of disable sending of the report via email</li>
</ul>
<li><b>alertsOnly </b>(1 = ON, blank = OFF)</li>
<ul>
<li>Indicates whether the report will only be sent if there are errors</li>
</ul>
<li><b class="">mailFrom</b></li>
<ul>
<li>mail sender address</li>
</ul>
<li><b class="">mailTo</b></li>
<ul>
<li>mail recipient addresses. multiple addresses can be separated by comma</li>
</ul>
<li><b class="">mailServerName</b></li>
<ul>
<li>IP address, hostname or FQDN of the smtp relay server</li>
</ul>
<li><b class="">mailServerPort</b></li>
<ul>
<li>SMTP server port to use. Normally this does not need changing, unless your SMTP server is listening on a different port.</li>
</ul>
<li><b class="">sitesListFile</b></li>
<ul>
<li>this indicates the location of the text file containing the list of sites to query</li>
</ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjarbT2xXTfwyjDmrKO1czLrNcjKScd2j4avog3bffWG45WCvhhXKY77-TYqOZ4sQxBGISa3xg5GSlITl8O4_HcqjXYQlVBSPOIQG4JP_MbahPSeNOGcOjhFXA-l8e0yP99Cg86-mtFtYu1/s1600/mRemoteNG_2019-03-09_01-52-52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="123" data-original-width="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjarbT2xXTfwyjDmrKO1czLrNcjKScd2j4avog3bffWG45WCvhhXKY77-TYqOZ4sQxBGISa3xg5GSlITl8O4_HcqjXYQlVBSPOIQG4JP_MbahPSeNOGcOjhFXA-l8e0yP99Cg86-mtFtYu1/s1600/mRemoteNG_2019-03-09_01-52-52.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h4>
Run the script</h4>
</div>
<div>
Syntax: <i>.</i><i>\Get-WebUpStatus.ps1 -configFile <file location=""></file></i></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVn6PrIi_HlhSr-xz6YYzaw4QoSO8hujLNRULr6rhtizinJaPbg_ZrWz0KzwHtIVjol5RdP_39xffs00gz5auq9w8qHprcndET1pMMd9UKFiNHPglVXoi9nr71qUOeTIQ2iaWUpPcpRABB/s1600/mRemoteNG_2019-03-09_01-55-51.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVn6PrIi_HlhSr-xz6YYzaw4QoSO8hujLNRULr6rhtizinJaPbg_ZrWz0KzwHtIVjol5RdP_39xffs00gz5auq9w8qHprcndET1pMMd9UKFiNHPglVXoi9nr71qUOeTIQ2iaWUpPcpRABB/s1600/mRemoteNG_2019-03-09_01-55-51.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3>
Output</h3>
<div>
The HTML file report will be created inside the same folder where the script is located</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGud5Qb6d-8xmqJD-xRpKuaA_1TAcMsof5WHfxY7twpVo0oKMRWUprGj0_E8SeMdgx_zr77WoT5vSiIbNqg_BykGufLpwhhW5B2EjHt4sE8LJYLQauBQ1dHZkxj7xK1FKinPlltTUiz_I9/s1600/mRemoteNG_2019-03-09_01-57-57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="183" data-original-width="518" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGud5Qb6d-8xmqJD-xRpKuaA_1TAcMsof5WHfxY7twpVo0oKMRWUprGj0_E8SeMdgx_zr77WoT5vSiIbNqg_BykGufLpwhhW5B2EjHt4sE8LJYLQauBQ1dHZkxj7xK1FKinPlltTUiz_I9/s1600/mRemoteNG_2019-03-09_01-57-57.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
And if the <i>sendEmail </i>parameter is turned on, the same HTML content will be sent via email<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaeRqAvOaqreNv6yBvQWQAP0eX-ueaZff4YYSUqVqxfWOHwHyBnEmXYSvi4xjSCaKpHCTFwRqE9kisPUeK8WIMl5ayjs5LVscQw6F42OkMwGtfrjEMoDCfYmHHEHCRkfELXv2pj8bjt7MA/s1600/mRemoteNG_2019-03-09_02-00-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="604" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaeRqAvOaqreNv6yBvQWQAP0eX-ueaZff4YYSUqVqxfWOHwHyBnEmXYSvi4xjSCaKpHCTFwRqE9kisPUeK8WIMl5ayjs5LVscQw6F42OkMwGtfrjEMoDCfYmHHEHCRkfELXv2pj8bjt7MA/s1600/mRemoteNG_2019-03-09_02-00-14.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3>
Use as Scheduled Task</h3>
<div>
If you plan to use the script with Task Scheduler, here's a sample reference.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4dX9s1UHGVT6cNaGviYdaS675jRe6emgL65S0rBO0ghPKoPbhz6zjDBDTYk8NL4JNQtiFMrHJdkciHI03FPpGlz5eVtoZAKwGr_UWEyoSJTaMLuGjtbOmjTe84o3UXdRPRtkZz9cdUrgL/s1600/mRemoteNG_2019-03-09_02-04-51.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="632" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4dX9s1UHGVT6cNaGviYdaS675jRe6emgL65S0rBO0ghPKoPbhz6zjDBDTYk8NL4JNQtiFMrHJdkciHI03FPpGlz5eVtoZAKwGr_UWEyoSJTaMLuGjtbOmjTe84o3UXdRPRtkZz9cdUrgL/s1600/mRemoteNG_2019-03-09_02-04-51.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjudX45GHYdgd7SUMJdSnx9lvv2r51Qye5j4h_mfdLk-tWF-r8WSbb4IchjgGsrILX8XZiD1gD6JIeiODuAZqQcb-jEnFuebwZ_rTcnWMxxZtaLq2lXRZjJy1mPsKB-3pNO6iVZ526XmpEP/s1600/mRemoteNG_2019-03-09_02-05-27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="517" data-original-width="594" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjudX45GHYdgd7SUMJdSnx9lvv2r51Qye5j4h_mfdLk-tWF-r8WSbb4IchjgGsrILX8XZiD1gD6JIeiODuAZqQcb-jEnFuebwZ_rTcnWMxxZtaLq2lXRZjJy1mPsKB-3pNO6iVZ526XmpEP/s1600/mRemoteNG_2019-03-09_02-05-27.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdrCDhJqfrJ_Rf7vvLDFVlzCIgbaY1HuoGfFxINWbrZgkIe0caIk6sj5K_sTvoQV7XwCtX9uxAxtj2mZ0jAUwr9CcLW3YeVkqjHNTfOg-YJ_tLhLFajlqrSxK6NN0kvDvlPa0P2IIvPRPc/s1600/mRemoteNG_2019-03-09_02-05-41.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdrCDhJqfrJ_Rf7vvLDFVlzCIgbaY1HuoGfFxINWbrZgkIe0caIk6sj5K_sTvoQV7XwCtX9uxAxtj2mZ0jAUwr9CcLW3YeVkqjHNTfOg-YJ_tLhLFajlqrSxK6NN0kvDvlPa0P2IIvPRPc/s1600/mRemoteNG_2019-03-09_02-05-41.png" /></a></div>
<div>
<br /></div>
<div>
Program/script: </div>
<div>
<span style="background-color: yellow;"><i>powershell</i></span></div>
<div>
Arguments: </div>
<div>
<i style="background-color: yellow;">-command C:\Get-WebUpStatus\Get-WebUpStatus.ps1 -configFile C:\Get-WebUpStatus\config.xml</i></div>
<div>
<br /></div>
<h3>
End of Post</h3>
<div>
Please report issues in the Github repository.</div>
<ul><ul>
</ul>
</ul>
June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-92006971794000540112018-08-12T01:38:00.001+08:002018-08-20T10:45:03.898+08:00Monitor Azure AD LastDirSyncTime Using PowerShell<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvI1TpXxRuNVkP3pjx6Zkk2gzOieyJubK__35MWK3CGUaGpXCHOoZ55rZXafxVq5ROy-Eb3kbVYW7ODgjZ4j3ibtUBNp8dnwd3tZjGT5-WAaz5hyLM-JNa2jb00IANLlBf6YPsNgZ7GUgw/s1600-h/Office365Logo_256x254px%255B5%255D"><img width="158" height="158" title="Office365Logo_256x254px" align="left" style="border: 0px currentcolor; border-image: none; float: left; display: inline; background-image: none;" alt="Office365Logo_256x254px" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDOqOL_ge7-2gtMzKteGOhUOa-WvNZ2rOSRdF2EOZQRuTpf7cYGRq6eDwLHLZycOuzpdQrIRLV_JnSPINpy5C5G4tAtGxqWlyky4E8Ba8jH0Wu4tjxnvUUH5IoRMk_cxk5XXunN8OLAtao/?imgmax=800" border="0"></a>Knowing if your Directory Sync is up to date (or not) is crucial. Yes, you can glue your eyes to the Office 365 Portal or use commercial 3rd party monitoring tools to be alerted when your Directory Sync hasn’t updated for a certain period, or you can achieve the same goal using PowerShell. Microsoft was kind enough to include a LastDirSyncTime value when you run the Get-MsolCompanyInformation cmdlet. This way it can be programmatically checked and monitored by scheduling a script to run via task at an interval.</p><p>This script queries the LastDirSyncTime value, gets the current time, calculates the elapsed time, compares the difference against a set threshold and send an email alert if the threshold is breached.</p><h3></h3><h4></h4><h3></h3><h3>Download Link</h3><p><a title="https://github.com/junecastillote/Get-O365DirSyncElapsed" href="https://github.com/junecastillote/Get-O365DirSyncElapsed">https://github.com/junecastillote/Get-O365DirSyncElapsed</a></p><ul><li>1.0 - April 19, 2018</li><ul><li>Initial Release </li></ul><li>1.1 – August 20, 2018</li><ul><li>Changed Time Stamp from UTC to Local Time, including the Time Zone ID</li><li>Required PowerShell v5.1</li></ul></ul><h3><br></h3><h3>Requirements</h3><ul><li><font color="#ff0000">PowerShell v5.1 (as of script v1.1)</font></li><li>MSOnline Module</li></ul><p>Having the MSOnline Module installed is required for this to work. If you have PowerShell 5, it is easy to install. Just run Install-Package MSOnline and it should get you started. However for lower PS versions it may take a bit more to get MSOnline Module installed.</p><p>You can read up on MSOnline in detail from by following this link: <a href="https://docs.microsoft.com/en-us/powershell/azure/active-directory/overview?view=azureadps-1.0" target="_blank">Azure ActiveDirectory (MSOnline)</a></p><h3>How To Use</h3><h4>Export Login Credentials to XML</h4><p>The Username and Password are not saved inside the script, but rather it will import the login information from an encrypted XML file that you need to create beforehand.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJWZ3mor2-fVkmlNdMT3USbDtXi3Z7WF_pg_ZsD9AcccVMcUUIFYcbyqaHI2UJivLqa-BIrQyQcBPl1rSP-xSIq4a-Q_WjRHUGjkPS1Ia2XpRnTfBEkgF_fp1I7szFhrWCXJr9ck58Zcqk/s1600-h/notepad%252B%252B_2018-08-12_09-59-43%255B3%255D"><img width="747" height="74" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtI04ZoSyaPpDtqrl5qRAfBa8rDiQFYoIKDCyYbfQTQbdmUx6WPrxRxMLKa96IqfkKSkKOWb90bKl2RT2pn_sXWyIVRAGEc0DLeeXQ5iNCAWq4163l5ArHfN3ukiKyaao8-aXCBf31aMD/?imgmax=800" border="0"></a></p><p>Run this line in PowerShell, and it should save the credentials in an XML file.</p><p><font face="Courier New">Get-Credential | Export-CliXml ExOnlineStoredCredential.xml</font></p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw5LcbZoLmAt550gdBA2c7QyVIj8nn_7i78A0F8S1od-k9FQy_-xiZbAEBsYNAKcNiAm2pd20koJJZ4FYR49vjZUhzhQwP5A7slhP2yjnLTMz9bKXqY_zQT-ixgd8orJX7zUdYsy3rgos-/s1600-h/mRemoteNG_2018-08-12_09-53-30%255B3%255D"><img width="795" height="340" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhm2svgKocEvYIdRDtADM-fGB8clMFGerCYIEyA-rL_zEOhQYzEx1c0qwLgFFnTruycDNPsyI8JR3wFID4k1FifTZfDwQ_yLYXpkEQtWKErgF33R9XHVjkWre3f9uXisqdAehqZIKTNiEO/?imgmax=800" border="0"></a></p><p>Below is the sample content of the exported credentials.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp0oBBXANp0ZvKZnCEsxN7BNBKJC8RjVDixkPUX3dgtbxfRcAL3foof8fGzO-6d898Trmawriz5eR8IBIryvINaVSAMEgPBCT2dIoBLCE6VRCUtposDb4zHpCdnKngfcSXNx_9Ug0QpmIs/s1600-h/mRemoteNG_2018-08-12_09-55-27%255B3%255D"><img width="694" height="229" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC35oz2HZS9QOYDLyIgMO9YE8x_CtoflO-YEmNOzK2AG607DW13-xCgFKCS9vd1XcMuvguifF7FJAYrCWaOpGdl6NAx2RZpTUsQYYuWGN4rrx7XVp69eMnFYLuknS-Fdee2wnfliA4Wkqq/?imgmax=800" border="0"></a></p><h4>Variables</h4><p>Some variables that need to be modified depending on your requirement. The below example assumes that you are also using Exchange Online as relay. If you prefer to use a different SMTP relay, you will need to manually modify the script to conform with that.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRKxV68TjqpmrEZhVkb_QffsgFY6FYu-ysuoVOkBBqdStSG8waXWSm5S4ITv0KNnhqQ-0c6kFtdd0sPNaJpsjPSs8NMVXnR7mZjddh8pwFsN3O9zDCeIiepCoFBAhOy6hE8Ol8ZDI2uy9w/s1600-h/notepad%252B%252B_2018-08-12_10-01-44%255B3%255D"><img width="742" height="156" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgufyLFYrJn7Kh-4ELorkbqrQUTgaZPbgLbQ0wYbZZVKT-NS9sK6eCgGcbeuxnkhbxQZVoFbcC3aNDNKF2Kn2uFapjk6tWUjMuLFe6hwT0sEb2C0ncXaN9HedPNIRnRs3_HoXSaC0DgSpbA/?imgmax=800" border="0"></a></p><p>In this example, only the following variables need to be modified.</p><p><strong>$dirSyncElapsedTimeThreshold</strong>: The threshold in hours. If this is breached, the email alert will be sent.</p><p><strong>$toAddress</strong> : The email addresses (separate with comma if more than one) of the intended recipients of the email alert.</p><p><strong>$mailSubject</strong>: Your choice of message subject when the alert is sent.</p><h4><br></h4><h4>Output</h4><p>Once it’s all set up, just run the script from PowerShell. In the example below I set the threshold to ZERO (0) hours to trigger the alert. You should set a more realistic threshold in your production, obviously.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVnqzXT84lNwxalrJqVCQr5A4YDTwLkn8MsDyWNxJ6WlP8H_Pz5peBa_AqnDumrsYSnQQW6GhDxBxyhyphenhyphenvo_005bpB4IUFn0rnI88_DjC86bEnb6jKBE__MFRKEc8vLY_73uE4BJxVx3TKG/s1600-h/mRemoteNG_2018-08-20_09-24-153"><img width="689" height="177" title="" style="display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZihaXQ3s7Gqf7RTXLfEKGlug90h-6YEfHyRN9LdyROnKv34dasqb0S5KiyqGgZtf0gEPwK53tnOKuiLdihXkBNv3WCuiZVfPe9-iSIkhZ38cGw4D6s8oHmdN6-Fmldp9RIp8i6-klodWM/?imgmax=800" border="0"></a></p><p>Then the email alert similar to this should be received.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMkpnad99zY9a9bL3kqoBNElazq2-752bB9VoWLoep-vLWQ0wVA5SG6Xe7GghMOXK55YZPGp3zvTW-T2btjhN0HANADgAExR67xjgEm8V-3UALqxVnsY3eiPlwlIY1wn6quFlocwv5ViqV/s1600-h/OUTLOOK_2018-08-12_10-14-40%255B5%255D"><img width="471" height="223" title="" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK_-Esx0PrA_8Oxp0qMGoEjo0UnrCs2fca6fo2iR-V1OmbhEjxRAz671BlH-oSJBuef-uh_rNI9cD1aLFi_c0OlvTHUMTIeN6z_gE4N914I4l3WnTqtjYZecX_bHFDJjk-GZL6rjgeDVMn/?imgmax=800" border="0"></a></p>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-40836783379353723562018-08-11T20:57:00.000+08:002018-08-13T13:00:23.914+08:00Recursive Mailbox Full Permission Report Using PowerShell<h1></h1><h1><br></h1><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyx5uv8KYJZx2QhJgPXe_Nd0PkrFPthS-_RVN_NViSISCsO0ncGFzBxbIFqVqdRKBw8GIqM1exIUeBqPIOrcJW9IPlo-HJYetYvjbyDjFRosOI_DLAhCSd57Rj0mY9KuOV_cIG7ZirMi6u/s1600-h/exchange%255B5%255D"><img width="158" height="158" title="exchange" align="left" style="border: 0px currentcolor; border-image: none; float: left; display: inline; background-image: none;" alt="exchange" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAGG_W-mvqLwxR1Sxwms-mmAX3uLCwt1HbwBzyRbxyE7hYvqAUgfg8XHcXqQcMx_aHQK_tvWScx386Wpa_PloLabK3IuWzaZr_rYvu3KtmyTV-6477hKBjlmOhYO-kxvpF6-KovZo1ZC3P/?imgmax=800" border="0"></a>Mailbox Permissions may include Users and Groups, and sometimes even nested groups. And if you were tasked to get a report listing all those permissions, it would be a very tedious process to manually look up each entry. This script can help generate the needed report based on a file with a list of mailboxes are input file, all mailboxes, or just a single mailbox.</p><p><br></p><p><br></p><h1>The Script</h1><h2>Variables</h2><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4m66__MJdKI0RRAEfigFuNcJbk-ruIivmquruqPuU8FcSFpxMlmYNjPaw2EFofEzNkRI_kd414vonRQznWSm4xSQVLNmL6T_TA60mHHJlgkCrZuQUQ-uqt6xw4941SWGFPf8DrPRNpxn0/s1600-h/notepad%252B%252B_2018-08-11_22-51-37%255B4%255D"><img width="729" height="148" title="Variables" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Variables" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnSQfCsgLXw3P7FZgNaVAdbU8iSmD84hwruGxwSiBGkd3mpGMgAOkyDUX9Sn3KAyZ8yeHEGGcHbVGrMkxaNIkfUf7H1oYxUStUdxjadTxrP2NpJ4O5PzuFuQuqGcw8FMofv7fPBooKaOlH/?imgmax=800" border="0"></a></p><p>Depending on what your requirements are, you can change the value of the variable <em><strong>$mailboxList</strong></em>. The descriptions are already stated after each option.</p><h2>Input File for Option 1</h2><p>Should you choose OPTION 1, which is to use an input file named mailboxlist.txt, the file must first exist and contain the list of the acceptable identity values like SamAccountName, PrimarySMTPAddress, Alias or UserPrincipalName to name a new. </p><p>The example below shows the file containing the PrimarySMTPAddress values.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi53ZzBbaqa_4rbcFONlC9ZUd3gXVqKX3u3F-951QVqoQ0mHmtgQquGQrzuzR-1RUkXg1baSjYSX8G20HZvjAYMTx0vtS1crd-M9Z3-Km9dOMUh9bk40pPaYQp-6nTJuEzn76oKzI_PECwG/s1600-h/mRemoteNG_2018-08-11_22-58-38%255B3%255D"><img width="181" height="119" title="" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiYR9DAHLvfBq5_IgZRnTbgcVt_l7w-yI32Je5raXpjJ51XxhHVn7UdGxXwntlK3nuclHpf1QKIgXwEvFgBDHIvRTH72NDVJWYZPXVAtNGKlM8ZwBJXIxx2e-5rzntqHhyM2sfieBs6Zit/?imgmax=800" border="0"></a></p><h2>Running the Script and the Outputs</h2><p>Running the script requires no parameters. All you need to do is run it in your normal PowerShell session (not EMS or Remote Shell).</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXHIsrKhbHWzoegO7Z_1I5mmoe7UobayiPgwyzHfPJUsgd7GiK0rZt-4TLo7o5adOlJi9cudFuFKGZvZlbySDEJ-ZRkwFVR9CCRTIgeCmM50KEWBmabqmcyNC9o4_Cd07RKO8KtRI7xXTN/s1600-h/mRemoteNG_2018-08-11_23-04-00%255B4%255D"><img width="643" height="49" title="" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDN2R1qWS-q8ZnFVGauMEiYP-XFJUfyJrtwsGqhAq0ysM2lqtmVaYM1zrFkcoVcYt6OxKmeGQMk6ejZoGkdFFYpIQ4H0g1eS4KDP5omIWsLRToG9Ae1RLnJ8ZcdCwnAYVf2FgCbaznBBDt/?imgmax=800" border="0"></a></p><h3>On Screen</h3><p>The screen output shows which mailboxes are currently being processed. Each permission will be listed below the current mailbox, and the mailbox with no permissions found will be skipped.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4VB0AZ_DqvIS0FzQR9uSfLGXHkBT-2GnNbTjQoWoYrIysO9l54XZ7kYklTqz1E6aQJpWeoDQmtLdIYHE_if_fCMJEImW9skocus7YjtNDi0y_dG159vQ1QNeyYxokyuTv0nz5IBpSjjwX/s1600-h/mRemoteNG_2018-08-11_23-05-59%255B4%255D"><img width="394" height="255" title="" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8OEPs-BhS-rcXL64tLugtCyAM_v_fZFQWMpsKu-2uDvF_DC66IvwCtN817Ps7fQUKSuHVe6NWiyHFrCzTVf4l5OJB32eRs9PJs0SjQFbqh2WqV7Ho2hV8RlhP8FAViTgUd91Cs5DXTUEU/?imgmax=800" border="0"></a></p><h3>Debug Log</h3><p>The Debug Log is just a transcript of what was displayed on the screen. The filename format is DD-MMM-YYYY_HH-MM-TT_debuglog.txt and is saved in the same folder as the script itself.</p><h3>CSV Report</h3><p>A report in CSV format is exported and saved in the same folder as the script itself. It will always be named “report.csv” and will be overwritten each time the script is executed successfully.</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4u2HVvwP015-VMZ6Oc1ZSylTE6xIM7I7ohCLdFiHraGa5f0A5r69C40pIzLn1U-NS2HYnWUMG3EEsU_OsY6Kh13woSSeT-b_v1-osDJvWejc06Q7wjVu9aAldslXZxzwg00tFmn2cdpIK/s1600-h/mRemoteNG_2018-08-11_23-11-35%255B4%255D"><img width="1024" height="277" title="" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Kz3xSahWwFvDc45MK-nJk-FaPKPpJvti_LyAEC9IJ8S-66GWg5ol1LeMI59OU8HxRcPkihacV2kCBK34OgZ316gJ5ZiGQJS0WJ14hvFeKcS3Mw2nF6Wainm0mFEhl3UZ9lml6BYLN06K/?imgmax=800" border="0"></a></p><h4>CSV Report Fields</h4><ul><li><strong>MailboxName</strong></li><ul><li>Name of the mailbox</li></ul><li><strong>MailboxEmailAddress</strong></li><ul><li>Email address of the mailbox</li></ul><li><strong>WhoHasAccessName</strong></li><ul><li>Name of the user who has access to the mailbox</li></ul><li><strong>WhoHasAccessEmailAddress</strong></li><ul><li>Email address of the user who has access to the mailbox</li></ul><li><strong>AccessType</strong></li><ul><li><strong>DirectUser</strong> – means that the user has direct access permission applied to the mailbox</li><li><strong>InheritedFromGroup</strong> – means that the user has permission because the user is a member of a group that has access to the mailbox</li></ul><li><strong>ParentGroupName</strong></li><ul><li>Name of the group that has access to the mailbox</li></ul><li><strong>ParentGroupEmailAddress</strong></li><ul><li>Email Address of the group that has access to the mailbox</li></ul></ul><p><br></p><h3>Download Link</h3><p><a title="https://github.com/junecastillote/Get-RecursiveFullPermission" href="https://github.com/junecastillote/Get-RecursiveFullPermission">https://github.com/junecastillote/Get-RecursiveFullPermission</a></p>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-37600718008288935162017-02-15T23:28:00.004+08:002017-02-15T23:48:32.007+08:00How to Find the Lync/SfB Federation SIP Address of a Domain<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7lpXX1IPJzMaqWyxTkWrlVgBkhdfvmgpMaqxWzCkygD0UypdCrSlCgzPWnJH3q0-P3LQtBSVKMM0ECxDGdsGSD6aRNlVUrez8oLhrWq1K_WTE3SpYIdqLN_urEjhkNYdp-yqEJzmYZ02I/s1600/Microsoft-Lync-2013-Logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7lpXX1IPJzMaqWyxTkWrlVgBkhdfvmgpMaqxWzCkygD0UypdCrSlCgzPWnJH3q0-P3LQtBSVKMM0ECxDGdsGSD6aRNlVUrez8oLhrWq1K_WTE3SpYIdqLN_urEjhkNYdp-yqEJzmYZ02I/s200/Microsoft-Lync-2013-Logo.png" width="200" /></a></div>
Being the Lync / SfB Administrator of your company, you may at times need to look up the Federation SIP Address of another domain. It may happen that a federated partner domain decided to change their SIP Address or perhaps they've migrated their Lync On-Premise infrastructure to O365/Skype Online, and you need to update your own Lync organization with that new SIP Address.<br />
Federation utilizes the SRV DNS record with a specific format, and for this, you can use the good old nslookup utility.<br />
<br />
In this example, we are looking for the Federation SIP Address for microsoft.com. The result is sipfed,microsoft.com<br />
<br />
<blockquote class="tr_bq">
C:\>nslookup<br />
> set q=srv<br />
> <i>_sipfederationtls._tcp</i>.<b><span style="color: red;">microsoft.com</span></b><br />
DNS request timed out.<br />
timeout was 2 seconds.<br />
Non-authoritative answer:<br />
_sipfederationtls._tcp.microsoft.com SRV service location:<br />
priority = 0<br />
weight = 0<br />
port = 5061<br />
svr hostname = <span style="color: red;"><b>sipfed.microsoft.com</b></span><br />
></blockquote>
<br />
Looking at the example, the federation sip address always starts with <b>_sipfederationtls._tcp.</b> and followed by the actual domain.<br />
<br />
<blockquote class="tr_bq">
eg.<br />
<i>_sipfederationtls._tcp</i>.<b><span style="color: red;">amazon.com</span></b><br />
<i>_sipfederationtls._tcp</i>.<b><span style="color: red;">contoso.com</span></b></blockquote>
<br />
References:<br />
<a href="https://technet.microsoft.com/en-us/library/jj618369(v=ocs.15).aspx">https://technet.microsoft.com/en-us/library/jj618369(v=ocs.15).aspx</a><br />
<a href="http://windowsitpro.com/skype-business/understanding-main-types-federation-skype-and-lync-environments">http://windowsitpro.com/skype-business/understanding-main-types-federation-skype-and-lync-environments</a><br />
<a href="https://www.petri.com/setup-lync-federation">https://www.petri.com/setup-lync-federation</a>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-7941994107048466392017-02-15T22:21:00.000+08:002018-09-24T22:37:52.640+08:00Lync Server: Windows Fabric Logs, Disk Space Usage and Circular Logging<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrw2qLhOZNsMKxMWbwKfaBf5kgf1cGLLqAj3Uokc5MMcjcA-ZZDCOsUt8R-5zNzf_5TqmL6Y9rB6V-g_eARwqJDIPUL5qzYijhil6dSBJxXg0ASN15UMDoApzxdPgbNC2W95ksVRedwpKq/s1600/Microsoft-Lync-2013-Logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrw2qLhOZNsMKxMWbwKfaBf5kgf1cGLLqAj3Uokc5MMcjcA-ZZDCOsUt8R-5zNzf_5TqmL6Y9rB6V-g_eARwqJDIPUL5qzYijhil6dSBJxXg0ASN15UMDoApzxdPgbNC2W95ksVRedwpKq/s200/Microsoft-Lync-2013-Logo.png" width="200" /></a></div><span style="font-family: inherit;"><span style="font-family: inherit;"><br />
</span></span><span style="font-family: inherit;"><span style="font-family: inherit;">If you're not interested in reading the entire post, you can <a href="#solution"><b>skip to the solution.</b></a></span></span><br />
<span style="font-family: inherit;"><span style="font-family: inherit;"><br />
</span></span> <span style="font-family: inherit;"><span style="font-family: inherit;">I know there have been ma<span style="font-family: inherit;">ny art<span style="font-family: inherit;">icles written and available for this topic. The reason I decided to still write this is to provide more explanation to possible questions that I found myself asking too when I first encountered this situation.</span></span></span></span><br />
<span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><br />
</span></span></span></span> To understand what Windows Fabric is, what is does and how it works you may refer to this link -<br />
<a href="http://masteringlync.com/2013/10/29/understanding-how-windows-fabric-works/" target="_blank">"Understanding how Windows Fabric Works (with regards to Lync)"</a><br />
<br />
There are two (2) User Defined Collector sets by default when a Lync Front-End server is deployed.<br />
<ul><li>FabricLeaseLayerTraces</li>
<li>FabricTraces</li>
</ul><div>You can find these in Performance Monitor<br />
<br />
</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4Mk9a_gvuM9RWXaZeb9jLMdClQS39JfxhwNhiA4pdBM4YpHfhBOpiogM_-hUQHCyVR7q6gSYc-LT1aye7oKNBfi1M07zr-vzpFBfmXLsaO8G5Zud5NCK5E58s-m2hMlWYndSk7NUvaO_4/s1600/WinFabricPerfMon.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4Mk9a_gvuM9RWXaZeb9jLMdClQS39JfxhwNhiA4pdBM4YpHfhBOpiogM_-hUQHCyVR7q6gSYc-LT1aye7oKNBfi1M07zr-vzpFBfmXLsaO8G5Zud5NCK5E58s-m2hMlWYndSk7NUvaO_4/s1600/WinFabricPerfMon.png" /></a></div><br />
</div><div><br />
</div><div>And the default location of the files generated by these data collectors is in <b>C:\ProgramData\Windows Fabric\Fabric\log\Traces</b> folder of each Front-End server.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgsPH4EYM6Ow1CF8rIMuU-PyaM0G-nEMjV9S9Zju9nJecgE6RIF_CaR_7IWaYNal9mFJPCVO21t74dgxVg9T5IakXm4vMuCrEQJRbcHX7rBs0LdSe_lz3QIac7-I-7MMKOxZM7XEst2BEz/s1600/WinFabricFolder.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgsPH4EYM6Ow1CF8rIMuU-PyaM0G-nEMjV9S9Zju9nJecgE6RIF_CaR_7IWaYNal9mFJPCVO21t74dgxVg9T5IakXm4vMuCrEQJRbcHX7rBs0LdSe_lz3QIac7-I-7MMKOxZM7XEst2BEz/s1600/WinFabricFolder.png" /></a></div><br />
</div><div>The screenshot above is from one of the FE Servers in my lab setup. As you can see there are multiple files with approximately 128MB size each. What happens is that once the log file reached a new log file is generated with an incremental version.<br />
<br />
eg.<br />
<blockquote class="tr_bq">fabric_traces_130374156934210426_0076<span style="color: red;"><b>25</b></span>.etl<br />
fabric_traces_130374156934210426_0076<span style="color: red;"><b>26</b></span>.etl</blockquote><br />
</div><div>And there is no limit as to how many of these files are created and can ultimately use up all available free space.<br />
<br />
<b>So the questions:</b><br />
<br />
<b>Why the 128MB Maximum file size?</b><br />
<br />
It can be any size really, it's just that 128MB is the default when the data collector was created. You can simply check this using the logman utility.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEhzW4kt9yedw8ASh3ei6eMrr8V3f5Y1u0oKR0a8FzoWmnyruGqtncEaHPIFrNxL2gBjR1bZK-gdDR9iZ8KxaNM8raAJPk_Vzv6B0H5PM9shjmXvWlpeItpSsgHUqldOIKs2LJIgieT0_l/s1600/WinFabricLogMan01.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEhzW4kt9yedw8ASh3ei6eMrr8V3f5Y1u0oKR0a8FzoWmnyruGqtncEaHPIFrNxL2gBjR1bZK-gdDR9iZ8KxaNM8raAJPk_Vzv6B0H5PM9shjmXvWlpeItpSsgHUqldOIKs2LJIgieT0_l/s1600/WinFabricLogMan01.png" /></a></div><br />
<b>What triggers the data collector to start?</b><br />
<br />
A Task is scheduled to run at system startup which calls the "<b>StartTracing.cmd</b>" batch file.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6lIwxE0j7KlJ6pOmv1aBRHoLkTqYd0A4De_m68jENrUeqecHCyL6ZXuB99a5h43A6W2oDwzdI-QuKPHsNzF1DZpResv0-kPWSiT4s9Z1yJvUbyk7b-x7T2b1ZO6brRLYFAc2mQ5Ttrs2D/s1600/WinFabricTask.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6lIwxE0j7KlJ6pOmv1aBRHoLkTqYd0A4De_m68jENrUeqecHCyL6ZXuB99a5h43A6W2oDwzdI-QuKPHsNzF1DZpResv0-kPWSiT4s9Z1yJvUbyk7b-x7T2b1ZO6brRLYFAc2mQ5Ttrs2D/s1600/WinFabricTask.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5sO2B1IIHwvMbUTeTRv54lI5eLw41t4wl3p4qh-KRAn6hR1R8_7HDiobhN3JLByGilxu_fO9vUhwjI6im5wrJ1nuOHNfVyNdjkKdMUbSgr9vYPXwYC504zqqxgyS2eO14jRprpLwEngRN/s1600/WinFabricTask2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5sO2B1IIHwvMbUTeTRv54lI5eLw41t4wl3p4qh-KRAn6hR1R8_7HDiobhN3JLByGilxu_fO9vUhwjI6im5wrJ1nuOHNfVyNdjkKdMUbSgr9vYPXwYC504zqqxgyS2eO14jRprpLwEngRN/s1600/WinFabricTask2.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><br />
<b>Where can I find StartTracing.cmd and how is Task Scheduler able to call it when there is no relative path indicated in the Task?</b><br />
<br />
A relative path (eg. C:\Windows\etc\whatever.exe) is not necessary because the file StartTracing.cmd is located in a path that is already defined in the Environment Variables.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpT8N6LqXajxBFJNveQufmR05Nh0TjQMAO9M_1uMYWFUPXcSHyj9x86EE9CnVUmzjWi___n7btP4AqvXOFsNtCAw4qiVn7qd84h3nz74Uc9CaHJvXZAbBUS6AY5wvADMeeC1KUcSOAbu2/s1600/WinFabricPath.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpT8N6LqXajxBFJNveQufmR05Nh0TjQMAO9M_1uMYWFUPXcSHyj9x86EE9CnVUmzjWi___n7btP4AqvXOFsNtCAw4qiVn7qd84h3nz74Uc9CaHJvXZAbBUS6AY5wvADMeeC1KUcSOAbu2/s1600/WinFabricPath.png" /></a></div><br />
<br />
Think of notepad for example which you can run by just typing notepad.exe without having to specify the path - that is the same concept.<br />
<br />
<b>How do I stop Windows Fabric from generating multiple log trace files?</b><br />
<br />
The short answer is to turn on <b>Circular Logging.</b><br />
<br />
How? According to this article - <a href="http://flinchbot.com/2014/02/28/the-hidden-logs-that-could-crash-your-lync-servers/">http://flinchbot.com/2014/02/28/the-hidden-logs-that-could-crash-your-lync-servers/</a> - you can turn on circular logging by running this command (from an elevated command prompt)<br />
<blockquote class="tr_bq">Logman update trace FabricLeaseLayerTraces -f bincirc --cnf</blockquote>I did use that article as a guide to enable the Circular Logging for both collectors, but somehow logman still kept on generating new files. I'm not saying that it is wrong, only that some parameters were not included to achieve my intended outcome.<br />
<br />
So why didn't it work? That is because despite circular logging being turned on, the versioning is still enabled and the overwrite switch was not specified. In order to really turn on Circular Logging and keep the number of files to 1, this is what I did:<br />
<br />
<b><a id="solution">Solution</a></b><br />
<ul><li>Run these commands in an elevated command prompt:</li>
</ul><blockquote class="tr_bq">Logman update trace FabricLeaseLayerTraces -f bincirc --v --cnf -ow<br />
Logman update trace FabricTraces -f bincirc --v --cnf -ow</blockquote><blockquote class="tr_bq">What do the switches mean?<br />
<br />
-f bincrc = turn on circular logging<br />
--v = turn off file versioning<br />
--cnf = turn off creation of new files<br />
-ow = turn on overwrite of existing log file</blockquote><ul><li>Temporarily stop the logging</li>
</ul><blockquote class="tr_bq">logman stop fabricleaselayertraces<br />
logman stop fabrictraces</blockquote><ul><li>(Optional) Delete the existing log files </li>
</ul><blockquote class="tr_bq">del "C:\ProgramData\Windows Fabric\Fabric\log\Traces\*.*"</blockquote><ul><li>Start logging</li>
</ul><blockquote class="tr_bq">logman start fabricleaselayertraces<br />
logman start fabrictraces</blockquote><b>The Result?</b><br />
<br />
Notice that the versioning has been removed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdBgcbBUkiP-avwKZP9DRfDshltDYaBzvpz-Y4BBMZMqNRQaLKNP5p7DlwuJ6-6l4gNPNURI_AkhcAFfbobGQO7B1QJI7kYeiq_16ArXCy4vW2hg2fRCBMaa1kg344k0vUWydEO31WtOMC/s1600/WinFabricResult.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdBgcbBUkiP-avwKZP9DRfDshltDYaBzvpz-Y4BBMZMqNRQaLKNP5p7DlwuJ6-6l4gNPNURI_AkhcAFfbobGQO7B1QJI7kYeiq_16ArXCy4vW2hg2fRCBMaa1kg344k0vUWydEO31WtOMC/s1600/WinFabricResult.png" /></a></div><br />
The same log files will be overwritten every time.<br />
<br />
Also, you may want to consider increasing the maximum file size to a much higher value (like 2GB or higher) since there will only one log file for each data collector.<br />
<blockquote class="tr_bq">logman update fabrictraces -max 2048<br />
logman update fabricleaselayertraces -max 2048</blockquote><b>References:</b><br />
<br />
<a href="https://technet.microsoft.com/en-us/library/bb490956.aspx">https://technet.microsoft.com/en-us/library/bb490956.aspx</a><br />
<a href="http://masteringlync.com/2013/10/29/understanding-how-windows-fabric-works/">http://masteringlync.com/2013/10/29/understanding-how-windows-fabric-works/</a><br />
<a href="http://flinchbot.com/2014/02/28/the-hidden-logs-that-could-crash-your-lync-servers/">http://flinchbot.com/2014/02/28/the-hidden-logs-that-could-crash-your-lync-servers/</a><br />
<a href="https://social.technet.microsoft.com/wiki/contents/articles/29408.out-of-disk-space-in-lync-server-2013.aspx">https://social.technet.microsoft.com/wiki/contents/articles/29408.out-of-disk-space-in-lync-server-2013.aspx</a><br />
<br />
<br />
<br />
</div>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-53887294295422112962016-09-12T09:04:00.000+08:002019-06-15T18:15:30.925+08:00Delete Files Based on Age using PowerShellUPDATE: This script has been discontinued. The new version of the script is published here - <span style="white-space: pre;"> </span><br />
<a href="https://www.lazyexchangeadmin.com/2019/05/Delete-FilesByAge.ps1.html" target="_blank">PowerShell Script to Delete Files By Age with Email Summary Report</a><br />
<br />June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-32431189661229899992016-03-26T23:26:00.000+08:002017-02-06T20:56:10.616+08:00IIS SMTP Server Status Check using PowerShell<span style="font-family: Courier New, Courier, monospace;">This script can be used to check and report the status of the Smtp Service and the Virtual SMTP Server created in IIS. For use with Windows 2008+</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;"><br /></span> <u><span style="font-size: medium;"><b><span style="font-family: "verdana" , sans-serif;">Sample Report Output</span></b></span></u></span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> </span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"></span><br /></span>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8PBJWunG9Sg8jS0fOE1T-tPMgSUMzrhoRzdzp7DdIJjx_p9H0rWj5rxhdWMZR07T_1__qGl9awl7BFefcxaRsO2imkioTHPth7lWXC3N3VgtSzy2TdXZya8xQQzDfN3RmFHZ5i39tgYuS/s1600/report_sample.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8PBJWunG9Sg8jS0fOE1T-tPMgSUMzrhoRzdzp7DdIJjx_p9H0rWj5rxhdWMZR07T_1__qGl9awl7BFefcxaRsO2imkioTHPth7lWXC3N3VgtSzy2TdXZya8xQQzDfN3RmFHZ5i39tgYuS/s1600/report_sample.PNG" /></a></span> </span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Courier New, Courier, monospace;">----------------------------</span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif; font-size: medium;"><u><b><span style="font-family: "trebuchet ms" , sans-serif;">Download</span></b></u> </span></span><br />
<span style="font-family: Courier New, Courier, monospace;">You can download the script from here<span style="font-size: small;">:</span></span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> </span><br />
<ul>
<li><span style="font-family: Courier New, Courier, monospace;"><a href="https://github.com/junecastillote/Get-IISSmtpState" target="_blank">Version 1.1 (GitHub)</a></span></li>
<ul>
<li><span style="font-family: Courier New, Courier, monospace;">Removed Local Queue Counter</span></li>
<li><span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;">Removed </span><span style="font-family: "verdana" , sans-serif;">Remote Queue Counter</span></span></li>
<li><span style="font-family: Courier New, Courier, monospace;">Added Queue, Pickup, Drop and BadMail counter</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">Fixed some formatting issues</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">Replaced CSS Color theme (if you prefer the old theme, just copy the $css_string variable from the older version.</span></li>
<li><span style="font-family: Courier New, Courier, monospace;">Some code optimization</span></li>
</ul>
<li><span style="font-family: Courier New, Courier, monospace;">Version 1.0 (GitHub)</span></li>
<ul>
<li><span style="font-family: Courier New, Courier, monospace;">Initial version</span></li>
</ul>
</ul>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-family: "verdana" , sans-serif;">To run, no parameters required, just execute the script from PowerShell.</span></span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> <span style="font-size: medium;"><u><b><span style="font-family: "verdana" , sans-serif;">The Variables</span></b></u></span></span><br />
<span style="font-family: Courier New, Courier, monospace;">Make sure to edit the following variables to conform to your environment or requirements</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "verdana" , sans-serif;"><br /></span> </span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Courier New, Courier, monospace;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXj1Arz9tzIdVOUWHe1HpRivbfIXmSZmppB1Cm3qseZ6vj0U7UH6e_AkW9PCpCWf7z1QTGTILUmQXzfp58CruS7lMWgEpiDy8J7rT5J-_vLlb1xhF4ZpMBNM_-dP_DSPZIsUbVrJavOWi/s1600/options.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "verdana" , sans-serif;"></span></a><span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCPPPZpV2KYFRAp-xy6VWtNNaLOyQA4BFnY0tic-bis00-0ysu8ho_o-ADep9XArbiXX3zDXIOZlfpa9nijzJ_frVvLd018tSdB9RUGZ-KKfuddfVL5rcYcmduY3E_84pVGH5JDXjutF52/s1600/variables_sample.PNG" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCPPPZpV2KYFRAp-xy6VWtNNaLOyQA4BFnY0tic-bis00-0ysu8ho_o-ADep9XArbiXX3zDXIOZlfpa9nijzJ_frVvLd018tSdB9RUGZ-KKfuddfVL5rcYcmduY3E_84pVGH5JDXjutF52/s1600/variables_sample.PNG" /></a></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSo0-VmxDLAh6t16sST5t_aYEs6akqDdDzq30TqNQKypv1TXRQ9yC79Y1hoWAqpTQbHxDK73Ge6T7RNo42NXLV7oPNpPU5m6OhYQ5_TDw87QGRpAl3YLRxtSywW8uAxnWQfDL0WKtPBzFa/s1600/variables.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Courier New, Courier, monospace;"><br /></span></a></div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span> <span style="font-family: "tahoma"; font-size: x-small;"><span style="font-family: "tahoma"; font-size: x-small;"><span style="font-family: "trebuchet ms" , sans-serif;"></span><span style="font-family: "trebuchet ms" , sans-serif;"></span></span><br /></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-88948257381279990002015-09-07T11:17:00.004+08:002017-02-06T21:05:51.937+08:00IMCEAEX to X500 Converter Tool<span style="font-family: Open Sans, sans-serif;">Tool to convert IMCEAEX String (from NDR) to valid X500 String.</span><br />
<span style="font-family: Open Sans, sans-serif;"><span style="font-family: "segoe ui" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , sans-serif;">Link: <a href="https://onedrive.live.com/redir.aspx?cid=2c75ef430d3d3501&resid=2C75EF430D3D3501!4484&parId=2C75EF430D3D3501!4483&authkey=!AECaCp7p_CpImdk&ithint=file%2cexe" target="_blank">DOWNLOAD</a></span></span><br />
<span style="font-family: Open Sans, sans-serif;"><span style="font-family: Courier New, Courier, monospace;"><br />
</span> <span style="font-family: Courier New, Courier, monospace;"><span style="font-family: "segoe ui" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , sans-serif;">Screenshot: </span></span></span><br />
<span style="font-family: Open Sans, sans-serif;"><span style="font-family: "segoe ui" , sans-serif;"><br />
</span> </span><br />
<div class="separator" style="clear: both; text-align: center;"><span style="font-family: Open Sans, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizxvgP6Cv2882_ONOAO5lZ5BUtA4AAoq8JoV1gEqvYlWsXXMBAqfxRz2c9TjvAx6BNTQCm83bRLTUG1z9qCk0gcSs64iOg1zysfXp8kbNXVp0qNF0Qbve5wjoVuI16KAgwzKto9j0dsSH0/s1600/IMCEAEX.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizxvgP6Cv2882_ONOAO5lZ5BUtA4AAoq8JoV1gEqvYlWsXXMBAqfxRz2c9TjvAx6BNTQCm83bRLTUG1z9qCk0gcSs64iOg1zysfXp8kbNXVp0qNF0Qbve5wjoVuI16KAgwzKto9j0dsSH0/s1600/IMCEAEX.png" /></a></span></div>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-39519756505097796702015-06-26T22:42:00.003+08:002017-04-21T13:49:15.483+08:00Office 365 Service Health Check [.NET]<span style="font-family: inherit;"><b>Tool Overview</b></span><br />
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<div>
<span style="font-family: inherit;">The AlertO365 Tool provides a mechanism to check the Office 365 Service Status and Events programmatically eli<span style="font-family: inherit;">minatin</span>g the need to logon to the Office 365 Portal manually. This tool utilize the “Office 365 Service Communications API” as provided by Microsoft.</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;">Reference: https://msdn.microsoft.com/en-us/library/office/dn776043.aspx</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>The Package</b></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>Files and Folders</b></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 22.25pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-table-layout-alt: fixed; mso-yfti-tbllook: 1184; width: 528px;"><tbody>
<tr style="height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"> <td nowrap="" style="border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="bottom" width="240"><div align="center" class="MsoNormal" style="mso-pagination: widow-orphan; text-align: center;">
<b><span style="font-family: inherit;">Name<o:p></o:p></span></b></div>
</td> <td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="bottom" width="60"><div align="center" class="MsoNormal" style="mso-pagination: widow-orphan; text-align: center;">
<b><span style="font-family: inherit;">Type<o:p></o:p></span></b></div>
</td> <td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="bottom" width="228"><div align="center" class="MsoNormal" style="mso-pagination: widow-orphan; text-align: center;">
<b><span style="font-family: inherit;">Description<o:p></o:p></span></b></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 1;"> <td style="background: #D9E1F2; border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">AlertO365.exe<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">File<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal">
<span style="font-family: inherit;">Main executable (no parameter required)<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 2;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">AlertO365.exe.config<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">File<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Contain configuration values used by the tool (XML format)<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 45.0pt; mso-yfti-irow: 3;"> <td style="background: #D9E1F2; border-top: none; border: solid windowtext 1.0pt; height: 45.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">microsoft.exchange.servicestatus.tenantcommunications.data.dll<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 45.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">File<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 45.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Office 365 Communications API<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 4;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">report<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Folder<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">First Sub-Folder<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Contains the HTML reports<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 5;"> <td style="background: #D9E1F2; border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">images<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Folder<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Sub-Folder of the Report Folder<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 6;"> <td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Logo1.png<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">File<o:p></o:p></span></div>
</td> <td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">First Logo in the report<o:p></o:p></span></div>
</td> </tr>
<tr style="height: 15.0pt; mso-yfti-irow: 7; mso-yfti-lastrow: yes;"> <td style="background: #D9E1F2; border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Logo2.png<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.0pt;" valign="top" width="60"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">File<o:p></o:p></span></div>
</td> <td style="background: #D9E1F2; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 170.75pt;" valign="top" width="228"><div class="MsoNormal" style="mso-pagination: widow-orphan; text-align: justify;">
<span style="font-family: inherit;">Second Logo in the report<o:p></o:p></span></div>
</td> </tr>
</tbody></table>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>Install and Configure</b></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<div>
<span style="font-family: inherit;"><b>Installation</b></span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"><span style="font-family: inherit;"> </span></span></div>
<div>
<span style="font-family: inherit;">To use this tool, no special install utility is needed. Just extract/copy the package to any location on the computer/server.</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;">In this example, the tool is extracted and placed under the C:\ drive</span></div>
</div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK0QTTY88uw1cwrktQ_4rxC6ir5pgaKEMAPL9fH_hcGNNcS08ZCilDXeHyUa6Y6C70TOfR6bWF0Y28prLDcCRa2PB6YZsVgH09hjokQPYsBdji6vc_Hevfl45YMiaJsmM6LpFGGRlqy1fm/s1600/Image1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK0QTTY88uw1cwrktQ_4rxC6ir5pgaKEMAPL9fH_hcGNNcS08ZCilDXeHyUa6Y6C70TOfR6bWF0Y28prLDcCRa2PB6YZsVgH09hjokQPYsBdji6vc_Hevfl45YMiaJsmM6LpFGGRlqy1fm/s1600/Image1.png" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: inherit; font-size: x-small;">Image 1. Folder Structure</span></td></tr>
</tbody></table>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;">Configuration</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;">The configuration file is <b><u>AlertO365.exe.config</u></b>, this is in XML format and can be edited using a normal text editor like Notepad.</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlU3lm7W_OT9fvD2gjPU0JESy4NxUtZYhd2GpuOHg_LIst-YZY4tBc4rZOKNiqXA95dfuoSPokiU7JebJKimYQPk0YWRzEwVz9ZdrBMifEl8fs-LJ7r9NGrglx7TXQ4XfXn1H1JKgTauRw/s1600/config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"></span></a></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCSHhTA3VikuOd3DMQsZNLD447jUAAh5ynhJbzw76UQbHOT47Q1AVE4eGlWJuR55iapSZDIN3NlEPmKCmqAmKlkgS0w57FZCYIg7wob8LzNFrGfdm3iucungJrA3ZS_1TIJX9LY6MV4C2/s1600/config.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYCSHhTA3VikuOd3DMQsZNLD447jUAAh5ynhJbzw76UQbHOT47Q1AVE4eGlWJuR55iapSZDIN3NlEPmKCmqAmKlkgS0w57FZCYIg7wob8LzNFrGfdm3iucungJrA3ZS_1TIJX9LY6MV4C2/s1600/config.png" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="margin-left: 0.25in;">
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif; font-size: x-small;">Image 2. AlertO365.exe.config contents</span><span style="font-size: 9pt;"><o:p></o:p></span></span></div>
</td></tr>
</tbody></table>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<div>
<span style="font-family: inherit;"><b>Fields and Values</b></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>ServiceURL</b> – No need to change this. This is a constant value provided by Microsoft in their API documentation</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>DomainNames</b> – The Tenant Domain to be checked (enter only one domain)</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>UserName</b> – Username used to authenticate to the Tenant Domain</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>Password</b> – Password for the Tenant Domain credential</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>IsAOBO</b> – No need to change this. The function related to this value is not (yet) implemented.</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>PastDays</b> – Number of days with which the tool would query events for (i.e 1 for the past 1 day)</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>SenderAddress</b> – Sender address of the email report</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>RecipientAddress</b> – Recipient addresses of the email report. Separate with comma (,) for multiple recipients</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>SMTPServer</b> – IP address or resolvable name of the SMTP relay used for sending the email report</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>MailSubject</b> – The String to be used as Message Subject and Report Title</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>Company</b> – The company or domain name that will appear in the report</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>SendViaEmail</b> – Yes or No indicates whether the HTML output will be sent via email or not.</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><b>Other Configuration Items</b></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;">The package contains two images namely <b>Logo1.png</b> and <b>Logo2.png</b>. These images are located under “\report\images” folder. Upon creation of the report, these images will be embedded in the email representing the Client/Company we managed and HP. Before putting the tool in production use, make sure to replace the Logo1.png file with the appropriate logo image for the client/company being managed.</span></div>
<div>
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> </span><br />
<span style="font-family: inherit; font-size: small;"><b>Sample Report</b></span></div>
</div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ggEsAXrxLCzGf0eHgZDuPHZ9-U_aIchwvfMjGhmqR3tRWkW8lkJc3COI9xhnh6RZAOAtiyw40HSa2ICGaao9plkE2Sql5pR5bO8oyrlwUPTOMyyoRMDKqAcquAxvkQ3HMZpO-VrqdzgC/s1600/report.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ggEsAXrxLCzGf0eHgZDuPHZ9-U_aIchwvfMjGhmqR3tRWkW8lkJc3COI9xhnh6RZAOAtiyw40HSa2ICGaao9plkE2Sql5pR5bO8oyrlwUPTOMyyoRMDKqAcquAxvkQ3HMZpO-VrqdzgC/s1600/report.png" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: inherit;">Image 3. Sample HTML Report via Email</span></td></tr>
</tbody></table>
<br /></div>
<div>
<span style="font-family: inherit;"><b>How to Use</b></span><br />
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , "helvetica" , sans-serif;">This is a console-only application which is best executed using the command shell (or can also be double-click in explorer – not recommended).</span></span><br />
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , "helvetica" , sans-serif;">Can also be executed by Scheduled Task if preferred to run at certain interval (Daily, Hourly, Monthly..)</span></span><br />
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> </span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLNiiNs8KWvMShh1wton7cLVLFrLOLkzOejdN4g9Z0OmKjZ3u2nuoM9yV9SS0HIO_EZUIT_2xZBxS3gbeyX7Pb-ItGfOF9LYPGryYXAr1Q2E6UiiP4h3alm4EgEbhGCUSC-WbjCs6EU1Cg/s1600/execute.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLNiiNs8KWvMShh1wton7cLVLFrLOLkzOejdN4g9Z0OmKjZ3u2nuoM9yV9SS0HIO_EZUIT_2xZBxS3gbeyX7Pb-ItGfOF9LYPGryYXAr1Q2E6UiiP4h3alm4EgEbhGCUSC-WbjCs6EU1Cg/s1600/execute.png" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" class="MsoNormal" style="margin-left: 0.25in;">
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif; font-size: x-small;">Image 4. Sample Tool Execution</span><span style="font-size: 9pt;"><o:p></o:p></span></span></div>
</td></tr>
</tbody></table>
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span> <span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br />
</span></span></div>
<div>
<span style="font-family: inherit;"><b>Download and Source Code </b></span></div>
<div>
<span style="font-family: inherit;"><br /></span> <span style="font-family: inherit;">AlertO365 1.2 - <a href="https://github.com/junecastillote/AlertO365">https://github.com/junecastillote/AlertO365</a></span><br />
<span style="font-family: inherit;"><span style="font-family: "segoe ui" , "helvetica" , sans-serif;"><br /></span> <span style="font-family: "segoe ui" , "helvetica" , sans-serif;">Note: Download contains source code. If you want to just get the binary output and associated files listed in "Files and Folders" section above, just go to the "bin/Release" folder.</span></span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<span style="font-family: inherit;"><br />
</span></div>
<div>
<br /></div>
</div>
June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-31762317175196071322015-04-11T01:47:00.002+08:002018-10-23T14:00:13.099+08:00Backup All Distribution Groups and Members using PowerShell<p>Someone in the group – either an admin or service desk, may commit a mistake at some point and delete a distribution group or empty out the members' list. When that happens usually the recovery action is to restore a backup of the active directory. This script can be used to create brick-level backup of distribution groups, so that they can be restored individually.</p><h3>Download</h3><p><a title="https://github.com/junecastillote/Export-GroupsAndMembers" href="https://github.com/junecastillote/Export-GroupsAndMembers">https://github.com/junecastillote/Export-GroupsAndMembers</a></p><h3>Variables</h3><p>Modify the variables as needed</p><p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxrzUjMpVrP83-mX5-B4eqDXJXHXGRxXAoa2RRNjskGxzEyAuWLVWDOJa68lF3g23AfZlIvLnQmflZDKbjgWP490hyORIhAHyUKuHCbPuHuS4jFtYdfwWdaHo59NTuQA4pVEDP-7T__djw/s1600/variables_group.gif"></p><h3>Sample Output</h3><h4>Running the script</h4><p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumJgbY2uB6FMz0bN93OuBnlUO7yrIQvmMI2UcYFUC3_BKL2Rw-PMPWf-qXbE7cubx6iLNLBKYGlUySEARYyDf9i47-kFKpDL2KPywBe6lYcEBEEcc87YGSPXVuuf8OGCdf-0tuayF0iLa/s1600/command.gif"></p><h4>Backup File</h4><p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHIOCFUhn-wdMTUlm7kb6MRuNAylXMW0Wg6Z90DP3ohXkjb6WP8F7sWgE6WBNas_o4x1ETVqmfMq3I5UUrnYGcjvyiS11CmK80WXiQaSUAjecJ5alBuYRlZwmKyqQ-n3UnRF_qy4TWcob4/s1600/zip1.gif"></p><h4>Sample Data</h4><p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ6Nignn3E2v13-LrR5nrdEYIPVBSXgQzBydmsFlvFagYRNTNbw-vClFcS-ZyN9s-cXsvEL69rZ8wNJGslKzvKwMOR58_upNtZYTdrnFLHf3lc2Pm_mtMdZdcq_92fGHFm80hklH0-M0Dj/s1600/excel.gif"></p>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-17138274046519021712015-03-26T22:16:00.000+08:002018-08-13T12:52:43.419+08:00Exchange Server 2010/2013 Health Check PowerShell Script (v5.4)<p>A re-work of my previous <a href="http://www.lazyexchangeadmin.com/2012/03/exchange-2003-data-collector.html">ExDac utility for Exchange Server 2010</a> which was written in .NET<br>
<br>
Now, this is written in PowerShell instead of VB.net, and as a result, the entire script runs for half the time than the previous tool.<br>
<br></p>
<h3>
What the script does?</h3>
The script performs several checks on your Exchange Servers like the ones below:<br>
<ul>
<li>Server Health (Up Time, Server Roles Services, Mail flow,...)</li>
<li>Mailbox Database Status (Mounted, Backup, Size, and Space, Mailbox Count, Paths,...)</li>
<li>Public Folder Database Status (Mount, Backup, Size, and Space,...)</li>
<li>Database Copy Status</li>
<li>Database Replication Status</li>
<li>Mail Queue</li>
<li>Disk Space</li>
<li>Server Components (for Exchange 2013/2016)</li>
</ul>
<div>
Then an HTML report will be generated and can be sent via email if enabled in the configuration file.</div>
<div><br></div>
<div>
I have not tested this for Exchange 2016 but in theory, this should work just as well (let me know if it doesn't). </div>
<div><br></div>
<h3>
Sample Output </h3>
<div>
<a href="http://www.lazyexchangeadmin.com/p/blog-page.html" target="_blank">HTML page sample</a><br>
<br></div>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIolnR6-ql5tNhQW3miTSn201lk_8Royrpv14m9uaHleklgUdFvjgkkq2jhH2KnFj4iDsRoHZzmLeIKNqct6cMX_rjMbuC79V_bIwmJiLmqTqgTXXyw6KxcnuH94JYahxQblMV18fDINNc/s1600/01+Overall.png"><img width="640" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIolnR6-ql5tNhQW3miTSn201lk_8Royrpv14m9uaHleklgUdFvjgkkq2jhH2KnFj4iDsRoHZzmLeIKNqct6cMX_rjMbuC79V_bIwmJiLmqTqgTXXyw6KxcnuH94JYahxQblMV18fDINNc/s640/01+Overall.png" border="0"></a></div>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTuikCx9yZ6VYKhyphenhyphenS45DijEaHs7KbNFqRGVEUuvVvaNU074YF6whA2wOkBjUKaMKXccKkz4YCAcp5Llt8yd3zFgevS_6Kn2dyu7kyanjx1qDdsShyi0BgZUjbq4rCkBeufCPLlz_3mx52/s1600/02+Server+Health.png"><img width="640" height="77" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTuikCx9yZ6VYKhyphenhyphenS45DijEaHs7KbNFqRGVEUuvVvaNU074YF6whA2wOkBjUKaMKXccKkz4YCAcp5Llt8yd3zFgevS_6Kn2dyu7kyanjx1qDdsShyi0BgZUjbq4rCkBeufCPLlz_3mx52/s640/02+Server+Health.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHlUDhC9TLhBaNv-YgqC0ptDQA1FboByLcj1RWNJJFUh_MfLIIZwyOa_goGP5HSMNvI4Pvl_vNHTo7_unhPwxtxzgoJPXB812TQT7ZhyJxOiiui_hJJwgH_gWBq2JBvd7xoh-8jEv0x6vt/s1600/03+Server+Component.png"><img width="640" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHlUDhC9TLhBaNv-YgqC0ptDQA1FboByLcj1RWNJJFUh_MfLIIZwyOa_goGP5HSMNvI4Pvl_vNHTo7_unhPwxtxzgoJPXB812TQT7ZhyJxOiiui_hJJwgH_gWBq2JBvd7xoh-8jEv0x6vt/s640/03+Server+Component.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYsqvMy3q8M2C5Z4zvad1rZkvdB3MinKS9gH3ZznED08cz3UkAVjGDdanZvpqYIVJp_xtZn7XaB1q_ugSay7220dlZ_wbnGrITmqAqIHVcmZh-O4Cw_9mXNUqTzwcvwuwJx49Yi40FzCLg/s1600/04+Mailbox+Database.png"><img width="640" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYsqvMy3q8M2C5Z4zvad1rZkvdB3MinKS9gH3ZznED08cz3UkAVjGDdanZvpqYIVJp_xtZn7XaB1q_ugSay7220dlZ_wbnGrITmqAqIHVcmZh-O4Cw_9mXNUqTzwcvwuwJx49Yi40FzCLg/s640/04+Mailbox+Database.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM0ZZtQcEFlMknKE0HL5SnR1ROUHqZpgWIMiSz9By5-u78PA5TY9WlqNgaMMHo3VLISKHyNxJaHReFCGBmxmWzsvXDNmt0kJ5rdv716vWILwEui2Nkmc8r_l8EOlqMH8PAEyGHQnKxSplZ/s1600/05+Replication.png"><img width="640" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM0ZZtQcEFlMknKE0HL5SnR1ROUHqZpgWIMiSz9By5-u78PA5TY9WlqNgaMMHo3VLISKHyNxJaHReFCGBmxmWzsvXDNmt0kJ5rdv716vWILwEui2Nkmc8r_l8EOlqMH8PAEyGHQnKxSplZ/s640/05+Replication.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTKaz_cQxxU60QwEfhB3ujJ2SSbWomCcZ39hs_NhjMcFVhcvBzk5Wbx-6pBsd0VvdZIV1PL2oq0uhAw1j769acw9iny1mZlRYISyCusK_1eR2aRfPTDhemR0vwgnBoIWRVyM2zLcspaoZK/s1600/06+Database+Copy.png"><img width="640" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTKaz_cQxxU60QwEfhB3ujJ2SSbWomCcZ39hs_NhjMcFVhcvBzk5Wbx-6pBsd0VvdZIV1PL2oq0uhAw1j769acw9iny1mZlRYISyCusK_1eR2aRfPTDhemR0vwgnBoIWRVyM2zLcspaoZK/s640/06+Database+Copy.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1HJ75ztGFoxS_ck7Vn2ma61WVbGIKwmK_NiJ5asgLWAoMIuq4mpRpulloAVI3qzXyqD2rdzMaxPNT9boAh88FJY3w3AiET2p7MmW7jpHDo-77V4izplrsHW49Q4H4CWAkApWRStjpzPo0/s1600/07+Mail+Queue.png"><img width="640" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1HJ75ztGFoxS_ck7Vn2ma61WVbGIKwmK_NiJ5asgLWAoMIuq4mpRpulloAVI3qzXyqD2rdzMaxPNT9boAh88FJY3w3AiET2p7MmW7jpHDo-77V4izplrsHW49Q4H4CWAkApWRStjpzPo0/s640/07+Mail+Queue.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1kR-uGuwQ0dUEIAt-8Gt0-OiV9p_2vTlqmL6uevz77h9Cn1FEwqOCSigWBs7WVsUExJlhFNPr1URCP9QXuN7Nf8yvFi35k6IPSKV9Eo0SJWLMaW2aE6wtijLPAoe_MiqP63NfPG_JlBWt/s1600/08+Disk+Space.png"><img width="640" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1kR-uGuwQ0dUEIAt-8Gt0-OiV9p_2vTlqmL6uevz77h9Cn1FEwqOCSigWBs7WVsUExJlhFNPr1URCP9QXuN7Nf8yvFi35k6IPSKV9Eo0SJWLMaW2aE6wtijLPAoe_MiqP63NfPG_JlBWt/s640/08+Disk+Space.png" border="0"></a></div>
<br>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEABojIM2ZWVlhOFR846jJBtxM4wJGW2590XXv8U34fT2F5uireRlBP2GwtIngUIoGfwUWMzBMGdjTdyw0ddYmpiAnUl6OFGCtRVAJQ63oA_YULkeQGFn5aICOD5GVFAfpmorFc6lEhQku/s1600/09+Config.png"><img width="320" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEABojIM2ZWVlhOFR846jJBtxM4wJGW2590XXv8U34fT2F5uireRlBP2GwtIngUIoGfwUWMzBMGdjTdyw0ddYmpiAnUl6OFGCtRVAJQ63oA_YULkeQGFn5aICOD5GVFAfpmorFc6lEhQku/s320/09+Config.png" border="0"></a></div>
<br>
<div><br></div>
<h3>
Parameters</h3>
<div>
<ul>
<li><b>-configFile</b>, to specify the XML file that contain the configuration for the script.</li>
<li><b>-enableDebug</b>, optional switch to start a transcript output to debugLog.txt</li>
</ul>
<h3>
Configuration File</h3>
</div>
<div>
The configuration file is an XML file containing the options, thresholds, mail settings, exclusion that will be used by the script. The snapshot of the configuration file is seen below:</div>
<div><br></div>
<div class="separator" style="text-align: center; clear: both;">
<a style="margin-right: 1em; margin-left: 1em;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcO7a1RxmwmaEILqNEAr0tHVtNzYN1-Zg1O8feQFBDCE3RbMozYAfwwhkVnzr7aCWQAraDX52tkwkdu1m3ml7yKgDB5ZdxwYjL2MnflMedgioWT51SoxRLGhEQoRs6BaEGLM7khMUMJxyv/s1600/10+XML.png"><img width="400" height="390" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcO7a1RxmwmaEILqNEAr0tHVtNzYN1-Zg1O8feQFBDCE3RbMozYAfwwhkVnzr7aCWQAraDX52tkwkdu1m3ml7yKgDB5ZdxwYjL2MnflMedgioWT51SoxRLGhEQoRs6BaEGLM7khMUMJxyv/s400/10+XML.png" border="0"></a></div>
<div class="separator" style="text-align: left; clear: both;">
</div>
<div><br></div>
<h4>
reportOptions</h4>
This section can be toggled by changing values with "true" or "false"<br>
<br>
<ul>
<li><b>RunServerHealthReport </b>- Run test and report the Server Health status</li>
<li><b>RunMdbReport </b>- Mailbox Database test and report</li>
<li><b>RunComponentReport </b>- Server Components check (Exchange 2013/2016)</li>
<li><b>RunPdbReport </b>- For checking the Public Folder database(s)</li>
<li><b>RunDAGReplicationReport </b>- Check and test replication status</li>
<li><b>RunQueueReport </b>- Inspect mail queue count</li>
<li><b>RunDiskReport </b>- Disk space report for each server</li>
<li><b>RunDBCopyReport </b>- Checking the status of the Database Copies</li>
<li><b>SendReportViaEmail </b>- Option to send the HTML report via email</li>
<li><b>ReportFile </b>- File path and name of the HTML Report</li>
</ul>
<h4>
thresholds</h4>
<br>
This section defines at which levels the script will report a problem for each check item<br>
<br>
<ul>
<li><b>LastFullBackup </b>- age of full backup in days. Setting this to zero (0) will cause the script to ignore this threshold</li>
<li><b>LastIncrementalBackup </b>- age of incremental backup in days. Setting this to zero (0) will cause the script to ignore this threshold.</li>
<li><b>DiskSpaceFree </b>- percent (%) of free disk space left</li>
<li><b>MailQueueCount </b>- Mail transport queue threshold</li>
<li><b>CopyQueueLenght </b>- CopyQueueLenght threshold for the DAG replication</li>
<li><b>ReplayQueueLenght </b>- ReplayQueueLenght threshold</li><li><strong>cpuUsage</strong> – CPU usage threshold %</li><li><strong>ramUsage</strong> – Memory usage threshold %</li>
</ul>
<h4>
<br></h4><h4>mailAndReportParameters</h4>
This section specifies the mail parameters<br>
<div>
<ul>
<li><b>CompanyName </b>- the name of the organization or company that you want to appear in the banner of the report</li>
<li><b>MailSubject </b>- Subject of the email report</li>
<li><b>MailServer </b>- The SMTP Relay server</li>
<li><b>MailSender </b>- Mail sender address</li>
<li><b>MailTo </b>- Recipient address. For multiple recipients, separate the addresses with a semi-colon (;)</li>
</ul>
<h4>
exclusions</h4>
</div>
<div>
This section is where the exclusion can be defined.</div>
<div>
<ul>
<li><b>IgnoreServer </b>- List of servers to be ignored by the script. Separate with a comma (,) with no spaces.</li>
<li><b>IgnoreDatabase </b>- List of Mailbox Database to be ignored by the script. Separate with a comma (,) with no spaces.</li>
<li><b>IgnorePFDatabase </b>- List of Public Folder Database to be ignored by the script. Separate with a comma (,) with no spaces.</li>
</ul>
<h3>
How to Use</h3>
</div>
<h4>
Run manually using Exchange Management Shell</h4>
<div class="separator" style="text-align: center; clear: both;">
<a style="clear: left; margin-right: 1em; margin-bottom: 1em; float: left;" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnbcEuMfPGb2ZJ5bmeODT2cIiBrXyFAHp4nLPEiPzXZ_997vpNYXKZOxt_WF0NZ9KyXqTPczztDShNbZTf0TVA7PDhHdNx75T21_PM9pcHnu1SXNvb0HDci1obwOiCs7yWbHDypt0tL3Ud/s1600/11+Usage.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnbcEuMfPGb2ZJ5bmeODT2cIiBrXyFAHp4nLPEiPzXZ_997vpNYXKZOxt_WF0NZ9KyXqTPczztDShNbZTf0TVA7PDhHdNx75T21_PM9pcHnu1SXNvb0HDci1obwOiCs7yWbHDypt0tL3Ud/s1600/11+Usage.png" border="0"></a></div>
<div><br></div>
<div><br></div>
<div><br></div>
<div>
<b>[PS] C:\scripts>.\Get-ExchangeHealth.ps1 -configFile .\config.xml -enableDebug</b></div>
<div><br></div>
<div>
<strong><u>Note:</u> <font color="#ff0000">This must be run within the Exchange Management Shell session. Avoid using this inside the normal PowerShell session, with the Exchange 2010 PSSnapin loaded especially for Exchange 2013 servers.</font></strong></div>
<div><br></div>
<h4>
Task Scheduler</h4>
<div>
Create a task in Task Scheduler with this action:</div>
<div><br></div>
<div>
<b>Program/script</b>: powershell.exe </div>
<div>
<b>Add arguments</b>: -Command ".'C:\Program Files\Microsoft\Exchange Server\V15\Bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\scripts\Get-ExchangeHealth.ps1 -configFile C:\scripts\Get-\config.xml"</div>
<div><br></div>
<h3>
Download</h3>
<div>
You can find the latest script and config.xml file in this GitHub repository:</div>
<div>
<a href="https://github.com/junecastillote/Get-ExchangeHealth">https://github.com/junecastillote/Get-ExchangeHealth</a></div>
<div><br></div>
<h3>
Change Logs</h3><h4>Version 5.4 (Latest)</h4><ul><li>Added CPU and Memory Utilization Checks</li><ul><li>New configuration in config.xml (ramUsage, cpuUsage, RunCPUandMemoryReport)</li></ul><li>Code clean-up</li></ul><h4>Version 5.3 (skipped, crappy version)</h4>
<div>
<h4>
Version 5.2 (Latest)</h4>
<div>
<ul>
<li>Several code cleanups</li>
<li>Renamed RunDAGCopyReport to RunDBCopyReport (because it makes more sense to call it that)</li>
<li>Removed Add-PSSnapin code because it didn't play well with Exchange 2013. Hence the need to use Exchange Management Shell.</li>
<li>Added the Version and Edition of Exchange Server column in Server Health report</li>
<li>Revised the Get-MailQueues function</li>
<li>Added AdminDisplayVersion identification in Get-ServerHealth function</li>
<li>Removed PowerShell-Remoting code from the Mail flow test</li>
<li>Renamed Get-DAGCopyStatus function to Get-DatabaseCopyStatus</li>
<li>Added CopyQueueLenght threshold in XMLconfig file</li>
<li>Added ReplayQueueLenght threshold in XMLconfig file</li>
<li>Added Server Components check (for Exchange 2013)</li>
<li>Added RunComponentReport option in XML config file</li>
<li>Added <exclusions> section in XML config file</exclusions></li>
<li>Added IgnoreServer,IgnoreDatabase,IgnorePFDatabase fields in XML config file</li>
<li>Added counter for the number of tests, passed and failed.</li>
<li>Added percentage computation for overall health</li>
<li>The "Issues" table is not visible from the report if there are no actual issues detected</li>
<li>Added individual test results summary</li>
<li>Added logic to not run DAG checks if there are no DAGs</li>
<li>Added logic to not run Mail Flow test against Mailbox Servers with no Active Mailbox Database</li>
</ul>
</div>
<h4>
Version 5.1 </h4>
<div>
<ul>
<li>Added new parameter "configFile" where you will need to specify the configuration XML file which contains the variables that used to be included inside the script in previous versions.</li>
<li>Moved the Variables to an outside XML file (default is config.xml) You can create different XML files with different configurations/variables if desired.</li>
<li>To run: "Get-ExchangeHealth.ps1 -configFile config.XML"</li>
<li>Added DAG Copy Status</li>
<li>Fixed the Math for getting back up age</li>
</ul>
</div>
<h4>
Version 4.4b</h4>
<div>
<ul>
<li>Corrected version information within the script</li>
<li>Added BCC and CC line within the @params variable block, but are commented out.</li>
<li>Added comments to:</li>
<li>[int]$t_lastincrementalbackup</li>
<li>[int]$t_lastfullbackup</li>
<li>Added comments to:</li>
<li>$MailCC</li>
<li>$MailBCC</li>
</ul>
</div>
<h4>
Version 4.4</h4>
<div>
<ul>
<li>Added Test-MailFlow Handle for Exchange 2013</li>
<li>Moved Test-MailFlow Result to Server Health Status Report</li>
<li>Exclude Edge Servers from Testing</li>
<li>Public Folder Database Report will not run if database count is 0</li>
</ul>
</div>
<h4>
Version 4.3</h4>
<div>
<ul>
<li>Renamed script to Get-ExchangeHealth.ps1</li>
<li>Added Test-MapiConnectivity</li>
<li>Added Test-MailFlow</li>
<li>Added Services Status</li>
<li>Added DNS/Ping Test</li>
<li>Added Server Up Time</li>
<li>Changed Backup Threshold from Days to Hours</li>
</ul>
</div>
<h4>
Version 4.0</h4>
<div>
<ul>
<li>Added DAG Members Replication Checks </li>
<li>Added Mail Queue Checks</li>
<li>Added DB Activation Preference Check</li>
<li>Added "Summary" Section</li>
<li>Fixed HTML character recognition issues</li>
</ul>
</div>
</div>
<h4>
Older versions --- :)</h4>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-24845238172751226362013-08-06T12:02:00.000+08:002017-02-06T20:37:20.331+08:00Exchange Information Store Backup with Cleanup and Email Report<ol start="1" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><span style="font-family: "trebuchet ms" , sans-serif;"><b>What is MSExchangeISBackup.exe Tool?</b><o:p></o:p></span></li>
</ol>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;">This is a customizable program for Exchange
Information Store backup purposes.</span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;">The tool is only suitable for backup to file
operation. (For Exchange 2003)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;">This program, when executed, calls
the native backup capability of the NTBackup utility in Windows to execute a
backup task for the Exchange Server Information Store. Additionally, after the
backup task is complete, it reads the logs to determine whether the backup was
successful or not. Then it performs a purge operation of older backup file
based on the retention days specified in the configuration file. A report is
also sent to the intended recipients via email. These features eliminate the
need to check for completion or successful backup manually; and take care of
housekeeping of old backup files based on retention value.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;">This can also be set as Scheduled
Task to run daily or whenever is required.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<ol start="2" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><b><span style="font-family: "trebuchet ms" , sans-serif;">What are the system requirements?<o:p></o:p></span></b></li>
</ol>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">·</span><span style="font-family: "trebuchet ms" , sans-serif; font-size: 7pt; text-indent: -0.25in;">
</span><span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">.Net Framework 2.0</span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->Windows 2003<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->Exchange 2003<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<ol start="3" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><b><span style="font-family: "trebuchet ms" , sans-serif;">What are the required user permissions?<o:p></o:p></span></b></li>
</ol>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">·</span><span style="font-family: "trebuchet ms" , sans-serif; font-size: 7pt; text-indent: -0.25in;">
</span><span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">Access to the location/drive/path where the
backup files will be saved.</span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->The tool is expected to be handled, used and
configured by the Administrators.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<ol start="4" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><b><span style="font-family: "trebuchet ms" , sans-serif;">Where can I get the program?<o:p></o:p></span></b></li>
</ol>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;"><o:p>Download: </o:p><a href="http://sdrv.ms/19629l7" target="_blank">http://sdrv.ms/19629l7</a></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .5in;">
<br /></div>
<ol start="5" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><b><span style="font-family: "trebuchet ms" , sans-serif;">Installation/Configuration<o:p></o:p></span></b></li>
</ol>
<div class="MsoListParagraph">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->Download and Extract the zip to any folder. In
this example, it is saved in C:\MSExchangeISBackup\<o:p></o:p></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60t5xNDv30MMBxiXGZdvfSy8QOrxPeRRpYrd6zFGmSu_MwnX9tQxWXha40bvk-lvGrIn-_JV63pVjQQCELUSV9cf94D-MgDvvqKG5UzgfOs2W5TchOELhix_4AFYwRJ1e3SqkE9hd3z6w/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj60t5xNDv30MMBxiXGZdvfSy8QOrxPeRRpYrd6zFGmSu_MwnX9tQxWXha40bvk-lvGrIn-_JV63pVjQQCELUSV9cf94D-MgDvvqKG5UzgfOs2W5TchOELhix_4AFYwRJ1e3SqkE9hd3z6w/s1600/01.png" /></span></a></div>
<div class="MsoNormal" style="margin-left: .75in;">
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->Create the Backup Selection File using
NTBackup.exe<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in; mso-list: l0 level2 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">o<span style="font-size: 7pt;">
</span><!--[endif]-->Click Start > Run > NTBackup.exe<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in; mso-list: l0 level2 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">o<span style="font-size: 7pt;">
</span><!--[endif]-->Select the Server and Information Store for
backup.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLMqOm-oMFaBiWzcE2SrKQBU63R-QGt6qdXxlIN3q_R2REobd1CAASRXySpGIscQz3Xbgm5xcbWzbENcFXoTJOVSOPkueWCXcbIlHba-EEhINIpw3TxekDGcr6Ic-aI7zUsWymaiOn9fVB/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLMqOm-oMFaBiWzcE2SrKQBU63R-QGt6qdXxlIN3q_R2REobd1CAASRXySpGIscQz3Xbgm5xcbWzbENcFXoTJOVSOPkueWCXcbIlHba-EEhINIpw3TxekDGcr6Ic-aI7zUsWymaiOn9fVB/s320/02.png" width="276" /></span></a></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in; mso-list: l0 level2 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">o<span style="font-size: 7pt;">
</span><!--[endif]--> Click Job
> Save Selection As<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahLZ89zLNvDPd6L9BDvaWwkWbYKAqtQjauEEoeu6aTl8FwSVti3zjdqr9feHalkaNQ_sFUX3jmYz6tWaavXY7g3PpOjFMqYRevgV62HISFNO5HuIGpznVXPmKHe2lIo3YbwIWzj8LNlcz/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahLZ89zLNvDPd6L9BDvaWwkWbYKAqtQjauEEoeu6aTl8FwSVti3zjdqr9feHalkaNQ_sFUX3jmYz6tWaavXY7g3PpOjFMqYRevgV62HISFNO5HuIGpznVXPmKHe2lIo3YbwIWzj8LNlcz/s1600/03.png" /></span></a></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in; mso-list: l0 level2 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">o<span style="font-size: 7pt;">
</span><!--[endif]-->Save the BKS file. In this example, it is saved
in C:\MSExchangeISBackup\DevSvr01-IS.bks<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYlMTLgKCo4GQgyvYyLB_CV6m3dCjvB_nNvw4iq3OcnsCCWxqQ7ykBTInP_MzBog7L_gXfx_BHoDNURSc9EMmWnRZrDY_EWspD6QFb6R-Bm4goB9ET2lcocq8qDeohaHWblg0UlpnvN86k/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYlMTLgKCo4GQgyvYyLB_CV6m3dCjvB_nNvw4iq3OcnsCCWxqQ7ykBTInP_MzBog7L_gXfx_BHoDNURSc9EMmWnRZrDY_EWspD6QFb6R-Bm4goB9ET2lcocq8qDeohaHWblg0UlpnvN86k/s1600/04.png" /></span></a></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in; mso-list: l0 level2 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">o<span style="font-size: 7pt;">
</span><!--[endif]-->Modify the INI file. In this example, we are configuring
the config.ini file.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">[OPTIONS]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;the path for NTBACKUP.exe<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">NTBUPathName=C:\Windows\System32\ntbackup.exe<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;the folder where the Backup Selection is located. (*.BKS)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">BKSDir=C:\MSEXchangeISBackup\<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;the filename of the backup selection file<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">BKSFile=DevSvr01-IS.bks<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;the path where the backup file will be saved (*.BKF)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;this coud be a local drive or a network location.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;TAPE is not supported.. yet.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">BKFDir=C:\Backup\<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Prefix for the backup filename.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">BKFPrefix=DevSvr01_<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;File extension for the output backup file. There is usually no
need to change this.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">BKFExtension=bkf<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;How many days to keep the copy of the backup file in the BKFDir
location before it is purged.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Make sure that a MINUS sign comes before the number (eg. -14
for 14 days retention)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">KeepDays=-5<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Indicate if backups older than the KeepDays value is
purged/deleted. (TRUE or FALSE)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">PurgeOld=TRUE<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Indicate if the report is to be sent via email. (TRUE or FALSE)<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">SendReport=TRUE<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;IP or Resolvable name of the SMTP server where the email report
will be relayed for delivery.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">SMTPServer=192.168.56.250<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;SMTP port. Usually 25.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">Port=25<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Sender address to reflect as the sender of the report.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">Sender=DevSvr01_Backup@labworks.local<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<br /></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="color: #00b050;"><span style="font-family: "trebuchet ms" , sans-serif;">;Recipient addresses of the email report. Seperate multiple
addresses with COMMA.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-left: 1.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;">Recipient=administrator@labworks.local<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: .25in;">
<br /></div>
<ol start="6" style="margin-top: 0in;" type="1">
<li class="MsoNormal"><b><span style="font-family: "trebuchet ms" , sans-serif;">Run the program to Backup Exchange Information Store<o:p></o:p></span></b></li>
</ol>
<div class="MsoNormal" style="margin-left: .5in;">
<span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">·</span><span style="font-family: "trebuchet ms" , sans-serif; font-size: 7pt; text-indent: -0.25in;">
</span><span style="font-family: "trebuchet ms" , sans-serif; text-indent: -0.25in;">Open Command Prompt and change the path to where
the tool is saved. In this example it is in C:\MSExchangeISBackup</span></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCr_7jjy8jKzunBndJO3eIfZrae2q0n08KM_6ErsY31sUxIFdN6892GThIhl-l_EP2FBOvaaAXBejpooYqGmA6E6_me_K2y1XaRUrNBGgWaxZqKbi2E1ftPmkGHLJIGQ3H5ZxBCYIFL2B1/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCr_7jjy8jKzunBndJO3eIfZrae2q0n08KM_6ErsY31sUxIFdN6892GThIhl-l_EP2FBOvaaAXBejpooYqGmA6E6_me_K2y1XaRUrNBGgWaxZqKbi2E1ftPmkGHLJIGQ3H5ZxBCYIFL2B1/s1600/05.png" /></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></div>
<span style="font-family: "trebuchet ms" , sans-serif;"><o:p></o:p></span><br />
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->Issue the command in this format
“MSExchangeISBackup.exe [INI File]” .<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->In this example, it is MSExchangeISBackup.exe
Config.ini<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVJ9fU8JCzQkkBlvZOYVwHx7zDAYcP7E2mdU4zAiWO3cGUYfvWbwhOafV94QzQp33_uRSsUNSEO_Nj0ARliL2BXTp3B_O6OzdwzTmQPnKpBVy_8yMvewi0W-zNAhfA8u1yj_G1pf-jZrzr/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVJ9fU8JCzQkkBlvZOYVwHx7zDAYcP7E2mdU4zAiWO3cGUYfvWbwhOafV94QzQp33_uRSsUNSEO_Nj0ARliL2BXTp3B_O6OzdwzTmQPnKpBVy_8yMvewi0W-zNAhfA8u1yj_G1pf-jZrzr/s1600/06.png" /></span></a></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->NTBackup.exe will run in the background.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->The output will be written in the command
console.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRkBr19xz25_o15bkU7XeRkJe4sVk-98dCy3aQTXQ4rjxfiSzeuOsxcBqdLuM1So49JImD0ZhcCGzT15LfNj8M_suSHu5-2XIEP030w-xhXdxJyGqjn-lk1EsyT3SmuFhQPv_mxbnQ4E-/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKRkBr19xz25_o15bkU7XeRkJe4sVk-98dCy3aQTXQ4rjxfiSzeuOsxcBqdLuM1So49JImD0ZhcCGzT15LfNj8M_suSHu5-2XIEP030w-xhXdxJyGqjn-lk1EsyT3SmuFhQPv_mxbnQ4E-/s1600/07.png" /></span></a></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in;">
<br /></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->It checks if backup was successful.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->It will delete older backups based on the
retention days specifies in the INI file.<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: .75in; mso-list: l0 level1 lfo2; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: "trebuchet ms" , sans-serif;">·<span style="font-size: 7pt;">
</span><!--[endif]-->The report will be sent via email if it is
enabled in the INI.<o:p></o:p></span></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKeGlbDamm5WHR3PLp-qkSLCMItXQiMPGtxX9y1glR4iX-Cwq1q27SrNQOhFuNIaSk744AKnHQ347blWz5pLw8nPv6m20lkCv28o1FxdBwOsj5uB5qsupQNPbzXKRJbbPV-fml8H4EO0SI/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "trebuchet ms" , sans-serif;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKeGlbDamm5WHR3PLp-qkSLCMItXQiMPGtxX9y1glR4iX-Cwq1q27SrNQOhFuNIaSk744AKnHQ347blWz5pLw8nPv6m20lkCv28o1FxdBwOsj5uB5qsupQNPbzXKRJbbPV-fml8H4EO0SI/s1600/08.png" /></span></a></div>
June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-54540398978252517502013-03-19T17:16:00.001+08:002017-02-06T20:35:03.028+08:00Extract List of User Mailbox Data using vbScript<span style="font-family: "trebuchet ms" , sans-serif;">If you need to export a list of user mailboxes (because your boss is making you or you simply have nothing better to do), it is quite an easy task if you have Exchange 2007 and up because of PowerShell snapins.</span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">You can just fire up PowerShell and import the Exchange 2010 Module.</span><br />
<br />
<span style="color: red;"><span style="background-color: white;"><i><span style="font-family: "trebuchet ms" , sans-serif;">Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010</span></i></span></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">Then:</span><br />
<br />
<span style="color: red;"><span style="font-family: "trebuchet ms" , sans-serif;"><i>Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | select-object Database, DisplayName, TotalItemSize, TotalDeletedItemSize | Sort-Object Database</i></span></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">Or you can export to CSV like so:</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><i> </i></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><i><span style="color: red;">Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | select-object Database, DisplayName, TotalItemSize, TotalDeletedItemSize | Sort-Object Database | Export-Csv .\Mailboxes.CSV -NoTypeInformation</span></i></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">But what if you're still in survival mode with Exchange 2003?</span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">You can use this script should you need to extract the list of user mailboxes from one or more Exchange 2003 servers. </span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">This script will cough-out the following Fields.</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">ServerName</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">StorageGroupName</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">StoreName</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">MailboxGUID</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">MailboxDisplayName</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">LegacyDN</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Size</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">TotalItems</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">AssocContentCount</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">DeletedMessageSizeExtended</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">StorageLimitInfo</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">LastLoggedOnUserAccount</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">LastLogOnTime</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">LastLogOffTime</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">DateDiscoveredAbsentAbsentDaysInDS</span></li>
</ul>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">This script reads the list of servers to be queried from a file called ServerList.ini.</span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">Be sure to create this file and populate it with the server names before running this script. </span></span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">It runs in this order:</span></span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">1. Read list of server from ServerList.ini</span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">2. Query each servers and extract information</span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "trebuchet ms" , sans-serif;">3. Save information to "ExchangeMBX.txt" </span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;"><span style="color: lime;">'==========================================================================<br />'<br />' NAME: ExtractMBXInfo.vbs<br />'<br />' AUTHOR: june.castillote@gmail.com<br />' DATE : 10/01/2011<br />'<br />' COMMENT: This is for extracting the list of mailboxes from specified servers in the "serverlist.ini" file.<br />' FILES : 1. ExtractMBXInfo.vbs - main script<br />' 2. ServerList.ini - file containing the list of servers for the query.<br />' USAGE : cscript ExtractMBXInfo.vbs<br />'==========================================================================</span><br />Option Explicit<br /><br />On Error Resume Next<br /><br />Dim t1, t2, t3, d1, d2, d3<br /><br />Dim strComputer<br /><br /><span style="color: lime;">'==========================================================================</span><br /><br />Dim FileToWrite, FileToRead, fsoWrite, fsoRead<br /><br />Set fsoWrite = CreateObject("Scripting.FileSystemObject")<br />Set fsoRead = CreateObject("Scripting.FileSystemObject")<br /><br />Set FileToWrite = fsoWrite.CreateTextFile("ExchangeMBX.txt")<br />Set FileToRead = fsoRead.OpenTextFile("ServerList.ini")<br /><br />Dim objWMIService<br />Dim colItems<br />Dim objItem<br />Dim i<br /><br /><span style="color: lime;">'Header row</span><br />FileToWrite.WriteLine "Server" & vbTab & "Storage Group" & vbTab & "Mail Store" & vbTab & "Mailbox GUID" & vbTab & "Display Name" & vbTab & "LegacyDN" & vbTab & "Size" & vbTab & "Item Count" & vbTab & "Associated Content Count" & vbTab & "Deleted Message Size" & vbTab & "Date Absent" & vbTab & "Storage Limit Level" & vbtab & "Last LogOn Account" & vbtab & "Last LogOn Time" & vbTab & "Last LogOff Time"<br /><br /><span style="color: lime;">'Iterate through the list of servers</span><br />Do While Not FileToRead.AtEndOfStream<br /> strComputer = FileToRead.ReadLine()<br /> WScript.Echo Now & " : Connecting to " & strComputer<br /> Set objWMIService = GetObject("winmgmts:" _<br /> & "{impersonationLevel=impersonate}!\\" & strComputer & _<br /> "\ROOT\MicrosoftExchangeV2")<br /> <br /> WScript.Echo Now & " : Running Query on " & strComputer<br /> Set colItems = objWMIService.ExecQuery _<br /> ("Select * from Exchange_Mailbox")<br /> <br /> For Each objItem in colItems<br /> If objItem.LastLogOnTime <> "" Then<br /> t1=WMIDateStringToDate(objItem.LastLogonTime)<br /> Else<br /> t1 = ""<br /> End If<br /> <br /> If objItem.LastLogOffTime <> "" Then<br /> t2=WMIDateStringToDate(objItem.LastLogOffTime)<br /> Else<br /> t2 = ""<br /> End If<br /> <br /> If objItem.DateDiscoveredAbsentAbsentDaysInDS <> "" Then<br /> t3=WMIDateStringToDate(objItem.DateDiscoveredAbsentInDS)<br /> Else<br /> t3=""<br /> End If <br /> <br /> FileToWrite.WriteLine objItem.ServerName & vbTab & objItem.StorageGroupName & vbTab & objItem.StoreName & vbTab & objItem.MailboxGUID & vbTab & objItem.MailboxDisplayName & vbTab & objItem.LegacyDN & vbTab & objItem.Size & vbTab & objItem.TotalItems & vbTab & objItem.AssocContentCount & vbTab & objItem.DeletedMessageSizeExtended & vbTab & t3 & vbTab & objItem.StorageLimitInfo & vbTab & objItem.LastLoggedOnUserAccount & vbTab & t1 & vbTab & t2<br /> Next<br />Loop<br />WScript.Echo Now & " : End - Saved to ExchangeMBX.txt"<br /><br /><span style="color: lime;">'To convert WMI time to Standard time format</span><br />Function WMIDateStringToDate(dtmInstallDate)<br /> WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _<br /> Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _<br /> & " " & Mid (dtmInstallDate, 9, 2) & ":" & _<br /> Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _<br /> 13, 2))<br />End Function<br /><br />FileToRead.Close<br />FileToWrite.Close<br />Set FileToRead = Nothing<br />Set FileToWrite = Nothing</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com1tag:blogger.com,1999:blog-2301084935877276793.post-43418966433818725042013-03-18T17:28:00.000+08:002017-02-07T04:37:02.147+08:00List All Users LDAP Query with Attributes<span style="font-family: "trebuchet ms" , sans-serif;">If you need to extract a list of users from the Active Directory, with customizable list of attributes, here's one for you.</span><br />
<br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="color: lime;">'==========================================================================<br />' NAME: ListAllusers.vbs<br />'<br />' AUTHOR: june.castillote@gmail.com<br />' DATE : 03/18/2011<br />'<br />' COMMENT: This is for extracting the list of users with their attribute values.<br />' Once you run the script, it will output the result to UserList-Extended.txt in TAB-delimited format.<br />' USAGE : ListAllusers.vbs<br />'==========================================================================</span></span></span><br />
<span style="font-size: x-small;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="color: lime;"> </span><br />On Error Resume Next<br />Dim FileToWrite, fsoWrite<br />Set fsoWrite = CreateObject("Scripting.FileSystemObject")<br />Set FileToWrite = fsoWrite.CreateTextFile("UserList-Extended.txt")<br /><br />Dim objConnection, objQuery, objRootDSE, strDomain<br />Dim strFilter, strQuery, objRecordSet, gt<br />Set objConnection = CreateObject("ADODB.Connection")<br />Set objQuery = CreateObject("ADODB.Command")<br />objConnection.Provider = "ADsDSOOBject"<br />objConnection.Open "Active Directory Provider"<br />Set objQuery.ActiveConnection = objConnection<br />Set objRootDSE = GetObject("LDAP://RootDSE")<br /><br /><span style="color: lime;">'Retrieve the domain</span><br />strDomain = objRootDSE.Get("defaultNamingContext")<br />strBase = "<ldap: amp="" strdomain="">"<br /><br /><span style="color: lime;">'To filter results only to user objects</span><br />strFilter = "(&(objectCategory=user))"<br /><br /><span style="color: lime;">'Populate the required attributes.<br />'You can find the list of available attributes here: http://www.kouti.com/tables/userattributes.htm</span><br />strAttributes = "distinguishedName,Name"<br /><br /><br /><span style="color: lime;">'Query String</span><br />strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"<br />objQuery.CommandText = strQuery<br />objQuery.Properties("Page Size") = 99999<br />objQuery.Properties("Timeout") = 300<br />objQuery.Properties("Cache Results") = False<br /><br />FileToWrite.WriteLine "Name" & vbTab & "DN"<br />Set objRecordSet = objQuery.Execute<br />objRecordSet.MoveFirst<br />Do Until objRecordSet.EOF<br /> FileToWrite.WriteLine objRecordSet.Fields("Name") & vbTab &objRecordSet.Fields("distinguishedName")<br /> Wscript.Echo objRecordSet.Fields("Name") & vbTab &objRecordSet.Fields("distinguishedName")<br /> objRecordSet.MoveNext<br />Loop<br /><br /><span style="color: lime;">' Clean up</span><br />objConnection.Close<br />FileToWrite.Close<br />Set objConnection = Nothing<br />Set objQuery = Nothing<br />Set objRootDSE = Nothing<br />Set objRecordSet = Nothing<br />Set fsoWrite = Nothing<br />Set FileToWrite = Nothing</ldap:></span></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-36322531508297206412013-03-01T16:42:00.000+08:002017-02-06T20:32:39.416+08:00Domino Server Data Collector [DISCONTINUED]<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<span style="color: red; font-family: "trebuchet ms" , sans-serif;">NOTE: This project has been discontinued and there are no longer any plans to update this.</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<span style="font-family: "trebuchet ms" , sans-serif;">Similar to my <a href="http://shaking-off-the-cobwebs.blogspot.com/2012/03/exchange-2003-data-collector.html" target="_blank">Exchange Server Data Collector</a>, this one is designed for Domino Server instead.</span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">I made this with .NET, with Lotus Notes COM component.</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;">If you'd ask why didn't I just make this in LotusScript as an agent, well here are my answers.</span><br />
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">I hate LotusScript</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">I hate Domino</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">I hate Lotus Notes</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">If Domino is acting up, the Agent may not work</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">If Domino is acting up, the email report or error notification may not be sent.</span></li>
</ul>
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">Those are why I created this independent from any Domino components (or DDM).</span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;">What does this do?</span></h2>
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<span style="font-family: "trebuchet ms" , sans-serif;">This utility collects the following information:</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Queue information like Pending, Hold, Dead mail status in each of routing mailboxes.</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Disk space information of the server.</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Number of mailbox with statistics for Over quota, Warning and Normal. </span></li>
</ul>
<span style="font-family: "trebuchet ms" , sans-serif;"></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"></span><br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<img alt="" src="data:image/png;base64,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" />
<span style="font-family: "trebuchet ms" , sans-serif;"></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;">There are two programs in this project:</span><br />
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Dominator.exe - The main executable that collects information from the domino server.</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">SecureStrings.exe - Tool to encrypt the Notes.ID password that will be in the configuration file of the main executable.</span></li>
</ul>
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;">How does this work?</span></h2>
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Read contents of "config.ini"</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Connect to the specified server</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Login to Domino Server using the ID specified in Notes.INI </span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Extract Queue information</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Extract Disk space information</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Extract Mailbox information</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Generate report</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Send HTML report via email if enabled</span></li>
</ul>
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;">What do I need to use this?</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">A computer with Lotus Notes installed and configured with the user ID that have proper access to the Domino Server.</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">.NET Framework 2.0 installed</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">The program: http://sdrv.ms/Y3w9SI </span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">You know how to use the Command Prompt</span></li>
</ul>
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;">How do I use this?</span></h2>
<br />
<ul>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Configure your Lotus Notes client PC. This utility will use the "last used" Notes.ID in the notes.ini file to connect to the Domino Server.</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Download the program package here and save/extract to whichever folder you choose. http://sdrv.ms/Y3w9SI</span></li>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Modify the CONFIG.INI to input the correct values.</span></li>
<li><span style="color: red;"><span style="font-family: "trebuchet ms" , sans-serif;">Run the SecureStrings.exe program to encrypt the Notes.ID password that you will put in the CONFIG.INI</span></span></li>
</ul>
<span style="color: red;"><span style="font-family: "trebuchet ms" , sans-serif;"><img alt="" src="data:image/png;base64,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" /> </span></span><br />
<span style="color: red;"><span style="font-family: "trebuchet ms" , sans-serif;"><img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgsAAABlCAIAAABMXDeaAAAPgElEQVR4nO2d7VYauxrHuZ/exL6JfQ/nFs43a91td6u0aFtFwUF5FUQFFfEFpbWVqOeslbVOvpxv5056PmRmCEyeTGYARfj/VlbXEDJPXsD8mgQ08fv3b8EZEhISEhLSUEpIQ/wGAAAABukb4tllhYSEhIQ0VQmGQEJCQkLSp2FDLEyA1zSLNG9olmj+MvKW5h3Ne5q/aT4Y+UizTLNCk6T5ZOQzTYpmlWaN5gvNVyPfaNZpNmjSNJtGtmgyNFmabRrHSI5mh2aXJk9ToCkaKdGUaSo0ezRVIzWafZo6zQHNoZEjmgZNk+aY5oTm1EjLI7EgYAgYAoaAIWAIGEJniMSfVRgChoAhYAgYAobQGeLVQtAQn1bXIyUYAoaAIWAIGGIGDfGKMMR//vs/Kv3jnyn130iGyLaY4Ky9BUM8gyFKF0xw1inCEDAEDAFDjLaGePjXvy3TsCG2jmSo9tZIhkhVrwRnd9VPWkOkqh3BWa/6SWeIrQvOBG86EQyRkbfsjGqI7Uv1kwDnzrQbong68NGFX/tbkzVE8YYzwc/27A2xd6a28OF4+ykMsX8+UOnp7ubm3nfOBD8/0Lmh2OoKzh5beRgChpg1Q1BriIQ1Q4bInHo/WreF5POsIZ7LEFIPncOvL2cNIQ0hxSCvL/NTZAiph6vSk64hpB6u9wYXDyZDYA0BQ8ysIbSfdo1viJXCHWfi9qh9ywS/qq64hpBi8FN76/XrZPGOM3F7dedmNrKZhqeW4ufFxTfZhuBMtDbdC7/kbSm1tLQkM8+2lpaWnLN+5F7ts/pQ8KazWu5xJm7Lq9tNwZs5+bBfPvX27dvc4C0779592e/0y+yvvX///v2XSo8z8bPyNXcs+PHBfkdw1qt/8f3wrT6Q48vgW/3aD8XqXz58+PDh2x7jTPy8Zm7+SX73xC3zs7qxvLy8XmWciV/9AoW8V+BXLb2ysrJRY0ov2OF6MplMFuR07931q7aZTCaTSSkGP5GG2Nq/l9feRabUErxVTqUyjRv/9vvGZiqVWs3U7zkTdzf3bn6rUm65Ze4OttfW1rIH90qlMnPvSm3JgCe0gsgd3wjO7gPrhm/qwuLuaEcKodoeyJQPO5WNjY39DhOcdWsbGztHD5yJ3lG+1ha8XU+n0zXlrl4jn04XTrveuqFP/Vpt+flBofnAmeg1i/Vzwc8P6ueCM3FTy8iL3vdHN2CzmMlkMpnDm4GX4MdBNpvNqpmPZ8UBORxe9Muzk4rjNLpMcPbYLjmOU2l/l/l7uVzu6FItuQdDwBBPaQj3i9cKQw+HDJGsXAnO7irL/sXCwsJrue/USg+sIaQheCO7uPh570oWWFxclAXOM0FDlFJv3mzLZ7N9QwxtN2nWEK4hOj3OBG/m+uuGVP0nE7xTXw2sIZym4Ey0s+/evdtpM8HZZc43hIyjMcSuLLkzeA6xcyy4u92UP5cFPEPwk/zHj+sH17LAx48fZYGrvGcIflJYXt5wC+SWl5eLF7KAunhYb/xigl830r4hapvJpCzZKXiZF7uha4itoxvB2f1R2lOFnP1b5VJLcCYu86lUqnzJBGfXJc8QvFVZXc1Kf1wWVldXK7JA2TPE3cH22tp280Zwdt/MxFxDeMndYsodPvjXe2eCs4cTx9WDawun1TEbovvAmeDt+m7jgbOH0520p4qH0x3dFlNgDeEaQsYJGqJZ9KzwvZ7JeM/6VvhxkC2dfRecPZ4VNGuH0vEjZ49nRcdxnMMLXwyNLhP8+0W5/sOXQeXkkbPHdjnnqUJewxAwxFMYwpeBvFD/JQyxXPWXDu5iopBcWFB3loYNcVv87Bnibi9pMkRr8w1tCJl61U+kIXjT8XaZ1modZQrQGEJa4cIZsIVrCH68Q+wyaQ3Rt4JqC3cNUV33DMEOvmoM8au64RmCHXwbMkT68FrphWKIi52kYoiiYoXwcwi5xSQNwU/LqZRqhVQqlfJs4a0h6lnPEPeNLcoQa3J5cVUkDVHxTXBz6gxZonSjtrBTzh13B9rMmeiUa9IBVWWPyWAIuXpIp/OngVDu5pL0gZqpM4T/cMgQN7WMYgjfCkFDCN0Coqw85aZu3XEcxyldMJlz0XCcXC6319aUhCFgiKc2xNAaYii/bwjvjFpN7a3JGmLJ33GS6WyLWEOUV//6y9eDsrkU0RA/K18JQ2h3mSZkCKkHdri+srJSvBjZEIMH1P52U+bJDEGtITz8pYO4O6wdd4VyZC11EM0QvaO8Ygh3DaH9LFO+8cCZ6DUK+jVEsxjXENlsNnugbCXd7A8Zwl1DDFD/wTWGcNcQOIeAIaZhDRE0h28IeUYtd5b8HSdxuvHJFcDKpAwhSZV6FoaQRw69WiruLpNriK+BXSb9SbVhl2kEQ8gLdriu2WUaNMSmdMlROrYhUoZdJjtDyOOH63KszzL5hpA7Tp2ydwhxVlNPqqldpt7RLm0I7xDCXVJoDNE/tY5viGLL3VAaNoQ8qS4dP3ImbvZ9MXiHEBeNQT80ujJT2WVyDyEuGzAEDDEl5xCqMOSFZ4iNNmf+6XT/1JofZV+v1G6HFhYT2WUSt6VVKYX+PpJyUu3uMkkZMME7vb4h3ipH02En1aQh9J92pU+qR9ll2rlyY14zoyGSyY3mr4HBj2wI00l1mCH8dFWU34dwmn6o8JPq6sDJtvJRV7me8PNPHM1J9brT6g3crjFEOp3ebQyEOt0ZPJTuH1kX+ltSykm1hSEymfz5YEuGdpkEOy4rSwf/KMIv8Niuy/2lH4fO8El15WSwJM4hYIgnNIQN+E61lin8tKuWSX1jTt1lwjfmXArnPSb4xSE+7QpDwBAwBAwBQ2QymUym9qP/3/zv5yV8HwKGePmGwO9lgiEm8I25+TQEvjEHQ8yWIcYLDAFDwBAwBAwBQ8AQMAQMAUPAELNrCCQkJCQkJJmeYg0BAADgJaIxxB8AAADAH3/oDWH/UVcAAAAzi9YQ3QB+eW0mkISOzLSN27S1x5LxvgODobTv+bHUZdOSF/Qjpm2nfcufrJtTNZiGXo+rnVHjmMpTawj1nlHeBDNMjNd4ouMWI/K0tcc+zhQaYuw/2y/ip2zEyWHeDOG3RNskGGJ2oEbguUZm2l6RSb/Xn8AQkWbqSfR32l5TLS/CENPDy+vvuAzRVZhEPkWkOP5Dw1Pa3hkqNVfxNP2l2qM+tGkP1SlzKHMjLcchXhzLfoVWYag3oXtvmMfNpj3mfOo6ahxtYwx1UY2n7g2tIpR4/bWvy9wv+9aa22Mfn6oxNL7h3tHbY4psNgR1s7YFNkMQ75oiRpxJVB3M7xKvaIxxo243hNLeojYsanuitpMqNq44CWKcY8Q3VDqEOX6k/obGUSsdMaZNm+3LhJaPSmhMwzjbVz1ikHGNeXeQsbczdhxTcJs1hGULtJ0352vDmgfRpmOGEaGeivpixKjaMmf0eoP53dGMFXVwqGLjikOF6gYIjW+udCiUof2G/mrbY9MvQ6h4cdSOBLtp6Jd9+agYOhXaX/uqRwxiM8g216HVjaWzMeKYgo/REOZiNi2LNArx6o3xoo6rasu7bBhX5AkNDlVsXHGoUFGH0abSrgdVqaGdoe2xfB1Dx83y1Vc7kiDGLWq/RhxzmzaMXrWhUzZBbIbX5jq0uhHbGTuOKfjYDTGJa5tmxHiFtE9ZvhJ+sUgvRqTChkoNoQxVmAPaxB9xfKL2l4pDhYoR31ypffxI/bWJQ7VnXPEn0Z4YaEOZ43cVYtQSGt+ykTGuQ6szd5Z6KjROaH9NrQr9PoQ2VrCATTcilTeMo015m3xtFTGqpnKo/tqMQ2ilwfKG9hgKqwWoxgdvjNRUy/bbx9GOYez4VI3ah5HG31Bem28Z3KY95nyqj6O3JxJDwW36FeyIZRXmAYwUJzQ/Rqe07TT3N7Q9Nv0NrXfuvlNtfkNYvl3mDcM7DICnZ07ehFPxczdXhqBUaVIoSCQSGCIwBczhm/D5uzxXhgAAABABGAIAAIAeGAIAAIAeGAIAAIAeGAIAAIAeGAIAAIAeGAIAAIAeGAIAAIAeGAIAAIAeGAIAAICeBQFDAAAA0IE1BAAAAD2/f1dhCAAAABpE2N+HCP5mQep3o5of2mRSDJW0D/VCfwdk6IAbbgzGMYzzXP2aTABAZGz+xlzw2kYJhmvDdE8RGtPcjJeFfUdCi2nH3CYyAADY/hVS88w+5AxqVhqLIWyU0FWwGYRpw9IQNv2NMdQAAOBiuYbwL8yGGJrEQ6c2c762OvspL/hscEoNtj+0Adou2+drwxrqpbpp6B2VOUq93QDmfADALLAg9CfVhumAug7eYpgyqAmFutdmRqNCUZnauqbqmhrG0K6Z+0vdEml4AQCzT4w1hIqanwjM48Ey9jMdVdI85VkGt4xpcx0afJTrYPMsaw9tkjbHUG83gDkfADALWJ5DSOxnN/PUZjNtUXOZ4V7zQ0Oz7ftliDxiHJuxMlQdqb/ULWql5roAAHPB2A1hU2zEmTFGM8xxogaf9LVN24KY+xs6GjblAQDzhdYQXQW1cNTZTX04FFBbhXmWNFdHBbdvjDm4tthQYct8c+O1ffczEzqo/lKVht4SHAcAwDwyb79149knvmdvAAAA2DJXhqD+Qz0/DQAAgAjMlSEAAABEAIYAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgB4YAAACgJ/TvQ8zDLyKd+W7Odu8AAJPC8u9Uz/z88gR9fMYx1PZu5l9TAMCowBCSSfdx2sZw2toDAJhGIhlC3Y0ZmmKoLamo+RTa8t1BguWD1+b41PWI8bsBzP2yDKVtjE37De0BAIA+ZkMYJiP1KWq6jHptg2WcqFVE6sso8W36YhPE/LqE1h512AEA84jNGkKl65HQ2UJ9Vi1PxbFvpzb+2GdwbZDQftnHN2RGbWSwvDaTCh51/AEA80g8Q9hk2hSwnKeomdQww8aewS1vjB1/7EGGnoUhAABjY+yGGOWaIl6croI5PhVqEvEnMQ5UfO2NNuUBACCRsPg+hFrYMCdGvSXS9KqWT1jP4OZ8Krg2rCFIvC4EM6MG6er0YG6/tphlvQCAeWS2v1M96RkQMywAYJaZSUNE/Y/5tMUHAICpYCYNAQAAYAzAEAAAAPTAEAAAAPTAEAAAAPTAEAAAAPTAEAAAAPS8erUAQwAAANAAQwAAACCBIQAAAGjAGgIAAIAeGAIAAIAeGAIAAICeV4k/YQgAAAAaqn/ipBoAAIAOfGMOAACAHhgCAACAlv8DUkNWIdA4TtIAAAAASUVORK5CYII=" /> </span></span><br />
<ul>
<a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=2301084935877276793" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<li><span style="font-family: "trebuchet ms" , sans-serif;">Run DOMINATOR.exe</span></li>
</ul>
<span style="font-family: "trebuchet ms" , sans-serif;"><img alt="" src="data:image/png;base64,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" /> </span><br />
<ul>
</ul>
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;">What's in the CONFIG.INI?</span></h2>
<span style="font-family: "trebuchet ms" , sans-serif;">===========================================</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="color: red;">[OPTIONS]</span><br /><span style="color: blue;">;This is the DOMINO server</span><br />DSvrName=DOM01/LabWorks<br /><br /><span style="color: blue;">;This is the HOSTNAME</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;">WSvrName=DOM01<br /><br /><span style="color: blue;">;Indicate here the number of routing mailboxes</span><br />NumMailBox=1<br /><br /><span style="color: blue;">;Here you put the encrypted password for the NOTES.ID (use the securestrings.exe tool to encryt)</span><br />NotesPassword=FZ+/8l+pS2n2bX3eszbrgA==</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /><span style="color: red;">[SMTP]</span><br /><span style="color: blue;">;Specify only ONE SMTP server IP and PORT</span><br />SMTPServerIP=127.0.0.1<br />SMTPServerPort=25<br /><br /><span style="color: blue;">;Populate this item if the SMTP server requires authentication, usually this is not the case.<br />;Accepted values are only TRUE or FALSE</span><br />AuthRequired=False<br /><br /><span style="color: blue;">;If AuthRequired=True, you need to fill in this information for the login credentials.<br />;The format is DOMAIN;UserName;Password</span><br />Creds=<br /><br /><span style="color: red;">[REPORT]</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="color: blue;">;The company name to appear in the report</span><br />CompanyName=LabWorks<br /><br /><span style="color: blue;">;Sender="Display Name" <email domain.com=""></email></span><br />Sender="DOM01 Mailer" <dom01 .mailer="" labworks.local=""><br /><br /><span style="color: blue;">;When specifying multiple recipient, seperate with commad eg: someone@hp.com,nobody@hp.com</span><br />Recipients=<br /><br /><span style="color: blue;">;This is the Title that will be shown in the HTML report and also the Subject of the email report.</span><br /><span style="color: blue;">;The program will automatically append the DATE and TIME in this string</span><br />ReportTitle=DOM01 Status Report as of<br /><br /><span style="color: blue;">;This item indicates if the program will send the report via email<br />;EmailReport= True or False</span><br />EmailReport=False<br /><br /><span style="color: blue;">;This can be any value. This is needed so that the email report will be less likely to be considered as spam.</span><br />XMailer=Dominator by june.castillote@gmail.com<br /><br /><span style="color: blue;">;This will be the prefix of the HTML output file. The date and time will automatically be appended.</span><br />ReportFile=LabWorks_<br /><br /><span style="color: blue;">;The value which will be considered normal for the mail queue, anything above the value specified here will be shown as critical.</span><br />QueueThreshold=100<br /><br /><span style="color: blue;">;The value which will be considered normal for the disk space free percentage, anything above the value specified here will be shown as critical.</span><br />DiskThreshold=15 </dom01></span><br />
<br />
<h2>
<span style="font-family: "trebuchet ms" , sans-serif;"><dom01 .mailer="" labworks.local="">Download Link</dom01></span></h2>
<span style="font-family: "trebuchet ms" , sans-serif;"><dom01 .mailer="" labworks.local=""><a href="http://sdrv.ms/Y3w9SI" target="_blank">Dominator 1.0</a> </dom01></span><br />
<br />
<br />
<br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;"><br /></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-55166749270645064072012-12-20T15:16:00.000+08:002017-02-06T20:26:29.741+08:00How to Set Custom User Mailbox Limits in Exchange 2003 using vbScript<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">If you inherited an Exchange Server(s) from another Administrator (who died or otherwise), you might find yourself scratching your head or just cussing because of the issues that might have been left behind for you to deal with :)</span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br />
</span></span> <span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">However, you must understand that they did not intend to leave you those problems (or maybe they did). One of which is that you may find that there are users who do not have mailbox quotas. Of course its bad enough that they don't have quotas, what more if there are hundreds of them? Some of you would say "<b><i>why not just create a system policy </i></b><b><i>for mailbox size limits</i></b><b>?</b>" --- Valid point, but what if these users must have custom mailbox limits and not follow the standard policy for the mail stores?</span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">If there are just 10 of them, I guess modifying the storage limits manually is fine. But again, if there are hundreds or more of these rouge mailboxes it would be best to do the task via script. </span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'==========================================================================</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' NAME: SetCustomMailboxLimits.vbs</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' AUTHOR: Tito Castillote , june.castillote@gmail.com, shaking-off-the-cobwebs.blogspot.com</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' DATE : 11/12/2012</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' Usage instructions:</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' 1. You must create a text file (MailboxLimits.txt) containing the list of user DN (distinguished names)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' and the storage limits to apply.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' Format: [Distinguished Name] [Prohibit Send and Receive] [Prohibit Send] [Issue Warning]</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' example: CN=Administrator,CN=Users,DC=LabWorks,DC=local 500000 450000 400000</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' - the DN and each values must be seperated with a TAB.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' This script is designed for TAB-delimited Input file.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' 2. This script and the Input file must be in the same location and then run this from the Command Prompt.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' Step 1. Create a backup of existing limits.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' cscript //nologo SetCustomMailboxLimits.vbs BACKUP</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' Step 2. Modify the limits as found in MailboxLimits.txt</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' cscript //nologo SetCustomMailboxLimits.vbs MODIFY</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' Step 3. Restore the limits from backup (IF NEEDED)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' cscript //nologo SetCustomMailboxLimits.vbs RESTORE</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">' COMMENT: If you plan to modify a bulk of users, I'd suggest that you do it in batches and not all at once.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'========================================================================</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Declare Constants to avoid "Invalid Procedure Calls or Arguments" errors.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Const ADS_PROPERTY_CLEAR = 1, ADS_PROPERTY_UPDATE = 2, ADS_PROPERTY_APPEND = 3</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Const ForReading = 1, ForWriting = 2, ForAppending = 8</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">If WScript.Arguments.Count < 1 Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "Pleas supply the Action (BACKUP or MODIFY)"</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">ElseIf WScript.Arguments(0)="BACKUP" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Begin backup of user mailbox limits listed in MailboxLimits.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> CreateBackup</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Backup is saved to Backup.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">ElseIf WScript.Arguments(0)="MODIFY" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Begin modification of user mailbox limits listed in MailboxLimits.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> ModifyLimits("MailboxLimits.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Complete!")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">ElseIf WScript.Arguments(0)="RESTORE" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Begin restoration of user mailbox limits listed in Backup.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> ModifyLimits("Backup.txt")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo (Now & ": Complete!")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo "=================================================="</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'-----------------Backup Original Values---------------</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Sub CreateBackup()</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Create File System Object</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO = CreateObject("Scripting.FileSystemObject") </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO1 = CreateObject("Scripting.FileSystemObject") </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set BackUpName = objFSO1.CreateTextFile("Backup.txt",True)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set MbxName = objFSO.OpenTextFile("MailboxLimits.txt", ForReading)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Do Until MbxName.AtEndofStream</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Read the current line</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> nUser=MbxName.ReadLine</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> nuser=Replace(nUser,"/","\/")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Split the current line into an array with TAB as delimiter</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> userArray=Split(nUser, vbTAB) </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">On Error Resume Next</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Get the Object with DN name stored in UserArray(0)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Set objUser = GetObject ("LDAP://" & UserArray(0))</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If Err.Number=0 Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Check if user mailbox exists</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If objUser.homeMDB<>"" then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Get information about the Object (User) and start modifying values.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.GetInfo</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'This is just to display which user is being processed.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": Backup limits for - " & objUser.DisplayName</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Write to file</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> BackUpName.WriteLine(objUser.DistinguishedName & vbTab & objUser.mDBOverHardQuotaLimit & vbTab & objUser.mDBOverQuotaLimit & vbTab & objUser.mDBStorageQuota)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": Not an Exchange user - " & objUser.DisplayName</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Set uName = Split(userarray(0),",")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": NOT FOUND!!! - " & userArray(0) 'Replace(uName(0),"CN=","")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Err.Clear</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Loop</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">BackUpName.Close</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">MbxName.Close</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set BackUpName = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set MbxName = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set nUser = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set userArray = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO1 = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">End Sub</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'-----------------End Backup---------------------------</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'-----------------Start Modification-------------------</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Sub ModifyLimits(strInputFile)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO = CreateObject("Scripting.FileSystemObject") </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Open the Input file</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set MbxName = objFSO.OpenTextFile(strInputFile, ForReading)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Read the inout file from beginning to end</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Do Until MbxName.AtEndofStream </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Read the current line</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> nUser=MbxName.ReadLine</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> nuser=Replace(nUser,"/","\/")</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Split the current line into an array with TAB as delimiter</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> userArray=Split(nUser, vbTAB) </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">On Error Resume Next</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Get the Object with DN name stored in UserArray(0)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Set objUser = GetObject ("LDAP://" & UserArray(0))</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If Err.Number=0 Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If objUser.homeMDB<>"" then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Get information about the Object (User) and start modifying values.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.GetInfo</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'This is just to display which user is being processed.</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": Processing User - " & objUser.DisplayName</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Disable the "User Mailbox Store Defaults"</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.Put "mDBUseDefaults", "FALSE"</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If UserArray(3) = "" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.PutEx ADS_PROPERTY_CLEAR, "mDBStorageQuota", 0</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.Put "mDBStorageQuota", UserArray(3)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If userArray(2) = "" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.PutEx ADS_PROPERTY_CLEAR, "mDBOverQuotaLimit", 0</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.Put "mDBOverQuotaLimit", UserArray(2)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> If userArray(1) = "" Then</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.PutEx ADS_PROPERTY_CLEAR, "mDBOverHardQuotaLimit", 0</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.Put "mDBOverHardQuotaLimit", UserArray(1)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> 'Save</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> objUser.SetInfo </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": Not an Exchange user - " & objUser.DisplayName</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Else</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> WScript.Echo Now & ": Not found - " & UserArray(0)</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> Err.Clear</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"> End If </span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Loop</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Close the Input file</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">MbxName.Close</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'Clean up</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objUser = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set MbxName = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set nUser = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set UserArray = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">Set objFSO = Nothing</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">End Sub</span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;">'-----------------End Modification-------------------</span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-42224394284501904732012-11-09T18:00:00.001+08:002017-02-06T20:25:05.956+08:00How to Add New EMail Address and Set it as Default in Exchange 2003 using vbScriptWithout boring you with the whole story why I had to write this script, it is just because I don't want to open each user account in Active Directory and add new email addresses manually. <br />
I just can't stand that kind of a repetitive job. With this, I can modify a bulk of users from a list. <br />
The script is well commented so that it'd be easy to understand what each line will do. <br />
<br />
<pre style="background-color: #fbfbfb; border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; border-right: #cecece 1px solid; border-top: #cecece 1px solid; min-height: 40px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 600px;"><pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'==========================================================================</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' NAME: AddNewDefaultAddress.vbs</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' AUTHOR: Tito Castillote , june.castillote@gmail.com, shaking-off-the-cobwebs.blogspot.com</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' DATE : 11/9/2012</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' Usage instructions:</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' 1. You must create a text file (Userlist.txt) containing the list of user DN (distinguished names) and the new email address that you want to add and set as default.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' ex. CN=Administrator,CN=Users,DC=LabWorks,DC=local SMTP:Administrator@email.spam</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' - the DN and Email address must be seperated with a TAB. This script is designed for TAB-delimited Input file.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' 2. This script and the Input file must be in the same location and then run this from the Command Prompt.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' cscript //nologo AddNewDefaultAddress.vbs</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">' COMMENT: If you plan to modify a bulk of users, I'd suggest that you do it in batches and not all at once.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'========================================================================</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Declare Constants to avoid "Invalid Procedure Calls or Arguments" errors.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Const</span> ADS_PROPERTY_CLEAR = 1, ADS_PROPERTY_UPDATE = 2, ADS_PROPERTY_APPEND = 3</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Const</span> ForReading = 1, ForWriting = 2, ForAppending = 8</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Create File System Object</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> objFSO = CreateObject("<span style="color: darkred;">Scripting.FileSystemObject</span>") </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Open the Input file</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> MbxName = objFSO.OpenTextFile("<span style="color: darkred;">UserList.txt</span>", ForReading) </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Read the inout file from beginning to end</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Do</span> Until MbxName.AtEndofStream </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Read the current line</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">nUser=MbxName.ReadLine</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Split the current line into an array with TAB as delimiter</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">userArray=Split(nUser, vbTab) </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Get the Object with DN name stored in UserArray(0)</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> objUser = GetObject ("<span style="color: darkred;">LDAP://</span>" & UserArray(0))</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Get information about the Object (User) and start modifying values.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.GetInfo </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Assign the ProxyAddress (all email address of the current user) to variable strProxyAddress</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">strProxyAddress = objUser.GetEx("<span style="color: darkred;">ProxyAddresses</span>")</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Clear the ProxyAddress of the current user</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.PutEx ADS_PROPERTY_CLEAR, "<span style="color: darkred;">proxyaddresses</span>", 0</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Disable the "Automatically update the e-Mail addresses based on Policy"</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.PutEx ADS_PROPERTY_UPDATE, "<span style="color: darkred;">msExchPoliciesExcluded</span>", Array("<span style="color: darkred;">{26491CFC-9E50-4857-861B-0CB8DF22B5D7}</span>")</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Save</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.SetInfo</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'This is just to display which user is being processed.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">WScript.Echo "<span style="color: darkred;">Processing User: </span>" & objUser.DisplayName </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Loop through the list of email addresses stored in variable strProxyAddress and assign to variable strAddress</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">For</span> <span style="color: blue;">Each</span> strAddress <span style="color: blue;">In</span> strProxyAddress </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">If</span> strAddress<>UserArray(1) <span style="color: blue;">Then</span> <span style="color: green;">' <--- This is a test to make sure that you are not adding an already existing email address.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Append the current email address stored in variable strAddress and make sure that it is not set as Default. = Array(replace(strAddress,UCase("SMTP:"),LCase("smtp:"))</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.PutEx ADS_PROPERTY_APPEND, "<span style="color: darkred;">proxyaddresses</span>", Array(replace(strAddress,UCase("<span style="color: darkred;">SMTP:</span>"),LCase("<span style="color: darkred;">smtp:</span>")))</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Save</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.SetInfo </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">End</span> <span style="color: blue;">If</span> </pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Next</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Append the new email address from the Input File stored in UserArray(1) variable.</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.PutEx ADS_PROPERTY_APPEND, "<span style="color: darkred;">proxyaddresses</span>", Array(UserArray(1))</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Save</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">objUser.SetInfo</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Loop</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Close the Input file</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;">MbxName.Close</pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: green;">'Clean up</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> objUser = <span style="color: blue;">Nothing</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> strProxyAddress = <span style="color: blue;">Nothing</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> MbxName = <span style="color: blue;">Nothing</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> nUser = <span style="color: blue;">Nothing</span></pre>
<pre style="background-color: #fbfbfb; font-family: "consolas" , "courier new" , "courier" , monospace; font-size: 12px; margin: 0em; width: 100%;"><span style="color: blue;">Set</span> UserArray = <span style="color: blue;">Nothing</span></pre>
</pre>
<br />
<style type="text/css">.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style> <br />
<br />June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0tag:blogger.com,1999:blog-2301084935877276793.post-51376644523719653242012-10-02T22:05:00.000+08:002017-02-06T20:22:18.472+08:00Export List of User Mailbox with Size information in Lotus Domino<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: small;">One would think that there is a function in Domino Admin client to export a list of database with their corresponding size information. Well, as simple as the concept might be, there is no built in tool to do just that. If the mailbox quota/size statistics is crucial for your organization for capacity planning or just for record purposes, you can always leverage the LotusScript to export these information.</span></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: small;">Note that in this example, it is expected that you are already familiar with using Lotus Notes Designer and LotusScript.</span></span></span></span><br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: small;"><u><b><span style="font-size: small;"><span style="font-family: "verdana" , sans-serif;">Create the Appplication</span></span></b></u> </span></span></span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">1. Create a bla<span style="font-size: small;">nk application and place it in your<span style="font-size: small;"> "data</span></span>" folder.</span></span></span></span></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">2. Create a <span style="font-size: small;">Form and add a Button.</span></span></span></span></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "trebuchet ms" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpOiB8NitqYvBXuJcIISay0dOWH89Gj-WMZYoBxOb0Nl7pPsLpNLSbG3ijsl7YNAR4vLh3kgQkwKk4E-RN0nPS-Iao9LNWfxa-6cMuIqu2ro6U3y7ptMhjsCAVHFLpo-PQHeqieSpcbfwW/s1600/Dom01-01.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpOiB8NitqYvBXuJcIISay0dOWH89Gj-WMZYoBxOb0Nl7pPsLpNLSbG3ijsl7YNAR4vLh3kgQkwKk4E-RN0nPS-Iao9LNWfxa-6cMuIqu2ro6U3y7ptMhjsCAVHFLpo-PQHeqieSpcbfwW/s1600/Dom01-01.gif" /></a></span></div>
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: "trebuchet ms" , sans-serif;"></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUeuVs_rtvclKVU4c3pSUaFnVc-synLAsE2XpyFjTup3FJcauw016CMA-m3Qqx4ElD-QWjD8ATIXbJj8ZojBMLBZq4D-idn-Sikuc4Di6PehPGtd3ZR9ENAJDQdslqgrIOY-sMkEEoDuE/s1600/Dom01-02.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUeuVs_rtvclKVU4c3pSUaFnVc-synLAsE2XpyFjTup3FJcauw016CMA-m3Qqx4ElD-QWjD8ATIXbJj8ZojBMLBZq4D-idn-Sikuc4Di6PehPGtd3ZR9ENAJDQdslqgrIOY-sMkEEoDuE/s400/Dom01-02.gif" width="400" /></a></div>
<br />
<br />
<br />
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;">3. Add your code to the Button's click event.</span></span></span></span></span></span><br />
<br />
<span style="font-size: x-small;"><span style="font-family: "trebuchet ms" , sans-serif;">================================ </span></span><br />
<span style="font-size: x-small;"><span style="font-family: "trebuchet ms" , sans-serif;"> Sub Click(Source As Button)<br /> On Error Resume Next<br /> <br /> Dim oQuota As Integer<br /> Dim oWarning As Integer<br /> Dim oTotal As Integer<br /> Dim oTotalSize As Double<br /> <br /> Dim db As NotesDatabase<br /> Dim f As Integer<br /> f = Freefile<br /> Open "c:\DBlist.txt" For Output As #f<br /> <br /> Dim dbdir As New NotesDbDirectory("RSBDOM01/RSBPH")<br /> Set db = dbdir.GetFirstDatabase(DATABASE)<br /> Print #f, "Title" & Chr$(9) & "FileName" & Chr$(9) & "Size" & Chr$(9) & "Quota" & Chr$(9) & "Warning"<br /> While Not(db Is Nothing)<br /> If Instr(1,db.FilePath,"mail\",5)>0 Then<br /> Print "Getting Info: " & db.Title<br /> Print #f, db.Title & Chr$(9) & db.FileName & Chr$(9) & db.Size & Chr$(9) & db.SizeQuota & Chr$(9) & db.SizeWarning<br /> <br /> oTotal=oTotal+1<br /> oTotalSize=oTotalSize+db.size<br /> <br /> If db.size/1024 > db.SizeQuota Then<br /> oQuota=oQuota+1 <br /> Elseif db.Size/1024 > db.SizeWarning Then<br /> oWarning=oWarning+1 <br /> End If <br /> End If <br /> Set db = dbdir.GetNextDatabase <br /> Wend<br /> Print "Export Complete"<br /> Messagebox("Overquota: " & oQuota & Chr$(13) & Chr$(10) & "Warning: " & oWarning & Chr$(13) & Chr$(10) & "Normal: " & oTotal-oQuota-oWarning & Chr$(13) & Chr$(10) & "Total Mail Files: " & oTotal & Chr$(13) & Chr$(10) & "Total Size: " & Format(oTotalSize/1024,"Standard") & " KB")<br /> Close #f<br />End Sub</span></span><br />
<br />
<span style="font-size: x-small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-family: "trebuchet ms" , sans-serif;">================================</span></span> </span></span></span></span></span></span></span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">4. Create a Frameset and add the Form to one of the Frames.</span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">5. Set the Frameset to show once the Database is opened.</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBMrnPL9DdgTS-_mjowFMgc8iv85_han_C9JMecFB9fgPohy-HSMvpB6S-Qr0Q4LvIAQHzZB6zyu5oC0a3KUlIIPVcwjtnVXtoNjWBMmPRzb7knRj8MMbimYbJHLK5zRf_ZTXqMxDpdd9/s1600/Dom01-03.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBMrnPL9DdgTS-_mjowFMgc8iv85_han_C9JMecFB9fgPohy-HSMvpB6S-Qr0Q4LvIAQHzZB6zyu5oC0a3KUlIIPVcwjtnVXtoNjWBMmPRzb7knRj8MMbimYbJHLK5zRf_ZTXqMxDpdd9/s1600/Dom01-03.gif" /></a></span></span></div>
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">6. Save the Application and name it whatever you want.</span></span><br />
<br />
<u><span style="font-size: x-small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: small;"><span style="font-family: "verdana" , sans-serif;"><b><span style="font-family: "trebuchet ms" , sans-serif;">Outp<span style="font-size: small;">ut</span></span></b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></u><br />
<br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">It shows the summary in a Message Box:</span></span><br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"> <b> </b></span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwaMzApMBh_7wirxnZmJlCuBvmQ108mdlaulrgGmEWQpIat_0OiH6zDszE0lgURuTkhFVFNnog4I8JnQF5m11lyV7Bu87024sXsMZ4XXEh0G9tEfPaUzKMR4Vg97Oy-JyL60Dn9DgbLumy/s1600/Dom01-04.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwaMzApMBh_7wirxnZmJlCuBvmQ108mdlaulrgGmEWQpIat_0OiH6zDszE0lgURuTkhFVFNnog4I8JnQF5m11lyV7Bu87024sXsMZ4XXEh0G9tEfPaUzKMR4Vg97Oy-JyL60Dn9DgbLumy/s1600/Dom01-04.gif" /></a></span></span></div>
<br />
<span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">And it saves a text file of the raw data in tabular form which you can use for data manipulation in Excel </span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicTYBLDjEGKbQ4htmayIB1ML06SiKqShVd8QLOLsqVd3YsrUsCERYYEKNoqZdd0zeXLw62OxlwXm7p0z47D3yE9Ag_DmWP20Wq7gqFkYqaKOKgX70Xj2EBqEEdJB7hnX63mrSJCVvhOlWq/s1600/Dom01-05.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicTYBLDjEGKbQ4htmayIB1ML06SiKqShVd8QLOLsqVd3YsrUsCERYYEKNoqZdd0zeXLw62OxlwXm7p0z47D3yE9Ag_DmWP20Wq7gqFkYqaKOKgX70Xj2EBqEEdJB7hnX63mrSJCVvhOlWq/s1600/Dom01-05.gif" /></a></div>
<span style="font-size: x-small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;"><br /></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span style="font-size: x-small;"><span style="font-family: "verdana" , sans-serif;"><span style="font-size: small;"><span style="font-family: "trebuchet ms" , sans-serif;">Just a simple demonstration of reading database properties using LotusScript </span></span></span></span>June Castillotehttp://www.blogger.com/profile/14526992957494697873noreply@blogger.com0