<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>chrisbmn.com — Blog</title>
    <link>https://chrisbmn.com/blog/</link>
    <description>The Technical Tomfoolery of Champions!</description>
    <language>en-us</language>
    <lastBuildDate>Mon, 24 Aug 2026 02:53:03 -0500</lastBuildDate>
    <generator>chrisbmn custom blog</generator>
    <atom:link href="https://chrisbmn.com/blog/feed/" rel="self" type="application/rss+xml"/>

        <item>
      <title>WorkStation Builder — One Command, Full Install</title>
      <link>https://chrisbmn.com/blog/workstation-builder/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/workstation-builder/</guid>
      <pubDate>Tue, 16 Jun 2026 16:02:55 -0500</pubDate>
      <description><![CDATA[Every time I set up a new machine, I go through the same ritual. Open a browser. Download Git. Open another tab. Download VS Code. Realize I forgot PowerShell 7. Find that. Remember winget isn't registered yet. Tab. Tab. Tab. It's not hard — it's just tedious. And repeatable tedium is exactly what scripting is for.]]></description>
      <content:encoded><![CDATA[<p>Every time I set up a new machine, I go through the same ritual. Open a browser. Download Git. Open another browser tab. Download VS Code. Realize I forgot to grab PowerShell 7. Go find that. Remember I need winget registered first. Tab. Tab. Tab.</p>
<p>It's not hard. It's just <em>boring</em>. And repeatable tedium is exactly what scripting is for.</p>
<p>So I built <strong>WorkStation Builder</strong> which is a PowerShell tool that takes a fresh Windows install from "nothing" to "fully loaded" with one command and a GUI. I've been using it for my own machines for a while, cleaned it up, and it now lives at <a href="https://wsb.chrisbmn.com">wsb.chrisbmn.com</a>.</p>
<h2>What it actually does</h2>
<p>Drop this into an elevated PowerShell window:</p>
<pre><code>irm "https://cbmn.link/wsb" | iex</code></pre>
<p>That command pulls the script, bootstraps Chocolatey and winget (if they're not already there), installs a baseline for your machine, patches, reboots, then picks up where it left off and then opens a <strong>WPF GUI</strong> where you pick what you want to install. Nothing is pre-selected - you're in control of every checkbox. When you're done, it installs everything in order, routing each tool to the right package manager automatically.</p>
<p>If you already have a machine set up and just want to add a few tools, there's a shortcut for that too:</p>
<pre><code>irm "https://cbmn.link/launchgui" | iex</code></pre>
<p>That skips the bootstrap step and goes straight to the menu. Useful when a colleague asks you to "just grab a few things" and you don't want to run the whole setup process on their already-configured machine.</p>
<h2>The catalog</h2>
<p>Right now WSB has <strong>98 tools across 13 categories</strong>. Here's the breakdown:</p>
<ul>
<li><strong>Shell &amp; Terminal:</strong>&nbsp;Windows Terminal, PowerShell 7, Oh My Posh, Scoop</li>
<li><strong>Browsers:</strong>&nbsp;Arc, Brave, Chrome, Firefox, Firefox Developer Edition, LibreWolf, Vivaldi</li>
<li><strong>Dev Tools:</strong>&nbsp;VS Code, Git, GitHub Desktop, WinMerge, Node, Python, Terraform, kubectl, Helm, lazygit, jq, yq, Zed, bat, ripgrep, and a handful of other CLI utilities I reached for constantly</li>
<li><strong>Productivity:</strong>&nbsp;1Password, Notepad++, 7-Zip, PowerToys, Snipaste, Kleopatra, Thunderbird, and a few others</li>
<li><strong>Media &amp; Graphics:</strong>&nbsp;VLC, Paint.NET, GIMP, Inkscape, K-Lite Codec Pack</li>
<li><strong>File Management:</strong>&nbsp;WinSCP, FileZilla, WizTree</li>
<li><strong>Admin &amp; Security Tools:</strong>&nbsp;SysInternals, IIS Crypto, OpenSSL, LockHunter, Rufus, LGPO, Windows Admin Center</li>
<li><strong>Network Tools:</strong>&nbsp;MobaXterm, PuTTY, Nmap, Wireshark, PortQryUI</li>
<li><strong>Azure &amp; Cloud Tools:</strong>&nbsp;Azure CLI, Azure Storage Explorer, Azure Data Studio</li>
<li><strong>Virtualization &amp; Remote:</strong>&nbsp;RVTools</li>
<li><strong>AI Tools:</strong>&nbsp;ChatGPT, Claude</li>
<li><strong>PowerShell Modules:</strong>&nbsp;Az, Microsoft.Graph, Exchange Online Management, Posh-SSH, PSWindowsUpdate</li>
<li><strong>Windows Features:</strong>&nbsp;22 individual RSAT tools (Active Directory, DNS, DHCP, Group Policy, Failover Clustering, WSUS, and more), plus a bulk "Install All RSAT" option if you just want everything</li>
</ul>
<p>The full catalog with descriptions is on the <a href="https://wsb.chrisbmn.com">WSB page</a> - each tool shows which package manager installs it and any relevant notes.</p>
<h2>Package managers are handled for you</h2>
<p>One of the things that used to drive me insane about manual setup was jumping between package managers. Some tools are on winget, some are better from Chocolatey, CLI utilities belong in Scoop, PowerShell modules come from PSGallery, and RSAT tools are Windows Features. WSB handles all of that behind the scenes. You pick the tool, it figures out how to get it.</p>
<ul>
<li><strong>winget:</strong>&nbsp;Microsoft's official package manager. Does the heavy lifting for most apps.</li>
<li><strong>Chocolatey:</strong>&nbsp;Bootstrapped automatically. Used when winget doesn't have a package or Chocolatey has a more reliable version.</li>
<li><strong>Scoop:</strong> Opt-in from the GUI. No admin required, no registry clutter. It's perfect for CLI tools like jq and yq.</li>
<li><strong>PSGallery:</strong>&nbsp;PowerShell modules straight from Microsoft's official gallery.</li>
<li><strong>Windows Features:</strong>&nbsp;DISM/Add-WindowsCapability for the RSAT tools. No third-party involved.</li>
</ul>
<h2>Still a work in progress</h2>
<p>WSB does what it says on the tin right now - install. That's it. No uninstall, no upgrade, no "what's out of date." Those are on the list.&nbsp;</p>
<p>The two things I want to add next are <strong>removal</strong> (pick tools to uninstall, same GUI experience) and <strong>upgrades</strong> (run WSB against an existing machine, see what's out of date, update what you want). The plumbing for both is pretty straightforward - the hard part is making the UI not terrible for those flows, which is its own project.</p>
<p>So if you run it today and think "wait, where's the uninstall button" - that's intentional, not an oversight. It's just not there yet. <em>(It's also not something I'm going to rush and ship half-finished. I've learned that lesson enough times.)</em></p>
<h2>It's open source</h2>
<p>The whole thing is on GitHub at <a href="https://github.com/chrisbmin/wsb-base" target="_blank" rel="noopener noreferrer">chrisbmin/wsb-base</a>. The tool catalog lives in <code>config/tools.ps1</code> &mdash; adding or removing a tool is literally one line. If your toolkit looks different than mine (and it probably does), fork it and make it yours. That was kind of the point.</p>
<p>I built this to solve my own problem, but it's been useful enough that I figured it was worth sharing. If a fresh install is in your future &mdash; new machine, rebuild after a bad update, whatever the occasion &mdash; give it a shot.</p>
<p>Elevated PowerShell. One command. Come out the other side with a real workstation.</p>]]></content:encoded>
            <category>Tools</category>
          </item>
        <item>
      <title>Want to play a game?</title>
      <link>https://chrisbmn.com/blog/want-to-play-a-game/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/want-to-play-a-game/</guid>
      <pubDate>Wed, 27 May 2026 10:08:30 -0500</pubDate>
      <description><![CDATA[The site behaves a little differently when you're not paying attention. Here's an admission.]]></description>
      <content:encoded><![CDATA[<p>If you've had this site open in a background tab recently - and then switched back to it - you may have noticed the tab title wasn't quite what you left it.</p>
<p>That's intentional. The site changes what it says when it thinks you're not looking. Switch away, switch back. It has a few things it might say. None of them are alarming. A couple of them are a little nerdy.</p>
<p>I've been rebuilding this site from the ground up over the past several months. Somewhere along the way it stopped being just a website and started being a bit of a addiction. When you're writing all the code yourself or with Claude's help, and with no ticket queue and no product manager, it's hard not to have a little fun.</p>
<p>The tab title thing is the one you're most likely to find by accident. There are others. Some are easy to easy to find, others are not.&nbsp; Some require knowing a very specific sequence of inputs that had its cultural peak sometime around 1986. One only shows up on a particular day each May, though I might have left a back door in case you don't want to wait.</p>
<p>A couple of them live on pages that aren't in the navigation and aren't linked from anywhere. They're just there, if you know where to point your browser. One of them is very aware that you weren't supposed to find it. The other one knows exactly what stardate it is.</p>
<p>I'm not going to spell them all out. That's the whole point. But if you're the kind of person who reads source code, checks <code>robots.txt</code> out of habit, or just types random paths into address bars to see what happens - you'll find them. The 404 page might have opinions and may or may not offer a nudge if you wander in the right direction.</p>
<p>Personal sites are one of the last places on the web where this kind of thing still makes sense. No security scans or page test is going to flag it.&nbsp; It's just something that's there for the people who look.</p>
<p>May the syntax be with you.</p>]]></content:encoded>
            <category>Personal</category>
          </item>
        <item>
      <title>A test post showing markup in my posts using Prism.css</title>
      <link>https://chrisbmn.com/blog/a-test-post-showing-markup-in-my-posts-using-prismcss/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/a-test-post-showing-markup-in-my-posts-using-prismcss/</guid>
      <pubDate>Tue, 05 May 2026 14:31:12 -0500</pubDate>
      <description><![CDATA[Some tests of the prism js and css implementation here on the new blog to check formatting.]]></description>
      <content:encoded><![CDATA[<p><strong>Bash</strong></p>
<pre class="language-bash"><code>/usr/local/bin&gt; cd /i/am/a/banana
/i/am/a/banana&gt; cd -
/usr/local/bin&gt;</code></pre>
<p><strong>Powershell</strong></p>
<pre class="language-powershell"><code>if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    $scriptPath = $myinvocation.mycommand.path
    Start-Process pwsh -Verb runAs -ArgumentList "-File $scriptPath"
    exit
}</code></pre>
<p><strong>PHP&nbsp;</strong></p>
<pre class="language-php"><code>&lt;?php
    $images = require 'images_array.php';
    echo $images[array_rand($images)];
?&gt;</code></pre>
<p><strong>TypeScript</strong></p>
<pre class="language-typescript"><code>export const shuffle = &lt;T&gt;(arr: T[]): T[] =&gt;
  arr
    .map((a) =&gt; ({ sort: Math.random(), value: a }))
    .sort((a, b) =&gt; a.sort - b.sort)
    .map((a) =&gt; a.value);</code></pre>
<p><strong>Python</strong></p>
<pre class="language-python"><code>found = False
for x in sequence:
    if pred(x.n):
        found = True
if found:</code></pre>
<p><strong>SQL</strong></p>
<pre class="language-sql"><code>SELECT @randomString = CONVERT(varchar(255), NEWID())
   </code></pre>
<p><strong>YAML</strong></p>
<pre class="language-yaml"><code>person:
  name: "Alice"
  age: 30
  hobbies:
    - "reading"
    - "coding"
  address:
    city: "Tech City"
    zip: "12345"</code></pre>
<p><strong>HTML</strong></p>
<pre class="language-markup"><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;body&gt;

&lt;h2&gt;Random Number Generator&lt;/h2&gt;
&lt;p&gt;Click the button to generate a random number between 0 and 9.&lt;/p&gt;

&lt;button onclick="generateRandom()"&gt;Generate Random Number&lt;/button&gt;
&lt;p id="demo"&gt;&lt;/p&gt;

&lt;script&gt;
function generateRandom() {
    document.getElementById("demo").innerHTML = Math.floor(Math.random() * 10);
}
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p><strong>CSS</strong></p>
<pre class="language-css"><code>:root {
  --primary-color: #007bff;
  --font-size: 16px;
}

.button {
  background-color: var(--primary-color);
  font-size: var(--font-size);
}</code></pre>
<p><strong>Plain Text</strong></p>
<pre class="language-none"><code>A common example of a small, plain text code snippet for generating dummy text is using the RAND function in Microsoft Word. This feature allows users to quickly generate random paragraphs of filler text (like Lorem Ipsum) for layout testing or formatting practice without needing to type manually.</code></pre>]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>I Built a Web Tools Site (And It Got a Little Out of Hand)</title>
      <link>https://chrisbmn.com/blog/i-built-a-web-tools-site-and-it-got-a-little-out-of-hand/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/i-built-a-web-tools-site-and-it-got-a-little-out-of-hand/</guid>
      <pubDate>Wed, 29 Apr 2026 12:43:00 -0500</pubDate>
      <description><![CDATA[What started as a couple of quick IT utilities quietly turned into 30+ tools. Here's what's on tools.chrisbmn.com and why I built it.]]></description>
      <content:encoded><![CDATA[<p>I have a bad habit of building tools instead of just Googling things.</p>
<p>It usually starts the same way &mdash; I need to check a DNS record, IP Address or a subnet, or verify that a redirect chain is actually doing what I think it's doing. I end up bouncing between five different sketchy websites, half of which are covered in ads and the other half of which I don't fully trust with whatever I just pasted in. So I build my own. And then I build another one. And then suddenly it's a whole site.</p>
<p>That's basically how <a href="https://webtools.chrisbmn.com">webtools.chrisbmn.com</a> happened.</p>
<h2>What's on it</h2>
<p>Right now there are 30+ tools spread across six categories:</p>
<ul>
<li><strong>Network</strong> &mdash; IP lookup, DNS lookup, reverse DNS, port checker, HTTP headers, redirect chain tracer, subnet calculator, ASN lookup, CDN cache tester, and a "what's my IP" page for when you just need to know fast.</li>
<li><strong>Domain</strong> &mdash; WHOIS, SSL certificate checker, email deliverability (MX, SPF, DKIM, DMARC), and a full DMARC report analyzer that parses the XML aggregate reports your mail provider sends you.</li>
<li><strong>Security</strong> &mdash; Password generator, hash generator (MD5 through SHA-512), JWT decoder, and an SMTP TLS report analyzer for parsing those RFC 8460 JSON reports.</li>
<li><strong>Developer</strong> &mdash; Base64, JSON formatter/validator, URL encode/decode, regex tester, UUID generator, text diff, and a Paste tool for sharing snippets.</li>
<li><strong>Utilities</strong> &mdash; Unix timestamp converter, CIDR/IP range builder, cron expression builder, and a website screenshot tool.</li>
<li><strong>Reference</strong> &mdash; User agent parser and a full HTTP status code reference.</li>
</ul>
<h2>A few I actually use regularly</h2>
<p>The <strong>password generator</strong> gets more use than I expected &mdash; turns out having a solid one a tab away beats fumbling for a separate app every time. The <strong>WHOIS lookup</strong> is another one I keep coming back to more than I thought I would, usually when I'm poking at an unfamiliar domain and want the registration details without leaving the browser. And the <strong>DMARC report analyzer</strong> came out of personal frustration &mdash; those aggregate XML files are not fun to read raw.</p>
<p>The most recent addition is an <strong>SMTP TLS Report analyzer</strong> for the RFC 8460 JSON reports that providers like Google send when you've got MTA-STS set up. Paste the JSON in, get a clean breakdown of session success/failure counts, failure types with plain-English explanations, and actionable recommendations. Because nobody wants to manually parse that.</p>
<h2>Why not just use existing tools</h2>
<p>Honestly? A mix of reasons. Some tools I use frequently enough that I want them fast and without ads. Some I wanted to work a specific way. Some I built because I wanted to understand the underlying protocol better &mdash; there's no faster way to learn how DMARC reports are structured than to write a parser for them. And some I just built for fun.</p>
<p>Everything runs server-side in PHP. No tracking, no third-party analytics on the tool pages, nothing getting logged. What you paste in stays between you and the server.</p>
<h2>It's still growing</h2>
<p>I add tools when something annoys me enough. If there's something missing that you'd find useful, let me know in the comments &mdash; no promises, but I'm always looking for an excuse to build something.</p>
<p><a href="https://webtools.chrisbmn.com">&rarr; webtools.chrisbmn.com</a></p>]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>It&#039;s Alive! chrisbmn.com Gets a Proper Refresh</title>
      <link>https://chrisbmn.com/blog/its-alive-chrisbmncom-gets-a-proper-refresh/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/its-alive-chrisbmncom-gets-a-proper-refresh/</guid>
      <pubDate>Thu, 23 Apr 2026 16:19:00 -0500</pubDate>
      <description><![CDATA[Okay, so let's be honest - the old site had been running on "I'll fix that eventually" energy for longer than I care to admit. If you visited before and thought&nbsp;"hm, this feel…]]></description>
      <content:encoded><![CDATA[<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Okay, so let's be honest - the old site had been running on "I'll fix that eventually" energy for longer than I care to admit. If you visited before and thought&nbsp;<em>"hm, this feels a little&hellip; dusty,"</em> you weren't wrong. But that's all behind us now, because I finally did the thing.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]"><strong>The site got a full refresh. And I'm genuinely pretty happy with it.</strong></p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The visual overhaul was the obvious starting point. Everything got cleaned up, tightened up, and given a look that actually feels like <em>me</em> &mdash; not just whatever the default theme happened to be. Colors, layout, the whole deal. It's sharper, it's more intentional, and it loads without making you question your internet connection.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Speaking of loading &mdash; the old WordPress setup had gotten <em>rough</em>. Like, "go make a sandwich while the page thinks about it" rough. That's gone. The new site is fast. Genuinely, actually fast. I don't even have caching fully enabled yet, and it's that fast!&nbsp; Turns out when you're not dragging along seventeen plugins and a theme built in 2014, things tend to move a little quicker.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">But the speed wasn't even the most exciting part.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">The bigger news is the <strong>blog</strong> &mdash; which, yes, you are currently reading, so clearly that part is working. Writing has always been something I've wanted to do more of, and now I kinda feel a little more inspired to do it. I mean, not a lot, but its more then it was..&nbsp; Tech stuff, gaming, random thoughts, life in Minnesota &mdash; if it's on my mind, it'll probably end up here at some point.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Oh, and <strong>dark mode</strong>. Obviously. Because it's the right thing to do and I will not be taking questions. Light mode is there too, for those of you who apparently enjoy staring into the sun. No judgment. Much judgment. Ya bunch of maniacs!</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">There are also some <strong>new features</strong> baked in that I think people will actually find useful. Nothing I need to over-explain right now &mdash; half the fun is poking around and finding them yourself. Let's just say the site does a little more than it used to.&nbsp; I mean a little, like maybe one or two tops.. I swear.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">Is it perfect? Not yet. It probably never will be &mdash; that's kind of the nature of a personal site. But it's <em>alive</em>, it's functional, and it's a place I'm actually excited to send people to now.</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">So, if you're new - welcome. If you're revisiting, welcome back!&nbsp; Poke around. And if you've got thoughts, the feedback is always welcome.&nbsp;</p>
<p class="font-claude-response-body break-words whitespace-normal leading-[1.7]">&mdash; Chris</p>]]></content:encoded>
            <category>Personal</category>
          </item>
        <item>
      <title>How to install the Microsoft Graph PowerShell module</title>
      <link>https://chrisbmn.com/blog/how-to-install-the-microsoft-graph-powershell-module/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/how-to-install-the-microsoft-graph-powershell-module/</guid>
      <pubDate>Tue, 01 Jul 2025 10:01:00 -0500</pubDate>
      <description><![CDATA[he Microsoft Graph PowerShell module is the preferred method for managing your Microsoft cloud services, such as Intune and Entra, through the command line.&nbsp;It has replaced th…]]></description>
      <content:encoded><![CDATA[<p>he Microsoft Graph PowerShell module is the preferred method for managing your Microsoft cloud services, such as Intune and Entra, through the command line.&nbsp;It has replaced the now legacy MSOnline powershell module which has been <a href="https://techcommunity.microsoft.com/blog/microsoft-entra-blog/action-required-msonline-and-azuread-powershell-retirement---2025-info-and-resou/4364991" data-type="link" data-id="https://techcommunity.microsoft.com/blog/microsoft-entra-blog/action-required-msonline-and-azuread-powershell-retirement---2025-info-and-resou/4364991">deprecated as of April of this year.</a></p>
<p>&nbsp;</p>
<p>In this post, we'll cover the steps needed to install the MS Graph PowerShell module, verify it works, and perform a couple examples of its use.</p>
<p>&nbsp;</p>
<h2 class="wp-block-heading">Prerequisites</h2>
<p>&nbsp;</p>
<p>To install the module, you need a couple things. You likely already have these if your running a later version of Windows 10, or Windows 11, but lets just throw them here as a reminder.</p>
<p>&nbsp;</p>
<ul class="wp-block-list"><li>PowerShell 5.1 or newer</li>
<li>&nbsp;</li>
<li>.NTE Framework 4.7.2 or newer</li>
<li>&nbsp;</li>
<li>Latest version of PowerShellGet</li>
</ul>
<p>&nbsp;</p>
<p>I am going to start with installing PowerShell 7. The easiest way to do this with with winget.</p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>winget install --id Microsoft.Powershell --source winget</code></pre>
<p>&nbsp;</p>
<p>The install from winget will look similar to below:</p>
<p>&nbsp;</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/07/install-powershell7-from-winget.png"><img class="wp-image-4165" src="https://chrisbmn.com/blog/wp-content/uploads/2025/07/install-powershell7-from-winget-1024x264.png" alt=""></a></figure>
<p>&nbsp;</p>
<p>Or download it from the <a href="https://github.com/PowerShell/PowerShell/releases" data-type="link" data-id="https://github.com/PowerShell/PowerShell/releases">official GitHub releases.</a></p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>iex &ldquo;&amp; { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI&rdquo;</code></pre>
<p>&nbsp;</p>
<p>If you install via the msi - Just leave all of the options as their defaults.</p>
<p>&nbsp;</p>
<p>Once the installation completes, close your existing PowerShell window and search for&nbsp;<strong>PowerShell 7</strong>&nbsp;in your start menu.</p>
<p>&nbsp;</p>
<figure class="wp-block-image size-full is-resized"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/07/findinstart.png"><img class="wp-image-4163" style="width: 305px; height: auto;" src="https://chrisbmn.com/blog/wp-content/uploads/2025/07/findinstart.png" alt=""></a></figure>
<p>&nbsp;</p>
<p>With that out of the way, we can install Microsoft Graph</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2 class="wp-block-heading">Install Microsoft Graph PowerShell Module</h2>
<p>&nbsp;</p>
<p>Use the following examples to install the latest (stable) version of the Microsoft Graph PowerShell module from the PowerShell Gallery.</p>
<p>&nbsp;</p>
<p><strong>To install the module for the current user scope:</strong></p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Install-Module Microsoft.Graph -Scope CurrentUser</code></pre>
<p>&nbsp;</p>
<p><strong>Or to install for all users on your system: (you will need local admin rights on your system):</strong></p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Install-Module Microsoft.Graph -Scope AllUsers</code></pre>
<p>&nbsp;</p>
<p>Both commands can both be run in PowerShell 5.1 or PowerShell 7; however, installing one does not install it for the other.</p>
<p>&nbsp;</p>
<p>Below is an example of the command being used to install for all users.</p>
<p>&nbsp;</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/07/installing-graph-for-all-users.png"><img class="wp-image-4164" src="https://chrisbmn.com/blog/wp-content/uploads/2025/07/installing-graph-for-all-users-1024x535.png" alt=""></a></figure>
<p>&nbsp;</p>
<p>At this point, you may want to verify that everything looks good, so you can run for following command to confirm which version has been installed on your system.</p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Get-InstalledModule | Where-Object {$_.Name -match "microsoft.graph"}</code></pre>
<p>&nbsp;</p>
<p>You should see something similar to the following:</p>
<p>&nbsp;</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/07/verify-graph-install.png"><img class="wp-image-4167" src="https://chrisbmn.com/blog/wp-content/uploads/2025/07/verify-graph-install-1024x391.png" alt=""></a></figure>
<p>&nbsp;</p>
<p>We're now set to connect to graph and perform some magic! Yay!</p>
<p>&nbsp;</p>
<h2 class="wp-block-heading">Connect to Microsoft Graph with PowerShell</h2>
<p>&nbsp;</p>
<p>Depending on your needs, to interact with Graph you need to outline the parameter's of whether you just need to read data, or if you need to write it as well.</p>
<p>&nbsp;</p>
<p>If you want &lsquo;read&rsquo; and &lsquo;write&rsquo; access to all user accounts in your tenant:</p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"</code></pre>
<p>&nbsp;</p>
<p>Or if you only need to read the data you can use:</p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.Read.All"</code></pre>
<p>&nbsp;</p>
<p>This could also be applied to groups:</p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "Group.ReadWrite.All"</code></pre>
<p>&nbsp;</p>
<p>For a full breakdown of all the available permissions you can specify when connecting to Graph, refer to the permissions reference sheet from Microsoft:&nbsp;<a href="https://learn.microsoft.com/en-us/graph/permissions-reference" target="_blank" rel="noreferrer noopener">https://learn.microsoft.com/en-us/graph/permissions-reference</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2 class="wp-block-heading">What can we do?</h2>
<p>&nbsp;</p>
<p>So now that we have PowerShell installed, the MS Graph module loaded, and we are connected, below are a few real life uses for the Graph Module.</p>
<p>&nbsp;</p>
<p><strong>Setting Azure User account passwords to expire / not expire:</strong></p>
<p>&nbsp;</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"
</code></pre>
<p># Set password to never expire</p>
<pre class="language-powershell"><code>Update-MgUser -UserId "user@domain.com" -PasswordPolicies "DisablePasswordExpiration"</code></pre>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"</code></pre>
<p># Set password to expire</p>
<pre class="language-powershell"><code>Update-MgUser -UserId "user@domain.com" -PasswordPolicies "EnablePasswordExpiration"</code></pre>
<p><strong>Verify what password policy is in effect:</strong></p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"

Get-MgUser -UserId "user@domain.com" -Property UserPrincipalName,PasswordPolicies |
Select-Object UserPrincipalName, @{Name="PasswordNeverExpires";Expression={$_.PasswordPolicies -contains "DisablePasswordExpiration"}}</code></pre>
<p><strong>Disable</strong> the <strong>"Force change password at next sign-in"</strong> setting for an Azure AD user:</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"

Update-MgUser -UserId "user@domain.com" -PasswordProfile @{ ForceChangePasswordNextSignIn = $false }</code></pre>
<p>This assumes the user already has a password set. If you're also resetting the password, you can include it like this:</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"

Update-MgUser -UserId "user@domain.com" -PasswordProfile @{
    Password = "NewSecureP@ssw0rd!"
    ForceChangePasswordNextSignIn = $false
}</code></pre>
<p>Finally, <strong>enable </strong>the <strong>"Force change password at next sign-in"</strong> setting for an Azure AD user:</p>
<pre class="language-powershell"><code>Connect-MgGraph -Scopes "User.ReadWrite.All"

Update-MgUser -UserId "user@domain.com" -PasswordProfile @{ ForceChangePasswordNextSignIn = $true}</code></pre>
<p>These are all real life use cases that I have used the MS Graph PowerShell module for. I'd love to see some of your uses - feel free to share them in the comments below.</p>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>How to set the default page on new tab in Edge, Chrome and Firefox with Intune</title>
      <link>https://chrisbmn.com/blog/how-to-set-the-default-page-on-new-tab-in-edge-chrome-and-firefox-with-intune/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/how-to-set-the-default-page-on-new-tab-in-edge-chrome-and-firefox-with-intune/</guid>
      <pubDate>Tue, 29 Apr 2025 12:16:14 -0500</pubDate>
      <description><![CDATA[I recently had a request to set a new homepage URL on all devices in the company. The requirement was to simply make the default tab or new browser window/page open to our new inte…]]></description>
      <content:encoded><![CDATA[<p>I recently had a request to set a new homepage URL on all devices in the company. The requirement was to simply make the default tab or new browser window/page open to our new internal company Intranet page. Sounds easy enough!</p>
<p>In this blog post, I will outline the steps I used to set this setting for the big-three browsers - Edge, Chrome and Firefox.</p>
<p>The settings to apply are pretty self-explanatory after you get them in place, however following each vendors documentation can be a little confusing, so my hope in this post is to simplify the steps into 1-easy-to-understand tutorial.</p>
<p>Lets get started: </p>
<h1 class="wp-block-heading">MS Edge</h1>
<p>MS Edge is the easiest to implement. </p>
<ul class="wp-block-list"><li>Login on Microsoft Intune Admin Center</li>
<li>Click on Devices &gt; Configuration</li>
<li>Click on + Create Profile</li>
<li>Select Platform as Windows 10 and later  </li>
<li>Select Policy type as Settings catalog</li>
</ul>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-catalog.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-catalog.png" alt="" class="wp-image-4119"/></a></figure>
<ul class="wp-block-list"><li>Provide a Name and Description (optional) of the Policy.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile-1024x466.png" alt="" class="wp-image-4120"/></a></figure>
<ul class="wp-block-list"><li>From the Configuration settings tab, select + Add settings</li>
<li>In the Settings picker blade, Search for "Edge". Then use the image below.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-picker.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-picker-807x1024.png" alt="" class="wp-image-4121"/></a></figure>
<ul class="wp-block-list"><li>After the setting is selected, configure the setting to Enabled, and add the URL</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/user-url.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/user-url-1024x624.png" alt="" class="wp-image-4122"/></a></figure>
<ul class="wp-block-list"><li>Select Next and configure any Scope tags if applicable.</li>
<li>Assign the profile to your group of users.</li>
<li>On the Review + Create tab, review all the settings and confirm everything looks good, then select the blue Create button at the bottom of the page. </li>
</ul>
<p>Yay!  1 down, 2 more to go. </p>
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<p></p>
<h1 class="wp-block-heading">Google Chrome</h1>
<p>Google Chrome is nearly identical to MS Edge to implement. </p>
<ul class="wp-block-list"><li>Login on Microsoft Intune Admin Center</li>
<li>Click on Devices &gt; Configuration</li>
<li>Click on + Create Profile</li>
<li>Select Platform as Windows 10 and later  </li>
<li>Select Policy type as Settings catalog, Select the blue Create button.</li>
</ul>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-catalog.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/settings-catalog.png" alt="" class="wp-image-4119"/></a></figure>
<ul class="wp-block-list"><li>Provide a Name and Description (optional) of the Policy. Select the blue Next button at the bottom of the screen.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile-1024x466.png" alt="" class="wp-image-4120"/></a></figure>
<ul class="wp-block-list"><li>From the Configuration settings tab, select + Add settings</li>
<li>In the Settings picker blade, Search for "Google". Then use the image below.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/chrome-settings-picker.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/chrome-settings-picker-838x1024.png" alt="" class="wp-image-4125"/></a></figure>
<ul class="wp-block-list"><li>After the setting is selected, configure the setting to Enabled, and add the URL</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/chrome-user-url.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/chrome-user-url-1024x563.png" alt="" class="wp-image-4126"/></a></figure>
<ul class="wp-block-list"><li>Select Next and configure any Scope tags if applicable.</li>
<li>Assign the profile to your group of users.</li>
<li>On the Review + Create tab, review all the settings and confirm everything looks good, then select the blue Create button at the bottom of the page. </li>
</ul>
<p></p>
<p>That's two out of the way - now it's time for the tough one.</p>
<p>Unfortunately, Firefox doesn't have settings catalog parameters available in Intune as of the time of this tutorial. Here's the 50-thousand-foot-summary - We download template files from their Github, upload them into Intune, and then use those templates to assign some parameters to FireFox.</p>
<p>Okay, Last one best one! </p>
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<h1 class="wp-block-heading">Mozilla Firefox </h1>
<ul class="wp-block-list"><li>First we need the ADMX, and ADML files from their <a href="https://github.com/mozilla/policy-templates/releases">GitHub page here</a> and unzip the file. </li>
<li>Login on Microsoft Intune Admin Center</li>
<li>Click on Devices &gt; Configuration</li>
<li>Click on Import ADMX tab at the top of the page.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/import-admx.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/import-admx-1024x232.png" alt="" class="wp-image-4127"/></a></figure>
<ul class="wp-block-list"><li>Select + Import</li>
<li>Import the&nbsp;<code>mozilla.admx</code>&nbsp;and&nbsp;<code>mozilla.adml</code>&nbsp;files. Make sure the status shows&nbsp;<strong>Available</strong>.</li>
<li>Import the&nbsp;<code>firefox.admx</code>&nbsp;and&nbsp;<code>firefox.adml</code>&nbsp;files.</li>
</ul>
<blockquote class="wp-block-quote"><p><strong>NOTE </strong>- <em>If you upload <code>firefox.admx</code> before <code>mozilla.adml</code>, the import will fail.</em></p>
</blockquote>
<ul class="wp-block-list"><li>Head back to : <strong>Devices</strong>&nbsp;&gt;&nbsp;<strong>Manage devices</strong>&nbsp;&gt;&nbsp;<strong>Configuration</strong>&nbsp;&gt;&nbsp;<strong>Create</strong>&nbsp;&gt;&nbsp;<strong>New policy</strong>.</li>
<li>Select Platform as Windows 10 and later</li>
<li>Select Policy type as Templates, then Imported Administrative templates (Preview) Select the blue Create button.</li>
</ul>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/imported-admin-template-1.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/imported-admin-template-1.png" alt="" class="wp-image-4129"/></a></figure>
<ul class="wp-block-list"><li>Provide a Name and Description (optional) of the Policy. Select the blue Next button at the bottom of the screen.</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile-ff.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/create-profile-ff-1024x526.png" alt="" class="wp-image-4130"/></a></figure>
<ul class="wp-block-list"><li>From the Configuration settings tab, navigate to the tree to "User Configuration &gt; Mozilla &gt; Firefox &gt; Home page".</li>
</ul>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/config-settings-ff.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/config-settings-ff-1024x369.png" alt="" class="wp-image-4131"/></a></figure>
<ul class="wp-block-list"><li>Select both "URL for Home page" and "Start Page" settings.</li>
</ul>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/url-for-homepage-ff.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/url-for-homepage-ff.png" alt="" class="wp-image-4132"/></a></figure>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/04/startpage-ff.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/04/startpage-ff.png" alt="" class="wp-image-4134"/></a></figure>
<ul class="wp-block-list"><li>Select Next and configure any Scope tags if applicable.</li>
<li>Assign the profile to your group of users.</li>
<li>On the Review + Create tab, review all the settings and confirm everything looks good, then select the blue Create button at the bottom of the page.</li>
</ul>
<p>This should do it. After the next sync cycle, when you open a new browser window or a new tab in any of these browsers, the default URL should be the initial web page to be displayed/loaded.</p>
<p>A couple followup notes in terms of expectations:</p>
<ul class="wp-block-list"><li>This list isn't locked down. People will be able to navigate away from this page.</li>
<li>If you open a new tab, the default page will open in the new tab</li>
<li>On edge, the URL is hidden. That doesn't stop you from navigating away or opening any additional browser tabs.</li>
</ul>
<p></p>
<h2 class="wp-block-heading">Tested on :</h2>
<ul class="wp-block-list"><li>Windows 11 - 24H2</li>
<li>OS Build : 26100.3775</li>
</ul>
<p></p>
<ul class="wp-block-list"><li>Chrome version 135.0.7049.115</li>
<li>Microsoft Edge Version 135.0.3179.98</li>
<li>Firefox version 137.0.2</li>
</ul>
<h2 class="wp-block-heading">Troubleshooting Issues</h2>
<ul class="wp-block-list"><li>If any settings aren't applying even if the profile appears to have deployed correctly : Confirm that you aren't attempting to apply Computer settings on Users or vice-versa. The settings I used above are all "User" targetted. Its also best practice to <strong>NOT</strong> mix deployments comprised of both.</li>
</ul>
<h2 class="wp-block-heading">Reference Links</h2>
<ul class="wp-block-list"><li><a href="https://support.mozilla.org/en-US/kb/managing-firefox-intune">Manage Firefox with Microsoft Endpoint Manager (Intune) | Firefox for Enterprise Help</a></li>
<li><a href="https://learn.microsoft.com/en-us/intune/intune-service/configuration/administrative-templates-import-custom">Import custom and third-party partner ADMX templates in Microsoft Intune | Microsoft Learn</a></li>
<li></li>
</ul>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Using Microsoft Quick Assist</title>
      <link>https://chrisbmn.com/blog/using-microsoft-quick-assist/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/using-microsoft-quick-assist/</guid>
      <pubDate>Fri, 17 Jan 2025 14:58:45 -0600</pubDate>
      <description><![CDATA[There are many remote access solutions out on the internet today, and some of them are fantastic tools especially in the business workspace. TeamViewer, Splashtop, AnyDesk, RustDes…]]></description>
      <content:encoded><![CDATA[<p>There are many remote access solutions out on the internet today, and some of them are fantastic tools especially in the business workspace. <a href="https://www.teamviewer.com/en-us/">TeamViewer</a>, <a href="https://www.splashtop.com/">Splashtop</a>, <a href="https://anydesk.com/en">AnyDesk</a>, <a href="https://rustdesk.com/">RustDesk</a>, <a href="https://www.screenconnect.com/">Screenconnect</a>, and <a href="https://www.dwservice.net/">Dwservice.net</a> to name a few. This list goes on and on. But what if your usage need isn't business related? and what if funds are short, or maybe you don't have time to setup one of the OpenSource offerings, or MAYBE, just maybe you just don't want to shell out $30-60 a year for a piece of software for remote access to dear-ole-meema's computer!</p>
<p>Never Fear, Microsoft has got your back. <a href="https://support.microsoft.com/en-us/windows/solve-pc-problems-remotely-using-quick-assist-b077e31a-16f4-2529-1a47-21f6a9040bf3">Microsoft Quick Assist</a> to the rescue!</p>
<p>This is a very simple article about how to use Quick Assist. </p>
<h2 class="wp-block-heading">What is it?</h2>
<p><strong>Quick Assist</strong>&nbsp;is a&nbsp;Microsoft Windows&nbsp;feature that allows a user to view or control a remote Windows computer over a network or the&nbsp;Internet&nbsp;to resolve issues without directly touching the system. It is based on the&nbsp;Remote Desktop Protocol&nbsp;(RDP). Quick Assist is installed by default on Windows clients. </p>
<p>Helpers and users agree to assistance by sending/accepting assistance invitations from helpers.&nbsp; Quick Assist requests a code in order to match users to a session. This will allow the giver to access the computer of the receiver in Administrator mode while allowing the receiver to see the choices the giver made.</p>
<h2 class="wp-block-heading">How do I use it then?</h2>
<p>Simple! and I'm glad you asked. The following is a quick overview of starting, connecting and using Quick Assist.</p>
<p>Left click on the start button</p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/startbutton.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/startbutton.png" alt="" class="wp-image-3974"/></a></figure>
<p>With the start menu open, type "quick" in the search field, quick assist should show up as an App</p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/quick.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/quick.png" alt="" class="wp-image-3975"/></a></figure>
<p>The main window for Quick Assist will open. You are presented 2 options. 1 to receive help, and the other to give it.</p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/mainscreen-quickassist.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/mainscreen-quickassist.png" alt="" class="wp-image-3976"/></a></figure>
<p>The top part of the screen is for those who are "needing" help. </p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/getting-help.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/getting-help.png" alt="" class="wp-image-3977"/></a></figure>
<p>The bottom part is for those that are "giving" help.</p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/giving-help-button.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/giving-help-button.png" alt="" class="wp-image-3978"/></a></figure>
<p>The Helper clicks the button "Help someone" and will be presented with a time sensitive code, that they then exchange with the receiver of the help whom will enter the code in the top box.</p>
<figure class="wp-block-image size-full"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/giving-help.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/giving-help.png" alt="" class="wp-image-3979"/></a></figure>
<p></p>
<p>The receiver of help will input that code into their quick assist field </p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/Screenshot-2025-01-17-122941.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/Screenshot-2025-01-17-122941-686x1024.png" alt="" class="wp-image-3980"/></a></figure>
<p>After the code is entered and "Submit" is selected the two systems will begin connecting. The person requesting help, will need to allow screensharing by checking the below checkbox and then selecting allow.</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/allow-screen-sharing.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/allow-screen-sharing-686x1024.png" alt="" class="wp-image-3982"/></a></figure>
<p></p>
<p>The two systems will connect</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/connecting.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/connecting-682x1024.png" alt="" class="wp-image-3981"/></a></figure>
<p>After the two systems are connected the helper will see a screen similar to this</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/connected.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/connected-1024x751.png" alt="" class="wp-image-3983"/></a></figure>
<p>The helper can request control of the other computer by selecting the button in the admin bar</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/adminbar-requestcontrol.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/adminbar-requestcontrol-1024x50.png" alt="" class="wp-image-3984"/></a></figure>
<p>The receiver of help will see the following at the top of the screen and will need to allow the control request.</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/requesting-control.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/requesting-control-1024x106.png" alt="" class="wp-image-3985"/></a></figure>
<p>The receiver of help can cancel access, or disconnect at any time by selecting any of the options in their respective bar</p>
<figure class="wp-block-image size-large"><a href="https://chrisbmn.com/blog/wp-content/uploads/2025/01/cancel-leave.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2025/01/cancel-leave-1024x104.png" alt="" class="wp-image-3986"/></a></figure>
<p>And that's a quick overview of using Microsoft Quick Assist!</p>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Automated Windows 10 build using Boxstarter, Chocolately &amp; PowerShell</title>
      <link>https://chrisbmn.com/blog/automated-windows-10-build-using-boxstarter-chocolately-powershell/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/automated-windows-10-build-using-boxstarter-chocolately-powershell/</guid>
      <pubDate>Mon, 16 Mar 2020 13:01:37 -0500</pubDate>
      <description><![CDATA[I am an IT guy, and as such, I have numerous devices that I am constantly poking and prodding at. This at times has left me in a pinch, where i'm no doubt (like a fool) - testing s…]]></description>
      <content:encoded><![CDATA[<p>I am an IT guy, and as such, I have numerous devices that I am constantly poking and prodding at. This at times has left me in a pinch, where i'm no doubt (like a fool) - testing something on one of my machines, and poof! Its toast. </p>
<p>For this reason, I wanted to put together a way to be able to walk-up to any of my Windows devices, re-install the Windows OS, then simply kick-off a script (of any type), and have the machine back in a semi-to-fully functioning state with all of the applications and files available and ready to use. </p>
<p>I came up with the following bullet list of simple requirements: </p>
<ul><li>Be able to wipe a device at any time and not have a fear of data-loss.</li><li>Easily reinstall most (if not all) the applications I use as an IT guy.</li><li>Install the latest versions of the above applications.</li><li>Install applications which may not always come from the choco repo.</li><li>Install updates, configure firewall, or enable any windows tweaks, etc.</li><li>Keep this process easy, consistent, and repeatable. </li></ul>
<p>for this reason, I looked to to github for a few choco developer machines projects, and low-and-behold fell onto a project from Microsoft called <a href="https://github.com/microsoft/windows-dev-box-setup-scripts">Windows-Dev-Box-Setup</a>. This project had nearly 90% of the work already done, so after a quick fork, I had a starting point.</p>
<p>So with that said, allow me to introduce <a href="https://github.com/chrisrbmn/workstationbuilder">Windows 10 SysAdmin/Engineer workstation builder.</a></p>
<h2>What does it do?</h2>
<p>Quite simply, it takes your baseline'd Windows 10 desktop, and installs a standard set of Admin tools, that I use in my day-to-day as a Server Engineer.</p>
<h2>Requirements</h2>
<p><strong>NOTE </strong>- This is <strong>NOT </strong>a bare-metal script. You have to first install Windows 10. Then proceed with running this script afterwards.</p>
<p>This script is meant to be very simple, and requires NO interaction from the user. I simply use boxstarter web launcher to start the installation process and call the proper build script. </p>
<p>Unfortunately some of Boxstarter's functionality does require administrative privileges to run, and it will prompt to elevate to administrator if not already elevated. While this may pose an issue directly using my script if you don't have admin access, you can fork my repo, and make any necessary changes to get a workable solution for you. Take a look at Chocolately's documentation on <a href="https://chocolatey.org/install#non-administrative-install">Non-Admin Install</a> to find resources and examples of scripts to get a quick setup that doesn't require admin access.</p>
<p>All of the instructions are available on my <a href="https://github.com/chrisrbmn/workstationbuilder">github</a>. </p>]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Setup of Nutanix AHV Virt_who for Red Hat Satellite</title>
      <link>https://chrisbmn.com/blog/setup-of-nutanix-ahv-virtwho-for-red-hat-satellite/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/setup-of-nutanix-ahv-virtwho-for-red-hat-satellite/</guid>
      <pubDate>Tue, 28 Jan 2020 13:43:00 -0600</pubDate>
      <description><![CDATA[In this article, I intend to walk through the basics of setting up an virt-who config to be used to leverage the Nutanix API from Red Hat Satellite, thereby adding the capability t…]]></description>
      <content:encoded><![CDATA[<p>In this article, I intend to walk through the basics of setting up an virt-who config to be used to leverage the Nutanix API from Red Hat Satellite, thereby adding the capability to bring in all of our AHV hosts into Satellite, as well as all the RHEL VMs. </p>
<p>This tutorial will directly reference the Red Hat Satellite with AHV Integration Guide provided from Nutanix Portal. A link to the guide has been provided below.</p>
<p>So to begin this tutorial, I'm going to make the following assumptions about your environment. Before you dig into this guide, please review these assumtions, and make sure you are in a state that matches the below.</p>
<p>Assumptions</p>
<ol><li>You have a fully functioning and configured Red Hat Satellite 6.</li><li>You have the following details regarding your Satellite server<ol><li>Org Name as it was registered in Satellite</li><li>FQDN of the Satellite Server</li><li>Username/Password of a user in Satellite (Preferably a service account)</li></ol></li><li>Credentials to Prism Central or Prism Element</li><li>Finally - You have a subscription setup and allocated to the Satellite server.</li></ol>
<p>To begin, we need to install the Nutanix virt-who agent on Satellite. (or any RHEL VM that is registered to either the Satellite server or to the Red Hat Portal.)</p>
<ul><li>Download the Nutanix virt-who agent from the <a href="https://portal.nutanix.com/#/page/static/supportTools">Nutanix Support Portal here. </a></li><li>Log into the system in which you are using.. (I used our Satellite server.)</li><li>Upload the <strong>.rpm</strong> that you downloaded from the Nutanix Portal</li><li>Install the Nutanix virt-who agent by running: </li></ul>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ yum install rpm-file</pre>
<ul><li>Next we need to create a Nutanix virt-who configuration file that included the details about the AHV cluster.</li><li>Change directory to the /etc/virt-who.d/ directory</li><li>Create a new file. This file can be named any way you like, however it needs to end with a <strong>.conf</strong> extension.</li><li>Below is an example configuration file:</li></ul>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[ahv]
type=ahv
hypervisor_id=hostname
owner=RedHatAHVOrg01
#env=Library
server=ip.addr.of.prism
prism_central=true
update_interval=1800
username=satellitesvcaccount
encrypted_password=
rhsm_hostname=satellite.domain.net
rhsm_username=virt_whosvc
rhsm_encrypted_password=
rhsm_prefix=/rhsm
#internal_debug=true</pre>
<ul><li>After saving this file, you should now be able to test your configuration to make sure everything is working.</li><li>The agent can be run in on of the following modes:<ul><li>One shot mode to report the VM-to-host mapping to Satellite one time only.<ul><li>$ virt-who -o</li></ul></li><li>Continuous mode <ul><li>$ virt-who</li></ul></li></ul></li></ul>
<p>At this point everything should be working. You may see some warnings. Some may require some additional configuration to resolve, others may be benign. You'll have to sort through any warnings and decide if they need additional remediation or not.</p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Learning Ansible from the ground up.</title>
      <link>https://chrisbmn.com/blog/learning-ansible-from-the-ground-up/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/learning-ansible-from-the-ground-up/</guid>
      <pubDate>Wed, 23 Oct 2019 09:00:37 -0500</pubDate>
      <description><![CDATA[Ansible (As defined by wikipedia) is an open-source software provisioning, configuration management, and application-deployment tool. It runs on many Unix-like systems, and can con…]]></description>
      <content:encoded><![CDATA[<p><strong>Ansible</strong> (As defined by wikipedia) is an open-source software provisioning, configuration management, and application-deployment tool. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows. It includes its own declarative language to describe system configuration.</p>
<p>In this article, I intend to walk through the basics of setting up an initial test controller node on CentOS 7, as well as a simple configuration of a Windows Server 2016 node using a basic Ansible playbook. (perhaps building multiple playbooks for different tasks)</p>
<p>This is my first dive into learning Ansible, and my intent here is to share my experience, and hopefully help you start a simple Ansible environment which you can build and grow from. </p>
<p>Windows and Ansible documentation is located in the <a href="http://docs.ansible.com/ansible/latest/intro_windows.html">official Ansible documentation</a> website.</p>
<p>By following the instructions in this series, you will be able to manage a Windows Server 2016 systems using Ansible as easily as managing any Linux environment.</p>
<p>I intend this article to be a gateway to multiple in a series which possibly will progress into a fully functional production environment. However for just this one instance, I'm simply going to focus on building a sandbox/development environment to learn some basics, then use this as a spring board to expand off of.</p>
<h3>Lab Environment</h3>
<p>The examples in this article will reference the following configuration:</p>
<ul><li>One Ansible controller node running CentOS 7<ul><li>For my dev environment, I'm simply using a spare desktop PC I have.</li></ul></li><li>One Windows 2016 Server to be managed by Ansible<ul><li>I'm using our lab environment, with a virtual machine on vmware esxi 5.5. ( I know, I know.. this is lab... sheesh.)</li></ul></li><li>One Active Directory Server providing DNS (This can be a standalone just for this environment, or an existing one, as long as you have admin access)</li></ul>
<p><strong>NOTE</strong> - <em>You can configure these however you want. however they should be accessible to each other, and you may need to validate firewall settings allow access.</em></p>
<h3>Configure Network Prerequisites</h3>
<p>We'll need to create some Forward and Reverse lookup records in DNS for Kerberos to resolve correctly, so make sure you created an "A" record for your linux system, (you can also leverage an "alias" record if you'd like) - as well as a reverse DNS pointer. You decide what fits best in your environement.</p>
<h3>Build and configure the Ansible System</h3>
<p><strong>NOTE </strong>- <em>For the sake of brevity, I will not be coving the build of the Operating System and I am assuming that you have built a base CentOS 7 with a minimum configuration, set the IP address details, and enabled SSH access. </em></p>
<h4>Install Prerequisite Packages</h4>
<p>

Update the following files. Be sure to modify as appropriate for your own environment. 

</p>
<p>1. Install GCC required for Kerberos</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y group install “Development Tools”</pre>
<p>2. Install EPEL Repository</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y install epel-release</pre>
<p>3. Install Ansible</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y install ansible</pre>
<p>4. Install Kerberos</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y install python-devel krb5-devel krb5-libs krb5-workstation</pre>
<p>5. Install Pythos PIP</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y install python-pip</pre>
<p>6. Update all the system packages to insure everything is at the latest version.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">yum -y update</pre>
<p>After an full system update, I always find it a good idea to reboot the system, so go ahead and do that now.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">reboot</pre>
<h4><strong>Check that Ansible and Python is Installed</strong> and working</h4>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ansible --version | head -n 1
python --version</pre>
<figure class="wp-block-image"><img src="https://chrisbmn.com/blog/wp-content/uploads/2019/10/ansible1.png" alt="" class="wp-image-2185"/></figure>
<h4>Configure Kerberos</h4>
<p>While there are other options to authenticate with Windows guests, Kerberos is generally the best option to utilize in an Active Directory domain.</p>
<p>1. Install the Kerberos PIP Package.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install pywinrm[Kerberos]</pre>
<p>2. Edit the /etc/krb5.conf file and add the following:</p>
<p><strong>NOTE</strong> - <em>Make sure to adjust these to your specific environment. Also make note that I am specifying the domain name is all UPPER CASE LETTERS.  This is due to kerberos naming standards. Make sure this is all upper case, as well, when testing, pass the domain name as all upper case or you may get errors.</em></p>
<p>These following articles explain in greater detail.</p>
<ul><li><a href="https://www.centos.org/forums/viewtopic.php?f=31&amp;t=36729&amp;p=165954&amp;hilit=kinit%3A+KDC+reply+did+not+match+expectations+while+getting+initial#p165954">https://www.centos.org/forums/viewtopic.php?f=31&amp;t=36729&amp;p=165954&amp;hilit=kinit%3A+KDC+reply+did+not+match+expectations+while+getting+initial#p165954</a></li><li><a href="https://access.redhat.com/solutions/871613">https://access.redhat.com/solutions/871613</a></li></ul>
<p>Add:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[realms]
DOMAIN.LOCAL = {
  kdc = DC1.DOMAIN.LOCAL
}</pre>
<p>Add:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[domain_realm]
.domain.local = DOMAIN.LOCAL
domain.local = DOMAIN.LOCAL</pre>
<p>Your completed /etc/krb5.conf file should look similar to this:</p>
<figure class="wp-block-image"><img src="https://chrisbmn.com/blog/wp-content/uploads/2019/10/krbconf.png" alt="" class="wp-image-2188"/></figure>
<h4>Test Kerberos</h4>
<p>Run the follow to test kerberos:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">kinit &lt;username>@DOMAIN.LOCAL</pre>
<p>Enter the password for the user you entered above.</p>
<p>You should see a kerberos KEYRING record similar to below:</p>
<figure class="wp-block-image"><img src="https://chrisbmn.com/blog/wp-content/uploads/2019/10/krbtest.png" alt="" class="wp-image-2190"/></figure>
<p>At this point, our Ansible machine is now ready for us to start creating some playbooks to run against our windows server.</p>
<p>For my next article, I'll build the Windows Client to manage, and we'll setup some simple playbooks to experiment with.  Additionally in the future, I'd like to delve into the Ansible AWX project, and see where that can fit in too! C</p>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Windows Server 2016 Default Domain Policy Settings</title>
      <link>https://chrisbmn.com/blog/windows-server-2016-default-domain-policy-settings/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/windows-server-2016-default-domain-policy-settings/</guid>
      <pubDate>Thu, 21 Mar 2019 10:08:32 -0500</pubDate>
      <description><![CDATA[Below you will see .htm reports of the Group Policy Management Console on a Windows Server 2016 Server immediately following a clean installation of Active Directory Domain Service…]]></description>
      <content:encoded><![CDATA[Below you will see .htm reports of the Group Policy Management Console on a Windows Server 2016 Server immediately following a clean installation of Active Directory Domain Services.

Best practice in terms of GPO deployment, is to NEVER modify the default policies, unless absolutely necessary. It is rather recommended to create new policy's to always augment this minimum policy rule-set. Read more about it <a href="https://technet.microsoft.com/en-us/library/hh875588.aspx" target="_blank" rel="noopener noreferrer">here</a>&nbsp;and <a href="https://technet.microsoft.com/en-us/library/cc779159(WS.10).aspx" target="_blank" rel="noopener noreferrer">here</a>:
<ul>
 	<li>“<em>As a best practice, you should configure the Default Domain Policy GPO only to manage the default Account Policies settings, Password Policy, Account Lockout Policy, and Kerberos Policy</em>“.</li>
 	<li><em>“As a best practice, you should configure the Default Domain Controllers Policy GPO only to set user rights and audit policies.”</em></li>
 	<li><em>“Do not modify the default domain policy or default domain controller policy unless necessary. Instead, create a new GPO at the domain level and set it to override the default settings in the default policies.”</em></li>
</ul>
If you find yourself in an AD environment where the Default Domain Policy has been heavily modified, and you need to get back to the what the original policy was, you can accomplish this by running the following commands:
<pre class="EnlighterJSRAW" data-enlighter-language="msdos">dcgpofix /ignoreschema /target:Domain</pre>
<pre class="EnlighterJSRAW" data-enlighter-language="msdos">dcgpofix /ignoreschema /target:DC</pre>
As always its a good idea to either document and/or backup the current GPOs.

Here are the Default Policies for review:

<a href="https://chrisbmn.com/blog/wp-content/uploads/2019/03/Default-Domain-Controllers-Policy.htm" target="_blank" rel="noopener noreferrer">Default Domain Controllers Policy</a> <a href="https://chrisbmn.com/blog/wp-content/uploads/2019/03/Default-Domain-Policy.htm" target="_blank" rel="noopener noreferrer">Default Domain Policy</a>]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Setting up Windows Root CA on CentOS 6.9 Linux server</title>
      <link>https://chrisbmn.com/blog/setting-up-windows-root-ca-on-centos-6-9-linux-server/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/setting-up-windows-root-ca-on-centos-6-9-linux-server/</guid>
      <pubDate>Wed, 23 May 2018 15:40:34 -0500</pubDate>
      <description><![CDATA[Hello and welcome.
It is that time for me to add a new article to the blog. I know, I KNOW.. Its been a long time.. I'm sorry...

In today's blog post, I will be covering the proce…]]></description>
      <content:encoded><![CDATA[Hello and welcome.
It is that time for me to add a new article to the blog. I know, I KNOW.. Its been a long time.. I'm sorry...

In today's blog post, I will be covering the process to setup a root certificate on a Linux host, and the process of generating a CSR and adding it to Apache.
There are many, many, many articles walking through the creation of a self-signed certificate on Linux. If there is any question to that, take a look <a href="https://wiki.centos.org/HowTos/Https" rel="noopener noreferrer" target="_blank">here</a>, <a href="https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-centos-6" rel="noopener noreferrer" target="_blank">here</a>, <a href="https://www.thegeekdiary.com/centos-rhel-how-to-enable-ssl-for-apache/" rel="noopener noreferrer" target="_blank">here</a>, or <a href="https://www.tecmint.com/enable-ssl-for-apache-on-centos/" rel="noopener noreferrer" target="_blank">here</a>; Just to name a few..
With that being said, there are very few articles that walk through the entire process of pulling a root certificate from a Windows Active Directory or Stand Alone CA, importing it into a linux host, and then creating a certificate for use on that linux host for Apache.

That is exactly what I'm going to cover today.

<strong>NOTE</strong> - This article is the culmination of piecing together several different articles from multiple website sources. My intent was to pull all of these different materials into one location for ease of reference.  I will be incorporating several pictures and steps directly from those websites, and I have a reference link to that content in the source links below.

<strong>Assumptions:</strong>
<ol>
 	<li>You have already built your physical/virtual machine</li>
 	<li>You have setup apache and the service is running without issue</li>
 	<li>You have iptables entries created to allow traffic for both http and https
<pre class="lang:sh decode:true "># iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT</pre>
</li>
 	<li>You have installed mod_ssl and openssl by running :
<pre class="lang:sh decode:true ">yum install mod_ssl openssl</pre>
</li>
</ol>
<strong>Acquire the root certificate from ADCS</strong>

The first step and most important step for all of this magic to work, is we need to have the Root certificate loaded into the certificate store on our Linux host. Unfortunately, the formats of these certificates are not always compatible, so we need to make sure that the Microsoft PKCS #7 format is converted into the PEM format commonly used on linux hosts. After you have acquired your root certs from the CA, we need to convert them.
<ol>
 	<li>After you receive the certificate from the CA, double-click on the certificate to open it.
When you open the certificate, it appears as shown in the following screen shot:
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/certmgr-300x241.jpg" alt="" width="300" height="241" class="aligncenter size-medium wp-image-612"></li>
 	<li>Locate the path of the certificate on your computer and double-click on the certificate again to open it.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/certmgr2-300x169.jpg" alt="" width="300" height="169" class="aligncenter size-medium wp-image-613">

<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/certificate-gen-239x300.gif" alt="" width="239" height="300" class="aligncenter size-medium wp-image-614"></li>
 	<li>Select the&nbsp;<strong>Details</strong>&nbsp;tab.</li>
 	<li>Click&nbsp;<strong>Copy to File.</strong><img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/certificate-det-238x300.gif" alt="" width="238" height="300" class="aligncenter size-medium wp-image-615"></li>
 	<li>Click&nbsp;<strong>Next</strong>&nbsp;in the Certificate Export Wizard window.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/cert-export-300x297.jpg" alt="" width="300" height="297" class="aligncenter size-medium wp-image-616"></li>
 	<li>Select the&nbsp;<strong>Base-64 encoded x.509 (.CER)</strong>&nbsp;option. This converts the certificate to PEM format.</li>
 	<li>Click&nbsp;Next.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/base64-exp-300x274.gif" alt="" width="300" height="274" class="aligncenter size-medium wp-image-617"></li>
 	<li>Click&nbsp;<strong>Browse</strong>&nbsp;and select a location to store the converted&nbsp;PEM</li>
 	<li>Click&nbsp;Next.<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/export-wizard-300x270.gif" alt="" width="300" height="270" class="aligncenter size-medium wp-image-618"></li>
 	<li>Click&nbsp;Finish.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/export-finish-300x274.gif" alt="" width="300" height="274" class="aligncenter size-medium wp-image-619">
After converting the certificate to PEM format, the certificate has an extension .cer.</li>
 	<li>To verify if the certificate is in PEM format, change the extension to .txt or .doc. The file must start with the line “ BEGIN CERTIFICATE”, as shown in the following screen shot:
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/verify-cert-300x252.png" alt="" width="300" height="252" class="aligncenter size-medium wp-image-620"></li>
 	<li>Using WinSCP, copy the converted .pem certs to:
<pre class="lang:sh decode:true ">/etc/pki/ca-trust/source/anchors</pre>
</li>
 	<li>Run the following commands to import the root certs into the certificate store.
<pre class="lang:sh decode:true "># update-ca-trust enable</pre>
followed by:
<pre class="lang:sh decode:true "># update-ca-trust extract</pre>
</li>
 	<li>Verify the root CAs are OK
<pre class="lang:sh decode:true "># openssl verify LegacyIssuing.cer
LegacyIssuing.cer: OK
</pre>
</li>
</ol>
<strong>Create a CSR for the Linux Server</strong>
Next we have to generate a Certificate Signing Request to be submitted to the Microsoft CA, which will in turn generate a certificate for our website, which is then signed by the root CA, and trusted by the Linux host.
<ol>
 	<li>
<pre class="lang:sh decode:true "># cd /tmp
# openssl req -nodes -newkey rsa:2048 -keyout service.something.key -out service.something.csr</pre>
</li>
 	<li>Copy the csr and key out to your windows machine via winscp.</li>
 	<li>Open the CA website, and request a certificate</li>
 	<li>Based on your specific implementation, you may need to submit an "advanced certificate request"</li>
 	<li>Paste the contents from the CSR file into the box
<img src="https://chrisbmn.com/blog/wp-content/uploads/2018/05/ca-request-300x256.png" alt="" width="300" height="256" class="aligncenter size-medium wp-image-623"></li>
 	<li>Retrieve the certificates from the site.</li>
</ol>
<strong>Import generated cert into linux certificate store</strong>

Now that we have our cert generated, we simply need to copy it back into our certificate store. For this, we will need the key, the cert and the csr files.
<ol>
 	<li>Copy to the following paths:
<pre class="lang:sh decode:true ">cp service.something.cer /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private/service.something.key
cp ca.csr /etc/pki/tls/private/service.something.csr
</pre>
</li>
 	<li>Update the Apache SSL configuration file :
<pre class="lang:sh decode:true ">vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
</pre>
<ul>
 	<li>Change the paths to match where the Key file is stored. If you've used the method above it will be
<pre class="lang:sh decode:true ">SSLCertificateFile /etc/pki/tls/certs/service.something.cer</pre>
</li>
 	<li>Then set the correct path for the Certificate Key File a few lines below. If you've followed the instructions above it is:
<pre class="lang:sh decode:true ">SSLCertificateKeyFile /etc/pki/tls/private/service.something.key
</pre>
</li>
</ul>
</li>
 	<li>Finally, Quit and save the file and then restart apache
<pre class="lang:sh decode:true ">service httpd restart</pre>
</li>
</ol>
That's it folks! You should now be able to connect to your ssl host, and not get prompted to accept that ugly self signed certificate. The only thing left to do, and setup a redirect to send all those ugly insecure connections to your new awesome https connection.. We'll save that for another blog post!]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy – Episode 6</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-6/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-6/</guid>
      <pubDate>Tue, 10 Oct 2017 08:51:45 -0500</pubDate>
      <description><![CDATA[Hello and welcome back to episode 6 of my 6 part series, where I explored the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sep…]]></description>
      <content:encoded><![CDATA[Hello and welcome back to episode 6 of my 6 part series, where I explored the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept. 25th – Sept 29th. This is it. The final blog entry, this is what you've been waiting for. All of the juicy bits from the Microsoft Ignite Conference.

So, what are you waiting for.. Read on for more.

Beginning with the Keynote address, Satya Nadella framed this years MS Ignite as the Ignite of "Digital Transformation".

“Digital technology is impacting all aspects of our society and economies, creating unprecedented opportunity for organizations of all sizes,” said Satya Nadella, CEO, Microsoft. “I’m optimistic and inspired by the ingenuity of customers, partners and developers everywhere that are pushing the frontiers of what’s possible with mixed reality and artificial intelligence infused across Microsoft 365, Dynamics 365 and Azure, to transform and have impact in the world.”

In my opinion, this isn't entirely new stuff here, as Microsoft has been talking about "The Cloud", and "Transformation", for quite some time now. So, not too shocking here. Some other key take-a way's were the replacement of Skype for Business with MS Teams, AI solutions, deeper integration between Microsoft 365 app and flow, Azure stack, as well as many others. <a href="https://news.microsoft.com/2017/09/25/microsoft-helps-customers-digitally-transform-their-businesses-with-cloud-ai-and-mixed-reality-while-also-advancing-the-next-frontier-of-computing/?MC=Windows&amp;MC=WinServer&amp;MC=OfficeO365&amp;MC=SQL&amp;MC=MSAzure" target="_blank" rel="noopener noreferrer">If you'd like to read about all of the other announcements,  click here. </a>Or if you'd prefer, watch the entire keynote here:

https://youtu.be/d7f_GZsQMpA

&nbsp;

Next, I'll cover the sessions I attended this year.

The focus for Intertech is looking to leverage Azure in more of our day-to-day operations. We currently use Azure only as a sandbox, however, we are researching how we can harness the power and flexibility of Azure, while sprinkling in some DevOps to automate our process to promote from Dev to Prod. This means working with Visual Studio, and Team Services. Additionally, we leverage Office 365, so I also focused on sessions that revolved around Azure and Office 365 in general, but also specifically around Sharepoint and Exchange online. Additionally we use SCOM 2016 for monitoring and alerting of system issues within our network.

For the sake of keeping this blog post, under 50 pages, I will post the top 8 sessions I attended. I'll give the brief summary of each session, add any notes or take-a way's I had, provide a link to the session video, and any slides, if  available.

As you will recall from <a href="https://chrisbmn.com/blog/2017/08/microsoft-ignite-2017-journey-of-an-it-guy-episode-5/">Episode 5</a> of my series, I was interested in more then 8 sessions, but as I outlined, you cannot always get to every session you want to view. The sessions I was interested in, but failed to attend are listed below.
<ul>
 	<li><strong>What's new and upcoming in AD FS to securely sign-in your users to Office 365 and other applications</strong>
<ul>
 	<li>This session discusses incorporating new features from AD FS (Active Directory Federation Services) to be able to login from any location and any type of device.
<ul>
 	<li>Of interest was the discussion on supporting Windows Hello through ADFS.</li>
</ul>
</li>
 	<li><a href="https://youtu.be/set0NwKRW7c">https://youtu.be/set0NwKRW7c</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK3020.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Accelerate your digital transformation with SharePoint and OneDrive</strong>
<ul>
 	<li>This session is a high level road map on Sharepoint and Onedrive for business. Also discussed are new features coming to both products in the near future.</li>
 	<li><a href="https://youtu.be/fuo8ufWE_IQ">https://youtu.be/fuo8ufWE_IQ</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK2184.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Automate all things! Microsoft Azure continuous deployment</strong>
<ul>
 	<li>This session discussed and provided an example of setting up a release pipeline workflow to develop in Visual Studio, and promote to Azure leveraging Microsoft Visual Studio Team Services.
<ul>
 	<li>Great demo of using Team Services to setup CI, which shows a build process, and all of the features available within Team Services.</li>
</ul>
</li>
 	<li><a href="https://youtu.be/QgkiK961t5w">https://youtu.be/QgkiK961t5w</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FTHR3083.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Manage hybrid cloud and transform your workplace with PowerShell and Azure Automation</strong>
<ul>
 	<li>In-depth discussions on how to use Azure PowerShell on Windows, macOS, Linux, or from your browser with the Azure Cloud Shell.
<ul>
 	<li>Automation is essential for DevOps</li>
</ul>
</li>
 	<li><a href="https://youtu.be/oOiwcN6DAwQ">https://youtu.be/oOiwcN6DAwQ</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK3129.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Defense against the dark (cloud) arts: Azure security deep dive</strong>
<ul>
 	<li>Session covers the Microsoft Azure Cloud Security Platform.
<ul>
 	<li>Fantastic demos of a hack in progress, and how its mitigated.</li>
 	<li>Shows how to use Azure security center to create security policy for patching and protection</li>
 	<li>Shows how to leverage Office 365 Security and Compliance Center</li>
</ul>
</li>
 	<li><a href="https://youtu.be/avW67hLSOEQ">https://youtu.be/avW67hLSOEQ</a></li>
 	<li><a href="https://onedrive.live.com/embed?cid=47E22AC086D61230&amp;resid=47E22AC086D61230%212148&amp;authkey=AMZ7_vDS-chZKWc&amp;em=2">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Deploying and Managing Skype Room Systems and Microsoft certified devices</strong>
<ul>
 	<li>This in-depth session also walks through the details of how to properly set up your overall environment.
<ul>
 	<li>Also discussed specifics on tuning the room, and sizing the proper solution</li>
</ul>
</li>
 	<li><a href="https://youtu.be/yJln8gSbNvo">https://youtu.be/yJln8gSbNvo</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK3038.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Build your personalized and social intranet with SharePoint, Yammer, Delve, OneDrive and Teams</strong>
<ul>
 	<li>Hear how other companies built their intelligent intranets and learn how to use capabilities of SharePoint, OneDrive, Office Delve, Yammer, Microsoft Teams to create cohesive experiences.
<ul>
 	<li>Hub sites, themes and site design</li>
 	<li>Biz Apps, Flow integration to pipe data into pages</li>
 	<li>Story from Rick Garcia, United Airlines - Building 2016 on-prem farm, upgrading from SP 2010.</li>
 	<li>Story from Brian Duke, Thermo Fisher - Building new intranet</li>
 	<li>Story from Greg Nemeth, EY - Business transformation, vision for 2020 and beyond</li>
</ul>
</li>
 	<li><a href="https://youtu.be/N2V8L4U5cCs">https://youtu.be/N2V8L4U5cCs</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK2185.PPTX">Slide Deck</a></li>
</ul>
</li>
 	<li><strong>Case of the unexplained: Windows troubleshooting with Mark Russinovich</strong>
<ul>
 	<li>Finally, always a favorite of mine. In this session, see case studies on how to resolve system and application issues using the Systernals tools.
<ul>
 	<li>Uses the following tools: Process Explorer, Process Monitor, and Windows Debugger.</li>
</ul>
</li>
 	<li><a href="https://youtu.be/qouxznNC2XU">https://youtu.be/qouxznNC2XU</a></li>
 	<li><a href="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2F8gportalvhdsf9v440s15hrt.blob.core.windows.net%2Fignite2017%2Fsession-presentations%2FBRK4007.PPTX">Slide Deck</a></li>
</ul>
</li>
</ul>
<p style="margin: 0in; font-family: Calibri; font-size: 11.0pt;">List of the other sessions I had interest in, but couldn't make it.</p>

<ul>
 	<li>Anti-phishing with Office 365 Advanced Threat Protection</li>
 	<li>Azure hold'em DevOps</li>
 	<li>Azure Networking inside and out</li>
 	<li>Build a modern intranet: Real-world planning, information architecture, governance, and adoption</li>
 	<li>Build your personalized and social intranet with SharePoint, Yammer, Delve, OneDrive and Teams</li>
 	<li>Continuous delivery on Microsoft Azure using Visual Studio Team Services</li>
 	<li>Datacenter transformation – a roadmap for platforms, processes, and people</li>
 	<li>Deep-dive: Azure Active Directory Authentication and Single-Sign-On</li>
 	<li>Empower IT and developer productivity with Microsoft Azure</li>
 	<li>Expert-level Windows 10 deployment</li>
 	<li>Inside Exchange Online</li>
 	<li>Inside Microsoft Azure datacenter hardware and software architecture with Mark Russinovich</li>
 	<li>Learn best practices for SharePoint site owners</li>
 	<li>Manage SharePoint and OneDrive in Office 365: A field guide for administrators</li>
 	<li>Microsoft System Center 2016 in action: Customer use cases to implement today</li>
 	<li>Microsoft Azure and Office 365 together: The modern business development platform</li>
 	<li>Learn about our vision and upcoming innovations for Microsoft Remote Desktop Services</li>
 	<li>Locking down access to the Azure Cloud using SSO, Roles Based Access Control, and Conditional Access</li>
 	<li>Implement best practices with Office 365 Groups</li>
 	<li>The secrets to getting the best experience out of SharePoint Online</li>
 	<li>The Sysinternals tools make you better at your job</li>
</ul>
And with that, we have reached the end of this series. I hope you have enjoyed reading this blog series as much as I enjoyed creating it for you.

If you want to read any of the other posts in the series, check them out below:

<a href="https://chrisbmn.com/blog/2017/04/microsoft-ignite-2017-journey-of-an-it-guy-episode-1/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 1</a>

<a href="https://chrisbmn.com/blog/2017/05/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 2</a>

<a href="https://chrisbmn.com/blog/2017/06/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 3</a>

<a href="https://chrisbmn.com/blog/2017/07/microsoft-ignite-2017-journey-of-an-it-guy-episode-4/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 4</a>

<a href="https://chrisbmn.com/blog/2017/08/microsoft-ignite-2017-journey-of-an-it-guy-episode-5/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 5</a>

Do you have any questions? Anything you feel I missed?  Tell me about it in the comments below.

&nbsp;]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy – Episode 5</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-5/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-5/</guid>
      <pubDate>Thu, 24 Aug 2017 08:46:20 -0500</pubDate>
      <description><![CDATA[Hello and welcome back to episode 5 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept…]]></description>
      <content:encoded><![CDATA[Hello and welcome back to episode 5 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept. 25th – Sept 29th. <span style="text-align: left; color: #666666; text-indent: 0px; letter-spacing: normal; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: 500; float: none; background-color: #ffffff;">As you will recall from<span class="Apple-converted-space"> </span></span><a href="https://chrisbmn.com/blog/2017/07/microsoft-ignite-2017-journey-of-an-it-guy-episode-4/">episode four</a><span style="text-align: left; color: #666666; text-indent: 0px; letter-spacing: normal; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: 500; float: none; background-color: #ffffff;">, we explored places to eat around the conference center venue. In this month’s episode, and as promised, we will be covering the session catalog, and scheduler.
</span>

With that out of the way, lets get started.
<h2>What is the session catalog?</h2>
The session catalog is a listing of all of the sessions/topics you can attend while at the Microsoft Ignite conference. You can find the <a href="https://myignite.microsoft.com/sessions">session catalog here</a>.

<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/11/sessioncatalog-300x202.png" alt="" width="300" height="202" class="aligncenter size-medium wp-image-503">

As you can see from the above screenshot, there are currently 1,130 sessions in the catalog. Think of these "sessions", as open discussions on topics, where both Microsoft engineers, and distinguished guests/volunteers will cover topics ranging from the very basic to the very deep in the weeds.

These sessions could be delivered in the following formats:
<ol>
 	<li>Open forum Q/A, where the presenter launches the topic, and essentially asks for the participants to ask questions.</li>
 	<li>Presentation style, where the presenter simply talks about the session topic and may or may not take questions</li>
 	<li>A guest panel. A panel is when 2 or more experts on the topic, will round table discuss their experience with the topic, and usually do Q/A with the attendees.</li>
</ol>
<h2>What is the session builder/scheduler?</h2>
The session builder is a web based tool, located on the <a href="https://myignite.microsoft.com">myignite portal</a>, that is used for you to plan out what sessions you intend to attend. Essentially, you will add sessions you are interested in, and it will create an agenda of topics to attend while at the conference. Once you have completed your agenda, you'll be able to export your schedule to your calendar and/or print it out
<div class="itemBody holder"> The session builder is located at the same URL for the session catalog. If you login with the account you used to register for Microsoft Ignite, you will now notice that you have a button to add sessions to your schedule.</div>
<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/11/sessionbuilder-300x218.png" alt="" width="300" height="218" class="aligncenter size-medium wp-image-504">

&nbsp;
<h2>How do I use the session builder?</h2>
Using the scheduler is easy. Simply find the sessions you want to attend, and click the button "Add to Schedule". After you have added all of the sessions you are interested in, you can preview your agenda by selecting the link in the top navigation bar, and selecting "<strong>My Conference -&gt; My Schedule</strong>"

<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/11/myschedule-300x107.png" alt="" width="300" height="107" class="aligncenter size-medium wp-image-505">

You will be presented with a page that is similar to mine below.

<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/11/my-schedule-300x185.png" alt="" width="300" height="185" class="aligncenter size-medium wp-image-506">

As you can see, I have a lot of overlapping sessions. That's okay. I will pick the sessions I really want to see in person, and any of the other sessions I can't attend, Microsoft will make available for viewing after the conference via the <a href="https://myignite.microsoft.com">myignite website</a>.
<h2>So how do I pick the sessions I want to see?</h2>
The session scheduler has a fantastic search feature. Simply input the terms your interested in in attending. You can search by topic, by presenter, or you can even refine results by using the filters on the left of the search window.

You can see below, I put in "Mark Russinovich" and I can see all of the sessions Mark is presenting in.

<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/11/search_markr-300x168.png" alt="" width="300" height="168" class="aligncenter size-medium wp-image-507">
<h2>So to summarize:</h2>
<ul>
 	<li>The session catalog/builder is located on the <a href="https://myignite.microsoft.com">MyIgnite website</a>.  You can also locate it via the <a href="https://www.microsoft.com/en-us/ignite/">Microsoft Ignite website here</a>.</li>
 	<li>Do you have a question about a specific session, reach out to Microsoft via Twitter <a href="https://twitter.com/MS_Ignite">@MS_Ignite</a>, or use the <a href="https://techcommunity.microsoft.com/t5/Microsoft-Ignite/ct-p/MicrosoftIgnite">Microsoft Tech Communities</a> - These locations are really good at getting back to people with questions about the conference. I asked a question via Twitter, when they were making the session catalog available, and they got back to me within the day. yay!</li>
 	<li>Watch the twitter feed and tech community for opportunities to meet up, and join into small round table discussions.</li>
 	<li>Keep an eye open for opportunities to join focus groups. If you receive an invitation to attend one, I'd highly encourage you to participate! These are great opportunities to ask questions and provide feedback to developers/engineers for a specific product. Its also a great opportunity to network with others.</li>
 	<li>Don't worry about scheduling more than one session per time slot! While you obviously can't be in multiple places at once, you may arrive to find a session room is full, or a session earlier in the day may leave you wanting more info on that topic in the afternoon. After the conference is over, you can always watch the sessions you missed on-demand via the myignite website.</li>
 	<li>Don't worry about gaps in your schedule. You will want to leave time open to participate in Hands-on-Labs, networking with other attendee's, and perusing the expo. Hands-on Labs are fun, self-paced, training, where you can experiment with different Microsoft tools, software, or solutions. You can work them into your schedule around any sessions on your list.</li>
 	<li>Finally - Remember, adding a session or lab to your agenda does not guarantee you a seat in the room. Seating is on a first-come, first-served basis.</li>
</ul>
That's it for now! That was fun! I hope you have enjoyed this series meant to prepare you for the epic journey to Microsoft Ignite. This is the final blog entry until the conclusion of the conference. The next entry will be after I have returned from the Ignite conference, and I will cover all the sessions I attended. So, for now, I'll leave you until the end of Sept.

As before, follow me on Twitter (<a href="https://twitter.com/chrisrbmn" target="_blank" rel="noopener noreferrer">@chrisrbmn</a>), and keep an eye open for my tweets during the conference. I will be tweeting any Microsoft Ignite 2017 content, making daily updates, including but not limited to the keynote speech, along with any sessions I attend.

Do you have any questions? Anything you want me to add to the series? Tell me about it in the comments below.]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy – Episode 4</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-4/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-4/</guid>
      <pubDate>Mon, 24 Jul 2017 08:36:11 -0500</pubDate>
      <description><![CDATA[Hello and welcome back to episode 4 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept…]]></description>
      <content:encoded><![CDATA[Hello and welcome back to episode 4 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept. 25th – Sept 29th.

<span style="text-align: left; color: #666666; text-indent: 0px; letter-spacing: normal; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: 500; float: none; background-color: #ffffff;">As you will recall from<span class="Apple-converted-space"> </span></span><a href="https://chrisbmn.com/blog/2017/06/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/">episode three</a><span style="text-align: left; color: #666666; text-indent: 0px; letter-spacing: normal; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: 500; float: none; background-color: #ffffff;">, we explored airfare and travel to/from the conference center to your hotel and the airport. In this month’s episode, I had previously mentioned in <a href="https://chrisbmn.com/blog/2017/06/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/">episode three</a> that we would cover the session catalog. I have had a change of heart in the past month, and thus decided that rules were meant to be broken; So instead of this months episode being all about the session catalog, we will instead discuss the local food in the fine city of Orlando, FL. So, with that out of the way, get back too it!</span>
<h2>Grub</h2>
While I love to eat (Perhaps too much as my wife tells me) - I am not a food expert. I like what I like, and therefore I will give you my opinions on local eats, in the city of Orlando near the Convention Center. Some of these are local restaurants, some are national chains, which you may have tried yourself. I can guarantee all of these selections will at least fill your stomach.

Additionally, keep in mind, that these restaurants are primarily selected for dinner. (As they will be feeding lunch at the conference.)

In looking at restaurant near the convention center, there are hundreds of restaurants to sample. According to <a href="https://www.tripadvisor.com/RestaurantsNear-g34515-d1419838-Orange_County_Convention_Center-Orlando_Florida.html" target="_blank" rel="noopener noreferrer">TripAdviser</a>, there are at least 200 restaurants within 5 miles of conference center.  So for the sake of not making this episode incredibly long, I will briefly cover 5 restaurants within 5 miles of the conference center.  These are all my opinion, and on the bright side, my suggestions will give you at least 1 restaurant to try a day. That is, if you've never been to Orlando before, and are willing to take a chance off a blind recommendation! Heh - you're adventurous aren't you?

One other note -  I'm basing my ratings and pricing off of ratings viewed on <a href="https://www.tripadvisor.com/RestaurantsNear-g34515-d1419838-oa30-Orange_County_Convention_Center-Orlando_Florida.html" target="_blank" rel="noopener noreferrer">TripAdviser</a>, and reviews I gathered off a <a href="https://www.scottjosephorlando.com/restaurants/108-convention_center" target="_blank" rel="noopener noreferrer">local flog (food blog)</a>. So take it or leave it, here are my 5 suggestions. If you have any suggestions of your own, please feel free to share them in the comments below.
<h2>Restaurants Near Microsoft Ignite 2017</h2>
<ol>
 	<li><a href="https://acfp.com/location/orlando-sand-lake/" target="_blank" rel="noopener noreferrer">Anthony's Coal Fired Pizza </a></li>
 	<li><a href="https://fogodechao.com/location/orlando" target="_blank" rel="noopener noreferrer">Fogo De Chao</a></li>
 	<li><a href="http://www.thehiltonorlando.com/dine/spencers/" target="_blank" rel="noopener noreferrer">Spencer's</a></li>
 	<li><a href="https://www.bonefishgrill.com/locations/fl/orlando-central-fl-parkway" target="_blank" rel="noopener noreferrer">Bonefish Grill</a></li>
 	<li><a href="http://www.yardhouse.com/locations/fl/orlando/orlando-i-drive-360/8352" target="_blank" rel="noopener noreferrer">Yard House</a></li>
</ol>
<h3><span style="color: #ff6600;">Anthony's Coal Fired Pizza</span></h3>
<iframe width="600" height="450" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d13146.988044480013!2d-81.4726467241688!3d28.43633036790212!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88e77fa978ec48dd%3A0xa1fb85d24678285d!2sAnthony's+Coal+Fired+Pizza!5e0!3m2!1sen!2sus!4v1500323240684" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
Anthony's is dubbed; "casual chain serving charred-crust pies, wings and subs in a modern setting." According to TripAdviser, the food is a 4.5 out of 5, and expect to spend $10-30 bucks for a pizza pie. <a href="https://acfp.com/location/orlando-sand-lake/" target="_blank" rel="noopener noreferrer">Learn More</a>
<h3><span style="color: #ff6600;">Fogo De Chao</span></h3>
<iframe width="600" height="450" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3508.1188090507458!2d-81.47383194914465!3d28.44583469917055!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88e77e5350a0d697%3A0xf2135e27aa52033!2sFogo+de+Ch%C3%A3o!5e0!3m2!1sen!2sus!4v1500323298317" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
Fogo De Chao, is a Brazilian steak house. Bring your appetite, because you will leave this place absolutely stuffed. Servers (Called Gauchos), circle around your table, and continually fill your plate with different cuts of meat, until you set the colored dial on the table to red (Indication to stop) Word of caution, don't over eat at the salad bar.  According to TripAdviser, the food is a 4.5 out of 5, and I will personally give a thumbs up too. Expect to spend a little more here for a meal. A meal here will set you back $30-60. <a href="https://fogodechao.com/location/orlando" target="_blank" rel="noopener noreferrer">Learn More</a>
<h3><span style="color: #ff6600;">Spencer's</span></h3>
<iframe width="600" height="450" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6865.416700176415!2d-81.4679971263906!3d28.422636504050164!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88e77e39a4f7369b%3A0xb3f9597fe9d38c5b!2sSpencer's+for+Steaks+and+Chops!5e0!3m2!1sen!2sus!4v1500323359057" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
Spencer's is an America Steakhouse nestled into the Hilton Orlando. Expect to bring an appetite, and a wad of cash, as its definitely on the pricier side if you're on a budget. If you can swing it, it is definitely well worth the price. According to TripAdviser, the food is a 4.5 out of 5, and expect to spend $30-60 bucks. <a href="http://www.thehiltonorlando.com/dine/spencers/" target="_blank" rel="noopener noreferrer">Learn More</a>
<h3><span style="color: #ff6600;">Bonefish Grill</span></h3>
<iframe width="600" height="450" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6775.526959058939!2d-81.47009306065887!3d28.411442193542953!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88e77e2b263ef6d5%3A0xf26fefbf7a289666!2sBonefish+Grill!5e0!3m2!1sen!2sus!4v1500323389039" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
Bonefish Grill is an America Seafood restaurant. If you like seafood, you will like Bonefish. Ask for the swordfish, you wont regret it!  According to TripAdviser, the food is a 4.5 out of 5, and expect to spend $10-40 bucks. <a href="https://www.bonefishgrill.com/locations/fl/orlando-central-fl-parkway" target="_blank" rel="noopener noreferrer">Learn More</a>
<h3><span style="color: #ff6600;">Yard House</span></h3>
<iframe width="600" height="450" style="border: 0;" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d4961.383733185169!2d-81.47149483484307!3d28.44254231558775!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88e77e4d638f438d%3A0xe0fbc06ef8ca196f!2sYard+House!5e0!3m2!1sen!2sus!4v1500323410448" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
And to round out the list, The Yard House is the quintessential burger joint. According to TripAdviser, the food is a solid 4 out of 5, and expect to spend $10-30 bucks. <a href="http://www.yardhouse.com/locations/fl/orlando/orlando-i-drive-360/8352" target="_blank" rel="noopener noreferrer">Learn More</a>
<h2>Summary</h2>
That brings us to the end of episode 4! I know, this episode was a little light.. I promise, I'll make it up with our next episode! Only 1 more episode remains prior to the conference. In the next episode, I will cover the conference agenda, the session catalog and the MyIgnite website. Also - Just a reminder, that while episode 5 will be released on August 24th, episode 6 will not actually be released until after the conclusion of the conference. I just don't want you anxiously awaiting my September release on the 24th.. You should be out enjoying all there is to learn at the conference, just like me!

As before, follow me on Twitter (<a href="https://twitter.com/chrisrbmn" target="_blank" rel="noopener noreferrer">@chrisrbmn</a>), and keep an eye open for my tweets during the conference. I will be tweeting any Microsoft Ignite 2017 content, making daily updates, including but not limited to the keynote speech, along with any sessions I attend.

That's it for now! So, for now, I'll leave you until August, 24th.

Do you have any questions? Anything you want me to add to the series? Tell me about it in the comments below.

Check out the rest of the posts in this series:

<a href="https://chrisbmn.com/blog/2017/04/microsoft-ignite-2017-journey-of-an-it-guy-episode-1/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 1</a>

<a href="https://chrisbmn.com/blog/2017/05/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 2</a>

<a href="https://chrisbmn.com/blog/2017/06/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/">Microsoft Ignite 2017: Journey of an IT Guy – Episode 3</a>]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy – Episode 3</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-3/</guid>
      <pubDate>Sat, 24 Jun 2017 08:30:51 -0500</pubDate>
      <description><![CDATA[Hello and welcome back to the 3rd installment of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Ce…]]></description>
      <content:encoded><![CDATA[Hello and welcome back to the 3rd installment of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept. 25th – Sept 29th.

As you will recall from <a href="https://chrisbmn.com/blog/2017/05/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/">episode two</a>, we tackled registration and accommodations. In this month's episode, we will discuss purchasing airfare and transportation to and from the conference center venue. With that out of the way, lets jump right in.

For the sake of this episode, I will assume that most of you are flying in for the entire conference, not including the pre-sessions. Obviously, if you are planning to attend a pre-session, you will want to adjust your dates accordingly. For the rest of us, we will likely be flying into Orlando on Sunday, September 24th, prior to the conference, and staying until Friday September, 29th, which is the last day.
<h2>Purchasing Airline Tickets for Microsoft Ignite 2017</h2>
Interestingly, most people I discuss travel with make airfare their top priority, and always rush to purchase airline tickets. I believe most people feel the common theme to purchasing airfare is synonymous with the adage, "the early bird gets the worm". Meaning, the earlier you buy tickets the cheaper the tickets are. While this may have some truth to it, I have often found the sweet spot for airfare to be somewhere between 2-3 months out from your anticipated travel date, and for some odd reason, Tuesday's and Wednesday's always appear to be the days that airlines drop prices on tickets.

The reality is that airline ticket prices fluctuate from month to month. You should expect to budget $500 for a base economy round trip airfare.. Depending on the carrier you settle with, and any upgrades you may require, this price can increase further, especially when they add in taxes, etc.  There are several app's such as <a href="https://www.hipmunk.com/" target="_blank" rel="noopener noreferrer">hipmunk</a>, or <a href="http://www.hopper.com/" target="_blank" rel="noopener noreferrer">hopper</a>, which actually track airfare price changes on your behalf, and can send you notification, when the prices are at their lowest. I personally use <a href="http://www.hopper.com/" target="_blank" rel="noopener noreferrer">hopper</a>, as I find its interface to be easy on the eyes, and very intuitive.

I am very much a "less is more" kind of guy, as I remember back (dating myself here) to when airlines checked our bags for free, gave us a drink, and a snack/meal, at no additional cost. So when I fly today, I always eat early, arrive to the airport early (at least 2 hours), and only buy a beverage or snack in the terminal, prior to boarding the plane, because I prefer to not pay any more for services on the plane, which I still feel should be included at no cost. Anyways, I digress.

If you are checking a bag, expect to pay anywhere from $20 - $75 per bag, depending on its weight. If you are planning to carry on, make sure to check the airlines website, to get the bag's maximum dimensions allowed for carry on. Almost all the airlines allow 1 carry on bag, and 1 personal item. (such as a backpack, or a purse.), anymore, and expect to pay either a fee for the carry on, or the airline may require you to check the bag.

Depending on how you feel about traveling through security, you may want to consider <a href="https://www.clearme.com/home" target="_blank" rel="noopener noreferrer">CLEAR</a>, or <a href="https://www.tsa.gov/precheck" target="_blank" rel="noopener noreferrer">TSA PreCheck</a>. CLEAR and TSA PreCheck are expedited security screening programs, and work to expedite the security screening process, by registering and paying a fee. CLEAR, uses bio-metrics to verify your identity, and after you are authenticated you are allowed to use the TSA PreCheck line through security. On the other hand, TSA PreCheck allows you to preregister, complete a background check, provide fingerprints and after complete, you will receive a Known Traveler Number (KTN). This KTN can be including on your profile for any airlines, and it will be printed directly on your boarding pass. This allows you to receive expedited service via the TSA PreCheck line for any flights that participate.

The cost for each of these services is:
<ul>
 	<li><a href="https://www.clearme.com/home" target="_blank" rel="noopener noreferrer">CLEAR</a> - $179 annually.</li>
 	<li><a href="https://www.tsa.gov/precheck" target="_blank" rel="noopener noreferrer">TSA PreCheck</a> - $85 and is good for 5 years.</li>
</ul>
<strong>Additional Note</strong> - While PreCheck is often a savior and provides expedited service through security, keep in mind, anyone for any reason can be selected for further screening, so plan accordingly, and always expect the unexpected.
<h2>Transportation</h2>
Finally in this episode, lets briefly discuss transportation. Depending on your plans, and what you intend to see/do while in the Orlando area, you may or may not be interesting in renting a car to adventure around the city. If you do rent a car, expect to pay at least $300 for the week depending on who you use, and I would encourage you to prepay for the tolls as they quickly add up while driving around the city. If you are comfortable stopping for gas prior to returning the car, you will save a substantial amount over pre-paying for fuel. There are several gas stations within 10 miles of the airport, so finding a gas station prior to returning the rental, shouldn't be a problem. <em>Just don't forget to fill up prior to returning the rental car, as they will slap you with a pretty hefty penalty for not returning the rental car with a full tank of gas.</em>
<h3><span style="color: #ff6600;">Airport</span></h3>
It will take approximately 20 minutes to drive from the Airport to the Convention Center. All attendee's are responsible for their own transportation to/from the Airport to their Hotel. For information on ground transportation options to and from the Orlando International Airport, <a href="https://www.orlandoairports.net/parking-transportation/" target="_blank" rel="noopener noreferrer">click here</a>.
<h3><span style="color: #ff6600;">Convention Center</span></h3>
If you booked your hotel via the Microsoft Ignite registration system as I highly encouraged you to do in <a href="https://chrisbmn.com/blog/2017/05/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/">Episode 2</a>, you will be provided shuttle service between your hotel and the convention center. If not, and if you are not booked at one of the hotels listed on the <a href="https://www.microsoft.com/en-us/ignite/pricing" target="_blank" rel="noopener noreferrer">MS Ignite Pricing page</a>, you will likely need to either rent a car, or pay for taxi service to and from your hotel to the convention center.
<h2>Summary</h2>
So we've come to the end of episode three! We are half way to Microsoft Ignite! Wow, that was an adventure! So, for now, I'll leave you until July, 24th. In the forth episode I plan to devote the discussion to the session catalog, and planning your agenda.

As before, follow me on Twitter (<a href="https://twitter.com/chrisrbmn" target="_blank" rel="noopener noreferrer">@chrisrbmn</a>), and keep an eye open for my tweets during the conference. I will be tweeting any Microsoft Ignite 2017 content, making daily updates, including but not limited to the keynote speech, along with any sessions I attend.

Do you have any questions? Anything you want me to add to the series? Tell me about it in the comments below.]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy - Episode 2</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-2/</guid>
      <pubDate>Wed, 24 May 2017 08:27:21 -0500</pubDate>
      <description><![CDATA[Hello and welcome back to episode 2 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept…]]></description>
      <content:encoded><![CDATA[Hello and welcome back to episode 2 of my 6 part series, where I explore the epic journey to Microsoft Ignite 2017, down in Orlando, FL at the Orange County Convention Center, Sept. 25th – Sept 29th.

Now begins the journey to make sure you have started/completed all of the following:
<ul>
 	<li>Registration and costs to the conference</li>
 	<li>Accommodations</li>
 	<li>Airfare</li>
 	<li>Transportation to/from you hotel</li>
 	<li>Food (Yes, you will need to eat)</li>
</ul>
I'll take each of these, and break these out into their own discussion. Some of these we can tackle up front, others you may want to hold off on for now. Don't worry, I'll hold your hand the entire way...
<h2>Microsoft Ignite 2017 Costs and Opportunities</h2>
At this point, maybe you have registered/purchased your tickets to the conference via the <a href="https://register.ignite.microsoft.com/">Register URL.</a> Fantastic, good for you. You're all done, and I will see you there!  Skip right down to the Accommodations section.

What if you haven't? What should you select? Ohh, all the decisions. What you select largely depends on what you are looking to get out of the conference. Ignite offers all types of pre-day training opportunities, a test center, and a variety of different add-on / day to day passes for all aspects of attendance. Microsoft Ignite 2017 costs vary depending on what you are looking for.
<h4><span style="color: #ff6600;">Full Conference Pass - $2,220</span></h4>
So, lets say you want to attend the full conference for the week, and nothing more. Easy peasy. You want the "Full Conference Pass"; Select this during the registration, drop the $2220, and the hard work is done.
<h4><span style="color: #ff6600;">Convenience Pass - $490</span></h4>
What are these other selections though? Well, its pretty simple. The Convenience pass, gives you accommodations to the stay at the hotel that is directly connected to the conference center. It will cost ya an extra $490 dollars.
<h4><span style="color: #ff6600;">Women in Tech Pre-Day Session - $199</span></h4>
Are you a woman looking to patent something, or seeking assistance getting your business off the ground? Maybe you'd be interested in the Women in Tech Pre-Day session designed to assist you with your business ventures. This session takes place on Sunday the 24th, and will set you back $199.
<h4><span style="color: #ff6600;">Pre-day Training - $500</span></h4>
Are you seeking some additional hands on specialized training directly from the experts who created it? Sign up for Pre-day training, and select what you'd like to specifically cover. This training also takes place on Sunday the 24th, and will set you back $500 dollars.
<h4><span style="color: #ff6600;">Discounts</span></h4>
Looking to buy in bulk? Get a discount for buying 10 or more passes. Are you a student and academic faculty, you also qualify for discounted passes. Yay for school!
<h4><span style="color: #ff6600;">Single-Day Pass - $350 / Sessions and Expo Pass - $500</span></h4>
There are also single-day passes, which offer access to either the expo alone, or sessions and expo, each on a day by day basis. These are $350 and $500 per day respectively.
<h2>Accommodations</h2>
First and foremost, you're going to want to secure a hotel room that is reasonably close to the Orange County Convention Center, and you will want to do this as soon as possible. These rooms sell out fast, and by fast, I mean like grease-lightning fast. Trust me, do not wait until a month or less to book a hotel. You will likely find that everything within 25 miles of the conference is sold out, and you may be driving in from a far away suburb. Take it from me, book early! You can wait on everything else, but book your hotel first.

Even better, book while registering for the conference! Microsoft has made it so easy to book accommodations to their conferences during the registration process. During the registration, you will be given an opportunity to book a hotel at the time of registration. I highly encourage you to do so. All the cool kids are doing it now, and so can you. I commend Microsoft for this. It makes it so much easier to book the conference and the accommodations at the same time, and takes a tremendous amount of burden off from you the attendee to try and find the best hotel in proximity to the venue. All the hotels they list are convenient to the venue, and you can be almost guaranteed that if Microsoft is listing it, they will have free bus/shuttle service to and from the conference. ANOTHER WIN!
<h2>To Recap</h2>
View the pre-conference and conference offerings, and decide what best fit your needs and budget. If you have opportunity, book accommodations at the same time you register for the conference. If you cannot: BOOK IT as soon as you have approval to do so.

So, we've come to the end of episode two of my six part blog series! I hope you've gained some new information. So, for now, I'll leave you until June, 24th.

As before, follow me on Twitter (<a href="https://twitter.com/chrisrbmn" target="_blank" rel="noopener noreferrer">@chrisrbmn</a>), and keep an eye open for my tweets both before and during the conference. I will be tweeting any Microsoft Ignite 2017 content, making daily updates, including but not limited to the keynote speech, along with any sessions I attend.

Do you have any comments or questions? Anything you want me to cover, or you feel I missed and want me to add to the series? Tell me about it in the comments below.]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>Microsoft Ignite 2017: Journey of an IT Guy - Episode 1</title>
      <link>https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-1/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/microsoft-ignite-2017-journey-of-an-it-guy-episode-1/</guid>
      <pubDate>Mon, 24 Apr 2017 06:22:49 -0500</pubDate>
      <description><![CDATA[Good morning, good afternoon, good evening fellow blog readers, IT admins, DEVs and Intertech enthusiast!

Are you or any of your fine fellow IT experts excited and prepped to atte…]]></description>
      <content:encoded><![CDATA[Good morning, good afternoon, good evening fellow blog readers, IT admins, DEVs and Intertech enthusiast!

Are you or any of your fine fellow IT experts excited and prepped to attend the <a href="https://ignite.microsoft.com/" target="_blank" rel="noopener noreferrer">Microsoft Ignite 2017 conference</a> but don't know what to do? or how to do it? Have you ever been to a conference? Well, look no further, because I have all you need right here.

Hello, my name is Chris Budde, and I am the Principal Engineer at <a href="https://www.intertech.com/" target="_blank" rel="noopener noreferrer">Intertech</a> in Eagan, MN. I have been working in the IT industry for 17 years now, and this will be my 3rd attendance to a Microsoft Ignite Conference. 5th conference in total.

This little gem here is my first episode of six monthly blog posts detailing my journey to Microsoft Ignite 2017 this year in Orlando, Florida. The conference is set to occur this year, Sept. 25th - Sept 29th down at the Orange County Convention Center.
<h2>The Purpose of this Series</h2>
The purpose of my Journey of an IT Guy series will be to:
<ul>
 	<li>Cover the several months of planning and preparations leading up to the Microsoft Ignite 2017 conference</li>
 	<li>Inform you of the essentials</li>
 	<li>Provide information from the sessions I attended during the conference</li>
</ul>
Don't fret if you're not technical. I do not intend to make these blog post overly in-the-weeds or highly in-depth. I do intend to scratch the surface, explore topics relevant to our company, and look into Cloud and DevOps opportunities which our consultants may find useful in the future.

Where possible, I will do my best to include direct links to Microsoft Ignite 2017 content, references to any available materials, twitter handles, presenters names, and any other details which I am authorized to share.

I intend to create a new blog post one time a month on or before the 24th of each month for the next 6 months leading up to start of the conference. After that, I'll follow up with a summary of everything I took away after the conference concludes.

Please follow me on Twitter (<a href="https://twitter.com/chrisrbmn" target="_blank" rel="noopener noreferrer">@chrisrbmn</a>), and keep an eye open for my tweets during the conference. I will be tweeting any Microsoft Ignite 2017 content, making daily updates, including but not limited to the keynote speech, along with any sessions I attend.

I think that's it for now! So, for now, I'll leave you until May 24th.

Do you have any questions? Anything you want me to add to the series? Tell me about it in the comments below.]]></content:encoded>
            <category>Informational</category>
          </item>
        <item>
      <title>SCOM 2016 - Linux Agent Deployment “Signed certificate verification operation was not successful”</title>
      <link>https://chrisbmn.com/blog/scom-2016-linux-agent-deployment-signed-certificate-verification-operation-was-not-successful/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/scom-2016-linux-agent-deployment-signed-certificate-verification-operation-was-not-successful/</guid>
      <pubDate>Wed, 18 Jan 2017 13:08:11 -0600</pubDate>
      <description><![CDATA[Today, while trying to add my linux servers to my new SCOM 2016 environment, I ran into an interesting issue.

When deploying the agent to my CentOS 6.8 server, all was going fine,…]]></description>
      <content:encoded><![CDATA[Today, while trying to add my linux servers to my new SCOM 2016 environment, I ran into an interesting issue.

When deploying the agent to my CentOS 6.8 server, all was going fine, then suddenly *holy drama!* - the agent install fails, indicating "The SSL certificate could not be checked for revocation"
When clicking the details link, this is what is shown:
<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/01/centos_details-300x233.png" alt="" width="300" height="233" class="aligncenter size-medium wp-image-459" />

SCOM uses ssl to communicate via between the management server and the monitored system/server/client, etc. The problem I faced is that the server has a host name set to SERVER.DOMAIN-COOL.COM, and in order to authenticate successfully the HOSTNAME name MUST match the FQDN (fully qualified domain name) of the name that is resolved by SCOM. i.e. SERVER.DOMAIN.COM. 

If you are facing this scenario and your UNIX/Linux server has a different hostname then what is in DNS you have two choices. Either you change the hostname on your server, which may or may not be an option, or you create a new certificate with the FQDN hostname and private key without touching the server name at all using the <strong>scxsslconfig</strong> tool. I decided to perform the latter. Just open the a shell and run…
 
<pre class="lang:sh decode:true " >/opt/microsoft/scx/bin/tools/scxsslconfig –h server –d domain.com -f –v</pre> 

After executing the command, make sure to restart the agent.

<pre class="lang:sh decode:true " >/opt/microsoft/scx/bin/tools/scxadmin –restart</pre> 

After the service is restarted head back to your SCOM console, and attempt to manage the linux server again.
This time it will complete successfully.

<img src="https://chrisbmn.com/blog/wp-content/uploads/2017/01/centos_success-300x276.png" alt="" width="300" height="276" class="aligncenter size-medium wp-image-460" />]]></content:encoded>
            <category>Troubleshooting</category>
          </item>
    
  </channel>
</rss>
