<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.johnjheisler.net/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.johnjheisler.net/" rel="alternate" type="text/html" /><updated>2026-10-01T17:25:50+00:00</updated><id>https://www.johnjheisler.net/feed.xml</id><title type="html">PowerShell Blog</title><subtitle>PowerShell scripts, Microsoft 365 administration, and IT systems administration notes by John Heisler.</subtitle><author><name>John Heisler</name></author><entry><title type="html">Setting Active Directory User Expiration</title><link href="https://www.johnjheisler.net/2026/10/activedir-expiration.html" rel="alternate" type="text/html" title="Setting Active Directory User Expiration" /><published>2026-10-01T00:00:00+00:00</published><updated>2026-10-01T00:00:00+00:00</updated><id>https://www.johnjheisler.net/2026/10/activedir-expiration</id><content type="html" xml:base="https://www.johnjheisler.net/2026/10/activedir-expiration.html"><![CDATA[<h2 id="overview">Overview</h2>
<p>Sets an Active Directory user account expiration date.</p>

<p><code class="language-plaintext highlighter-rouge">Set-UserExpiration</code> sets the expiration date for one or more Active Directory user accounts. If no date is specified, the account is configured to expire in 90 days. If a date greater than 90 days in the future is provided, the date is automatically capped at 90 days.</p>

<p>Supports pipeline input and <code class="language-plaintext highlighter-rouge">-WhatIf</code>.</p>

<h2 id="parameters">Parameters</h2>

<h3 id="identities">Identities</h3>
<p>The user account(s) to modify.</p>

<h3 id="date">Date</h3>
<p>Optional expiration date.</p>

<ul>
  <li>Defaults to 90 days from today.</li>
  <li>Dates greater than 90 days in the future are capped at 90 days.</li>
</ul>

<h3 id="server">Server</h3>
<p>Optional domain controller to query and update.</p>

<h2 id="examples">Examples</h2>

<h3 id="expire-an-account-in-90-days">Expire an account in 90 days</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Set-UserExpiration</span><span class="w"> </span><span class="nt">-Identities</span><span class="w"> </span><span class="nx">JHeisler</span><span class="w">
</span></code></pre></div></div>

<h3 id="set-a-specific-expiration-date">Set a specific expiration date</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Set-UserExpiration</span><span class="w"> </span><span class="nt">-Identities</span><span class="w"> </span><span class="nx">JHeisler</span><span class="w"> </span><span class="nt">-Date</span><span class="w"> </span><span class="s2">"12/15/2026"</span><span class="w">
</span></code></pre></div></div>

<h3 id="process-multiple-users">Process multiple users</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Set-UserExpiration</span><span class="w"> </span><span class="nt">-Identities</span><span class="w"> </span><span class="nx">JHeisler</span><span class="p">,</span><span class="nx">JSmith</span><span class="p">,</span><span class="nx">JDoe</span><span class="w">
</span></code></pre></div></div>

<h3 id="pipeline-input">Pipeline input</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s1">'JHeisler'</span><span class="p">,</span><span class="s1">'JSmith'</span><span class="p">,</span><span class="s1">'JDoe'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Set-UserExpiration</span><span class="w">
</span></code></pre></div></div>

<h3 id="preview-changes">Preview changes</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Set-UserExpiration</span><span class="w"> </span><span class="nt">-Identities</span><span class="w"> </span><span class="nx">JHeisler</span><span class="w"> </span><span class="nt">-Date</span><span class="w"> </span><span class="s2">"12/15/2026"</span><span class="w"> </span><span class="nt">-WhatIf</span><span class="w">
</span></code></pre></div></div>

<h2 id="output">Output</h2>

<p>Returns a custom object containing:</p>

<ul>
  <li>SamAccountName</li>
  <li>Name</li>
  <li>ExpirationDate</li>
  <li>Success</li>
</ul>

<h2 id="notes">Notes</h2>

<ul>
  <li>Requires the Active Directory PowerShell module.</li>
  <li>Supports <code class="language-plaintext highlighter-rouge">-WhatIf</code> and <code class="language-plaintext highlighter-rouge">-Confirm</code>.</li>
  <li>Designed for use in automation workflows and bulk account management tasks.</li>
</ul>]]></content><author><name>John Heisler</name></author><category term="powershell" /><category term="activedirectory" /><category term="function" /><category term="github" /><summary type="html"><![CDATA[Sets an Active Directory user account expiration date.]]></summary></entry><entry><title type="html">Microsoft Exchange: Mailboxes forwarding to Specified email.</title><link href="https://www.johnjheisler.net/2026/10/mailbox-forwarding.html" rel="alternate" type="text/html" title="Microsoft Exchange: Mailboxes forwarding to Specified email." /><published>2026-10-01T00:00:00+00:00</published><updated>2026-10-01T00:00:00+00:00</updated><id>https://www.johnjheisler.net/2026/10/mailbox-forwarding</id><content type="html" xml:base="https://www.johnjheisler.net/2026/10/mailbox-forwarding.html"><![CDATA[<h2 id="overview">Overview</h2>
<p>Use this when you need to a list of all mailboxes forwarding to a specified mailbox.</p>

<p>Simple, yet effective.</p>

<h2 id="the-snippet">The Snippet</h2>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">RecipientCN</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">Get-Recipient</span><span class="w"> </span><span class="nx">johndoe</span><span class="p">)</span><span class="o">.</span><span class="nf">Identity</span><span class="w">
</span><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="p">:</span><span class="nx">Unlimited</span><span class="w"> </span><span class="nt">-Filter</span><span class="p">:{</span><span class="n">ForwardingAddress</span><span class="w"> </span><span class="o">-ne</span><span class="w"> </span><span class="bp">$null</span><span class="p">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Where-Object</span><span class="w"> </span><span class="p">{</span><span class="bp">$_</span><span class="o">.</span><span class="nf">ForwardingAddress</span><span class="w"> </span><span class="o">-eq</span><span class="w"> </span><span class="nv">$RecipientCN</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<h3 id="export-results-to-a-csv">Export results to a CSV</h3>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">RecipientCN</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">Get-Recipient</span><span class="w"> </span><span class="nx">johndoe</span><span class="p">)</span><span class="o">.</span><span class="nf">Identity</span><span class="w">
</span><span class="n">Get-Mailbox</span><span class="w"> </span><span class="nt">-ResultSize</span><span class="p">:</span><span class="nx">Unlimited</span><span class="w"> </span><span class="nt">-Filter</span><span class="p">:{</span><span class="n">ForwardingAddress</span><span class="w"> </span><span class="o">-ne</span><span class="w"> </span><span class="bp">$null</span><span class="p">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Where-Object</span><span class="w"> </span><span class="p">{</span><span class="bp">$_</span><span class="o">.</span><span class="nf">ForwardingAddress</span><span class="w"> </span><span class="o">-eq</span><span class="w"> </span><span class="nv">$RecipientCN</span><span class="p">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Export-Csv</span><span class="w"> </span><span class="nt">-Path</span><span class="p">:</span><span class="s2">"C:\temp\mailboxForwards.csv"</span><span class="w"> </span><span class="nt">-NoTypeInformation</span><span class="w">
</span></code></pre></div></div>

<p>Credit to <a href="https://stackoverflow.com/users/1733386/grant">Grant on StackOverflow</a> for this.
Huge thanks to Grant &amp; mjolinor for answering <a href="https://stackoverflow.com/questions/21915808/list-all-mailboxes-that-forward-to-a-specific-user">pr0digy’s question over on Stack Overflow</a>.</p>]]></content><author><name>John Heisler</name></author><category term="powershell" /><category term="exchange" /><category term="snippet" /><summary type="html"><![CDATA[Use this when you need to a list of all mailboxes forwarding to a specified mailbox.]]></summary></entry></feed>