<?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 — Tutorials</title>
    <link>https://chrisbmn.com/blog/category/tutorials/</link>
    <description>Tutorials are step-by-step on how to do something. We try to walk though in plain English with pictures (when possible) on how to accomplish or set something up.</description>
    <language>en-us</language>
    <lastBuildDate>Mon, 24 Aug 2026 04:12:41 -0500</lastBuildDate>
    <generator>chrisbmn custom blog</generator>
    <atom:link href="https://chrisbmn.com/blog/rss/tutorials/" rel="self" type="application/rss+xml"/>

        <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>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>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>Bulk remove non-English Management Packs from OpsMgr 2012R2</title>
      <link>https://chrisbmn.com/blog/bulk-remove-non-english-management-packs-from-opsmgr-2012r2/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/bulk-remove-non-english-management-packs-from-opsmgr-2012r2/</guid>
      <pubDate>Thu, 23 Jun 2016 11:19:45 -0500</pubDate>
      <description><![CDATA[I've been taking some time to learn some of the System Center tools, and recently I've installed an Operations Manager (SCOM) instance to use for monitoring in my environment.

Bei…]]></description>
      <content:encoded><![CDATA[I've been taking some time to learn some of the System Center tools, and recently I've installed an Operations Manager (SCOM) instance to use for monitoring in my environment.

Being the numb-skull I am, the first task I took it to myself to complete, was to download some management packs. Well, if your a veteran to this, you're probably saying, "what a dummy" he downloaded the entire group.. and I reply to you, "yep", I sure did.

If you don't know, or are not acquainted with what I am talking about, while importing management packs, under each of the group headings, could be dozens or more, of sub-packs, which may or may not be English.

Still no idea, here, let me share a picture.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2016/06/managepacks-300x135.png" alt="Management Packs" width="300" height="135" class="aligncenter size-medium wp-image-442" />

As you can see, these are organized by product, and then further organized, so on and so forth..
Like the big dummy I am, I selected the headers for each of the top level items I was interested in, which left me with hundreds of non-English management packs installed into my console.

Removing these from the GUI, can only be accomplished 1 at a time! *groan*

Here comes PowerShell to save the day!!
With a quick command, you can quickly remove all of those management packs not in your native language.
<img src="https://chrisbmn.com/blog/wp-content/uploads/2016/06/managepowershell-300x56.png" alt="managepowershell" width="300" height="56" class="aligncenter size-medium wp-image-443" />
 
<pre class="lang:ps decode:true " >Get-SCOMManagementPack | where{$_.defaultlanguagecode -notlike “ENU”} | Remove-SCOMManagementPack</pre> 

I will take a moment to CAUTION you on the usage of this command: Do not use this in a production environment without fully insuring that this command is correctly entered. If done incorrectly, it could remove all management packs from the environment! YIKES! 
Consider yourself warned!]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Add or Remove E-mail Aliases in On-Premises Active Directory – Office 365</title>
      <link>https://chrisbmn.com/blog/add-or-remove-e-mail-aliases-in-on-premises-active-directory-office-365/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/add-or-remove-e-mail-aliases-in-on-premises-active-directory-office-365/</guid>
      <pubDate>Thu, 21 Jan 2016 15:15:35 -0600</pubDate>
      <description><![CDATA[If you are synchronising your Office 365 account with your on-premises Active Directory environment, you will know that you cannot edit exchange user properties using the Office 36…]]></description>
      <content:encoded><![CDATA[If you are synchronising your Office 365 account with your on-premises Active Directory environment, you will know that you cannot edit exchange user properties using the Office 365 administrator portal.

If you try, you will come across this error or a similar one:
<img src="https://chrisbmn.com/blog/wp-content/uploads/2016/01/sync_error-300x226.png" alt="sync_error" width="300" height="226" class="aligncenter size-medium wp-image-419" />
In this post, I'm going to show you how to add e-mail aliases using the Active Directory User and Computers snapin.

Before we begin, make sure that you have the advanced options enabled from the view menu in ADUC.
<ul>
	<li>With ADUC open, select view, and then check the box next to "Advanced Features"
<img src="https://chrisbmn.com/blog/wp-content/uploads/2016/01/advancedFeatures-300x177.png" alt="advancedFeatures" width="300" height="177" class="aligncenter size-medium wp-image-420" /></li>
</ul>

Now, with that out of the way...
<ol>
	<li>Select the user you wish to add an Alias for > Right click the name, and select properties.</li>
	<li>Now, Remember that advanced features check box I mentioned above, because we selected that, you will now see a tab called, "Attribute Editor". If you don't see this tab, go back and check the box for "Advanced Features", and then kick yourself, for not paying attention.</li>
	<li>Find the variable proxyAddresses – this is the one you want to edit.<br />
 When you add new e-mail aliases, you want to make sure that your primary e-mail address will start with upper-case <strong>SMTP</strong>. Your aliases, aka, secondary addresses should be lower-case smtp.For example, I want my primary e-mail address to be chrisisawesome@example.com
 In the proxyAddresses attribute, I would put:
 SMTP:chrisisawesome@example.com
 As my alias, I want chrisrox@example.com… to do this, I will use lower case smtp:
 smtp:chrisrox@example.com</li>
	<li>Apply the new settings, and click OK</li>
	<li>Wait patiently for your active directory to be synchronised with Office 365 (by default this happens every 3 hours but you can force this with a bit of research. - We'll leave that for another article,<a href="https://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnect/" target="_blank" rel="noopener noreferrer"> here's a link to the new ADSync tool</a>)]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>How to perform manual sync with the new Azure AD Connect.</title>
      <link>https://chrisbmn.com/blog/how-to-perform-manual-sync-with-the-new-azure-ad-connect/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/how-to-perform-manual-sync-with-the-new-azure-ad-connect/</guid>
      <pubDate>Wed, 04 Nov 2015 09:57:39 -0600</pubDate>
      <description><![CDATA[On occasion, it may be required of you to force a sync between your local AD environment and your MS Azure / Office 365 environment. By default, this value is about 3 hours. For wh…]]></description>
      <content:encoded><![CDATA[On occasion, it may be required of you to force a sync between your local AD environment and your MS Azure / Office 365 environment. By default, this value is about 3 hours. For whatever reason, you need to make a change to a user object, you may need to perform this sync so they can utilize the services.

This command is very simple to execute.
<ol>
	<li>Open an elevated Windows Azure AD Module for Powershell window.</li>
	<li>Navigate to the "C:\Program Files\Microsoft Azure AD Sync\bin" folder.</li>
	<li>Run either the .\DirectorySyncSlientCmd.exe with either the Initial or Delta argument.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/11/azure1.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/11/azure1-300x26.png" alt="azure1" width="300" height="26" class="aligncenter size-medium wp-image-410" /></a></li>
</ol>

For a detailed explanation of the arguments, check out the source article links at the bottom.]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Installing VMware Tools the right way on CentOS 6.7!</title>
      <link>https://chrisbmn.com/blog/installing-vmware-tools-the-right-way-on-centos-6-7/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/installing-vmware-tools-the-right-way-on-centos-6-7/</guid>
      <pubDate>Wed, 16 Sep 2015 08:06:19 -0500</pubDate>
      <description><![CDATA[For CentOS, I recommend following the VMware Tools Installation Guide for Operating System Specific Packages to get your VMware Tools instead of just running it from vSphere Client…]]></description>
      <content:encoded><![CDATA[For CentOS, I recommend following the <a href="http://packages.vmware.com/tools/docs/manuals/osp-esxi-51-install-guide.pdf" target="_blank" rel="noopener noreferrer">VMware Tools Installation Guide for Operating System Specific Packages</a> to get your VMware Tools instead of just running it from vSphere Client. Why you ask? Well, because in following this setup routine, you can template your VM, and not have to manually install the vmware client everytime you create a new machine, and it updates easily with yum package manager. How's that for an answer?

<ol>
	<li>So the first thing we need to do, is grab a few prerequisites.
 
<pre class="lang:sh decode:true " >yum install wget sudo vim system-config-network-tui kernel-headers ntp perl gcc make unzip -y</pre> </li>

	<li>Second we need to grab the public keys from VMware, here's a link to their keys. <a href="http://packages.vmware.com/tools/keys">http://packages.vmware.com/tools/keys</a></li>
	<li>Import the keys (I put mine in a folder in tmp, /tmp/vmware):
 
<pre class="lang:sh decode:true " >rpm --import /key_path/key_name</pre></li>
	<li>Now, we'll create a repository file. Navigate or create the file at: <em>/etc/yum.repos.d/vmware-tools.repo</em>  - You can name it whatever you want, as long as its meaningful to you. </li>
	<li>Add the following content to the file:
 
<pre class="lang:sh decode:true " >[vmware-tools]
name=VMware Tools
baseurl=http://packages.vmware.com/tools/esx/5.5u2/rhel6/x86_64
enabled=1
gpgcheck=1</pre> 
<strong>NOTE</strong> - Keep in mind, I am doing this on a CentOS 6.7 VM, on ESX 5.5 U2, 64bit. If you are using a different flavor, you'll need to adjust for your version. Refer to the <a href="http://packages.vmware.com/tools/docs/manuals/osp-esxi-51-install-guide.pdf" target="_blank" rel="noopener noreferrer">VMware Tools Installation Guide for Operating System Specific Packages</a> for more information.
</li>
	<li>Now, its just a matter of running the following command:
 
<pre class="lang:sh decode:true " >yum install vmware-tools-esx-kmods vmware-tools-esx</pre> 
</li>
	<li>After the installation completes, <strong>reboot</strong>.</li>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Enable the Server Graphic Shell on Server 2016 TP2</title>
      <link>https://chrisbmn.com/blog/enable-the-server-graphic-shell-on-server-2016-tp2/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/enable-the-server-graphic-shell-on-server-2016-tp2/</guid>
      <pubDate>Tue, 30 Jun 2015 13:51:30 -0500</pubDate>
      <description><![CDATA[So back in early May 2015, (I know, like it was sooo long ago..) during the MS Ignite Conference, Microsoft released Technical Preview 2 for Server 2016.

https://www.microsoft.com…]]></description>
      <content:encoded><![CDATA[So back in early May 2015, (I know, like it was sooo long ago..) during the MS Ignite Conference, Microsoft released Technical Preview 2 for Server 2016.

<a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview">https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview</a> 

The installation, regardless of what you select, only installs the CORE installation to reduce the OS footprint and minimize the security impact. 
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/06/setup.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/06/setup-300x225.png" alt="setup" width="300" height="225" class="alignnone size-medium wp-image-387" /></a>
But what if you want the GUI? You can enable the GUI or (Server Graphics Shell) from within Server Manager. See, I already learned-ya something new today!
I will show you how below.

<ul>
	<li>Navigate to Add Roles and Features Wizard, 
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/06/addroles.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/06/addroles-300x114.png" alt="addroles" width="300" height="114" class="alignnone size-medium wp-image-388" /></a></li>

	<li>Select Features and under "User Interfaces and Infrastructure", check Server Graphical Shell.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/06/graphicshell.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/06/graphicshell-300x213.png" alt="graphicshell" width="300" height="213" class="alignnone size-medium wp-image-389" /></a></li>

	<li>Confirm the installation, and reboot if desired.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/06/confirm.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/06/confirm-300x212.png" alt="confirm" width="300" height="212" class="alignnone size-medium wp-image-390" /></a></li>

	<li>After a reboot, look at that pretty UI! Yay!
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/06/desktop.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/06/desktop-300x198.png" alt="desktop" width="300" height="198" class="alignnone size-medium wp-image-391" /></a></li>
</ul>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Setting the default domain for vCenter SSO</title>
      <link>https://chrisbmn.com/blog/setting-the-default-domain-for-vcenter-sso/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/setting-the-default-domain-for-vcenter-sso/</guid>
      <pubDate>Thu, 16 Apr 2015 08:51:52 -0500</pubDate>
      <description><![CDATA[vCenter Single Sign by default requires the user to specify the domain when they pass their username during authenticate with vCenter.
For Example : MYDOMAIN\USER1 or USER1@MYDOMAI…]]></description>
      <content:encoded><![CDATA[vCenter Single Sign by default requires the user to specify the domain when they pass their username during authenticate with vCenter.
<em>For Example : MYDOMAIN\USER1 or USER1@MYDOMAIN.COM</em>

You can eliminate the need to insert the domain in the user name by following the following steps.

<strong>NOTE</strong> - This has to be done in the WebClient. These options are not available in the desktop client.

<ol>
	<li>Log in to the vSphere Web Client as administrator@vsphere.local or as another user with vCenter Single Sign-On administrator privileges.</li>
	<li>Browse to <strong>Administration > Single Sign-On > Configuration</strong>.<br />
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/administration.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/administration-226x300.png" alt="administration" width="226" height="300" class="alignnone size-medium wp-image-370" /></a> <a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/configuration.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/configuration-189x300.png" alt="configuration" width="189" height="300" class="alignnone size-medium wp-image-371" /></a></li>
	<li>On the <strong>Identity Sources</strong> tab, select an identity source and click the <strong>Set as Default Domain</strong> icon.<br />
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/default.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/default-300x101.png" alt="default" width="300" height="101" class="alignnone size-medium wp-image-372" /></a></li>
</ol>

In the domain display, the default domain shows (default) in the Domain column.

When you login to vCenter now, you can omit the DOMAIN from your username and connect as just <strong>user1</strong>.

These are the exact steps as posted in the <a href="https://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.vsphere.security.doc%2FGUID-11E651EF-4503-43BC-91F1-15502D586DE2.html" title="VMware KB" target="_blank" rel="noopener noreferrer">VMware KB</a>. I added some pretty pictures to assist.]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Boot into safe mode on Windows 8/Server 2012</title>
      <link>https://chrisbmn.com/blog/boot-into-safe-mode-on-windows-8server-2012/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/boot-into-safe-mode-on-windows-8server-2012/</guid>
      <pubDate>Mon, 13 Apr 2015 13:27:27 -0500</pubDate>
      <description><![CDATA[One of the earliest steps in troubleshooting a PC/Server is to boot into safe mode. Be it Last Known Good recovery, to uninstalling a faulty driver, this has simply been achieved b…]]></description>
      <content:encoded><![CDATA[One of the earliest steps in troubleshooting a PC/Server is to boot into safe mode. Be it Last Known Good recovery, to uninstalling a faulty driver, this has simply been achieved by pressing the F8 key. 
This changed with Windows 8 / Windows Server 2012 and its Automatic Repair mode. 
But what if we want Safe Mode?

You can still have Safe Mode, however, it is buried deep into the recovery options. While just mashing the F8 key sometimes works, I have noticed that sometimes, on Dell servers, it now brings you into the LifeCycle Controller. If this is the case, you can still access the recovery options by pressing the Shift+F8 key combination.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/recovery.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/recovery-300x126.png" alt="recovery" width="300" height="126" class="alignnone size-medium wp-image-361" /></a>

Select the "Troubleshoot" Option.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/optino.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/optino-300x294.png" alt="optino" width="300" height="294" class="alignnone size-medium wp-image-362" /></a>

And... Select "Advanced options"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/troubleshoot.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/troubleshoot-300x295.png" alt="troubleshoot" width="300" height="295" class="alignnone size-medium wp-image-363" /></a>

Now, from the Advanced Options menu, choose the "Windows Startup Settings" option.. *How anyone is ever to find this, your guess is as good as mine...
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/advanced.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/advanced-300x176.png" alt="advanced" width="300" height="176" class="alignnone size-medium wp-image-364" /></a>

Finally, Restart.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/restart.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/restart-300x160.png" alt="restart" width="300" height="160" class="alignnone size-medium wp-image-365" /></a>

When your system restarts; Look what I found!! 
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/04/abo.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/04/abo-300x231.png" alt="abo" width="300" height="231" class="alignnone size-medium wp-image-366" /></a>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Disable Windows &quot;Aero Shake&quot; in Windows 8, 8.1</title>
      <link>https://chrisbmn.com/blog/disable-windows-aero-shake-in-windows-8-8-1/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/disable-windows-aero-shake-in-windows-8-8-1/</guid>
      <pubDate>Thu, 22 Jan 2015 08:09:01 -0600</pubDate>
      <description><![CDATA[Aero Shake is a feature that debuted in Windows 7. It allows the user to minimize all of the open windows on the desktop by grabbing and shaking one of the currently open windows. …]]></description>
      <content:encoded><![CDATA[Aero Shake is a feature that debuted in Windows 7. It allows the user to minimize all of the open windows on the desktop by grabbing and shaking one of the currently open windows. Today I came to the realization that this feature is extremely annoying! 
So, if you find it annoying too, here is how to turn it off.

IMPORTANT NOTE - These steps will not work on the "Home Edition" of Windows 8. There is a quick command line entry below, that will accomplish this for you. <strong>** I make no guarantee's of entering registry changes on YOUR computer -- USE AT YOUR OWN RISK! **</strong>

<ul>
	<li>Open the Run box. (Windows key + R key)</li>
	<li>Type <em>gpedit.msc</em> and click <strong>OK</strong> to open the Local Group Policy Editor</li>
	<li>Under User Configuration expand the Desktop folder -- Right click on <em>Turn off Aero Shake windows minimizing mouse gesture</em>, and select <strong>Edit</strong>, then toggle the setting to <strong>Enabled</strong>.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/01/shake.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/01/shake-300x140.png" alt="shake" width="300" height="140" class="alignnone size-medium wp-image-341" /></a></li>

	<li>Close the Local Group Policy Editor. Now you can shake windows until you experience blindness and nothing will happen.</li>

</ul>

<strong>Command Line</strong>

<ul>
	<li>Move the mouse into the lower left corner, right click and select <strong>Command Prompt (Admin)</strong>
<a href="https://chrisbmn.com/blog/wp-content/uploads/2015/01/cmdadmin.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2015/01/cmdadmin-192x300.png" alt="cmdadmin" width="192" height="300" class="alignnone size-medium wp-image-342" /></a></li>
	<li>Type the following command, and press enter : 
 
<pre class="lang:batch decode:true " >reg add hkcu\Software\Policies\Microsoft\Windows\Explorer /v NoWindowMinimizingShortcuts /t REG_DWORD /d 0x1 </pre> </li>
	<li>Reboot the computer and Aero Shake should be disabled.</li>
</ul>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Adding Users To The Local Administrators Group Using Group Policy</title>
      <link>https://chrisbmn.com/blog/adding-users-to-the-local-administrators-group-using-group-policy/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/adding-users-to-the-local-administrators-group-using-group-policy/</guid>
      <pubDate>Wed, 26 Nov 2014 09:04:00 -0600</pubDate>
      <description><![CDATA[Adding users (AD or otherwise) to the local administrators group on multiple computers is simple using Group Policy.  Difficult otherwise. That's because this group is commonly kno…]]></description>
      <content:encoded><![CDATA[Adding users (AD or otherwise) to the local administrators group on multiple computers is simple using Group Policy.  Difficult otherwise. That's because this group is commonly known as a "Restricted Group". When you configure a Restricted Group policy, members of the restricted group that are not on the Members list are removed. Users who are on the Members list who are not currently a member of the restricted group are added. In this post I’ll describe the process to add a member to the restricted group policy.

For this example, I've decided that I will simply create a group, that I can add/remove users from, and I will add that group to the Restricted Group Policy.

<ol>
	<li>Create a Global Security Group, and name it appropriately.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg1.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg1-300x255.png" alt="rg1" width="300" height="255" class="alignnone size-medium wp-image-330" /></a></li>
	<li>Create / Add your user/s to this newly created group.</li>
	<li>Open Group Policy Manager and Create a new group policy object (GPO) and link it to an Organizational Unit (OU).  
</li>
	<li>Open the GPO and navigate to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Restricted Groups.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg2.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg2-300x237.png" alt="rg2" width="300" height="237" class="alignnone size-medium wp-image-331" /></a></li>

	<li>Right click and choose Add Group.  Enter the name of the Active Directory security group you want to add to the local administrators group.  Click "Ok" and on the next screen in the “This group is a member of:” section select "Add".  Enter Administrators to add the group to the local administrators group. Select OK and close the GPO to save changes. NOTE - This process is additive and users and groups that are currently in the local administrators group are unmodified.  
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg3.png"><img src="https://chrisbmn.com/blog/wp-content/uploads/2014/11/rg3-242x300.png" alt="rg3" width="242" height="300" class="alignnone size-medium wp-image-332" /></a>

You can add additional users to the domain group and they will automatically be part of the local administrators group on servers that apply the GPO.

If you want to simply add users to the local administrators group enter Administrators.  In the next window under “Members of this group:” click Add and choose the users to add to the local administrators group.  
NOTE - Any users that are currently in the local administrators group will be removed and replaced with the users you select here.  If that is what you want click OK and close the GPO.
</li>
	<li>Navigate to your test server, opened an administrative command prompt and type  
<pre class="lang:batch decode:true " >gpupdate /force</pre> 
</li>
	<li>If you now navigate to the local groups on the server, you should see that your "Local Admins" group is now in the local "Administrators" Group.</li>
</ol>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Install VMware Tools on CentOS 6.5</title>
      <link>https://chrisbmn.com/blog/install-vmware-tools-on-centos-6-5/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/install-vmware-tools-on-centos-6-5/</guid>
      <pubDate>Thu, 30 Oct 2014 07:53:22 -0500</pubDate>
      <description><![CDATA[This article briefly describes the process of installing the VMWare tools on CentOS 6.5. It is important that you install VMware Tools in the guest operating system because the VM …]]></description>
      <content:encoded><![CDATA[This article briefly describes the process of installing the VMWare tools on CentOS 6.5. It is important that you install VMware Tools in the guest operating system because the VM will have significantly faster performance, time synchronization, and other enhanced features.

Below are the steps to install the VMware Tools on CentOS.

&nbsp;
<ol>
	<li>(OPTIONAL) If needed, install the prerequisite software.
 
<pre class="lang:sh decode:true " >[root@localhost ~]# yum install perl gcc make kernel-headers kernel-devel</pre> 
</li>
	<li>Attach the VMware Tools using the vSphere client.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/10/install_VMware_tools.png"><img class="alignnone size-medium wp-image-315" src="https://chrisbmn.com/blog/wp-content/uploads/2014/10/install_VMware_tools-300x73.png" alt="install_VMware_tools" width="300" height="73" /></a></li>
	<li>Mount and extract the VMware Tools to a temporary location.
<pre class="lang:sh decode:true " >
[root@localhost tmp]# mount /dev/cdrom /mnt
[root@localhost tmp]# cd /mnt
[root@localhost tmp]# mkdir /tmp/vmware
[root@localhost tmp]# tar xzvf VMwareTools-8.3.7-341836.tar.gz -C /tmp/vmware/
</pre></li>
	<li>CD to the directory where the tools were extracted and start the VMware tools install.
<pre class="lang:sh decode:true " >
[root@localhost tmp]# cd vmware
[root@localhost tmp]# ls
VMwareTools-9.4.5-1598834.tar.gz vmware-tools-distrib
[root@localhost tmp]# cd vmware-tools-distrib
[root@localhost vmware-tools-distrib]# ls
bin doc etc FILES INSTALL installer lib vmware-install.pl
[root@localhost vmware-tools-distrib]# ./vmware-install.pl
</pre></li>
	<li>Take all of the defaults, then reboot your VM.</li>
</ol>]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Pass serial port through iDRAC</title>
      <link>https://chrisbmn.com/blog/pass-serial-port-through-idrac/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/pass-serial-port-through-idrac/</guid>
      <pubDate>Fri, 22 Aug 2014 13:38:57 -0500</pubDate>
      <description><![CDATA[Lets say for a minute you're trying to configure your first SAN. Now,&nbsp;lets pretend that first SAN is a Compellent SC8000. Ya know, cause that's what we all learn on.. &nbsp;Yo…]]></description>
      <content:encoded><![CDATA[Lets say for a minute you're trying to configure your first SAN. Now,&nbsp;lets pretend that first SAN is a Compellent SC8000. Ya know, cause that's what we all learn on.. &nbsp;You may then be aware that setting up the first and second controller, is&nbsp;not the easiest configuration task.

Now, lets pretend, you want to set this up at your desk, so you don't have to sit in the cold datacenter, executing terminal commands via DB9 serial..

Has anyone else wanted that??&nbsp; yes, no? maybe it's just me, and i'm getting old.

Whatever the case may be, the purpose of this document, is to show you how to pass the serial connection through&nbsp;the idrac on an&nbsp;Compellent SC8000 controller but this should work on a R720 class Dell PowerEdge server.. (The chassis's are almost identical)

This is a little&nbsp;complicated, but rewarding, so you don't have to sit in the datacenter. ( however - may pose a small security risk, so you decide..)
<h2>Steps:</h2>
There are a few settings we need to make in the BIOS for this to work. (Don't get this confused with the IDRAC settings - you NEED to actually reboot the server and get into the BIOS and make these settings.)

<strong>1.</strong> Reboot the server, and at the DELL splash screen, hit the F2 button to Enter System Setup.
<p style="padding-left: 30px;"><a href="https://chrisbmn.com/blog/wp-content/uploads/2014/08/bios.png"><img class="alignnone size-medium wp-image-293" src="https://chrisbmn.com/blog/wp-content/uploads/2014/08/bios-300x161.png" alt="bios" width="300" height="161"></a></p>
&nbsp;

<strong>2.</strong> Depending on the mood of the chassis, you may enter into a GUI or a Text mode menu where the following settings should be selected.

You enter this menu by selecting at the System Setup Screen, "System BIOS &gt; Serial Communications", then change to the following settings:

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/08/settings.png"><img class="alignnone size-medium wp-image-294" src="https://chrisbmn.com/blog/wp-content/uploads/2014/08/settings-300x185.png" alt="settings" width="300" height="185"></a>

Make note that I am connecting on COM2, and redirecting the serial device from Device 1 to COM2.

*I know, its confusing, but this is how I made it work reliably. I believe there may be an issue with redirection on COM1. Perhaps someone smarter then I has an answer to that.

&nbsp;

<strong>3.</strong> Serial debugging requires one additional setting (also accessed via “F2”) – iDRAC setting below - simply select iDRAC settings vs BIOS settings.
<ul style="color: #000000;">
 	<li>Disable&nbsp;<b><i>IPMI Over LAN</i></b>, in iDRAC configuration, under network settings.</li>
</ul>
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/08/ipmi.png"><img class="alignnone size-medium wp-image-295" src="https://chrisbmn.com/blog/wp-content/uploads/2014/08/ipmi-300x190.png" alt="ipmi" width="300" height="190"></a>

&nbsp;

<span style="color: #000000;"><strong>4.</strong> Once the changes are made, you should be able to connect to the Dell PowerEdge server via a serial port or use console redirection. (meaning we can connect via SSH through the idrac)</span>

So grab putty (or your other favorite terminal program) and ssh into the IP address of your IDRAC.

after you authenticate type "connect"

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/08/connect.png"><img class="alignnone size-medium wp-image-296" src="https://chrisbmn.com/blog/wp-content/uploads/2014/08/connect-300x104.png" alt="connect" width="300" height="104"></a>

after you connect, you will wait a long time while the controller initializes, but after a short while <em>(Up to 5 minutes or longer)</em> you will see the following:

&nbsp;

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/08/purpconsole.png"><img class="alignnone size-medium wp-image-299" src="https://chrisbmn.com/blog/wp-content/uploads/2014/08/purpconsole-300x261.png" alt="purpconsole" width="300" height="261"></a>

&nbsp;]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Install 2012 Active Directory Domain Services</title>
      <link>https://chrisbmn.com/blog/install-2012-active-directory-domain-services/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/install-2012-active-directory-domain-services/</guid>
      <pubDate>Thu, 15 May 2014 14:07:03 -0500</pubDate>
      <description><![CDATA[Hi all, and welcome back to another blog post, by yours-truly!

The purpose of this post, is to outline the deployment of 2012 Active Directory empty root domain, using a single GU…]]></description>
      <content:encoded><![CDATA[Hi all, and welcome back to another blog post, by yours-truly!

The purpose of this post, is to outline the deployment of 2012 Active Directory empty root domain, using a single GUI DC and a single CORE DC. In a future blog, I may build on this and create a separate sub-domain that all domain work would be accomplished from.

This build is based on a <a title="Best Practice Active Directory Design for Managing Windows Networks" href="http://technet.microsoft.com/en-us/library/bb727085.aspx" target="_blank" rel="noopener noreferrer">once Microsoft best practice guide</a>, however, with that being said, this may or may not be true anymore.. <a title="Empty Root place holder – Still a valid design choice?" href="http://markparris.co.uk/2009/12/09/empty-root-place-holder-%E2%80%93-still-a-valid-design-choice/" target="_blank" rel="noopener noreferrer">Mark Parris indicates on his blog</a> in 2009, that several factors have now changed in newer releases of Windows Server, which may or may not make the need for a empty root domain a viable best practice anymore, and you can make your own decision on what fits with your infrastructure needs/requirements.
Just to quote the final paragraph in his blog post:
<blockquote>Microsoft’s official stance is start with a single domain and implement new domains based on your own requirements as necessary, I can find nowhere an official statement stating the fact that the empty root domain is no longer valid; but it is widely accepted in Active Directory circles that having an empty forest root is no longer best practice – this does not mean it is wrong to implement an empty forest root – it just means that it is no longer best practice.</blockquote>
&nbsp;

Essentially, its up to you to determine what's best for your environment, and while having a root domain, and child domain aren't necessarily wrong, (and still widely considered to be best practice), its not necessarily correct either - your individual requirements, and the cost of having the additional servers, and management needed to keep those servers powered, cooled, and updated, will ultimately drive what you need in your environment, and all factors have to be carefully weighed, prior to deploying your AD environment.

With that being said, back to my build. For the sake of my build, like I said, I am building a 2 host root domain, and in a later blog post, I will probably go ahead and add a child domain. (or maybe I'll scrap it all, and just keep it simple stupid)
<h4>Assumptions:</h4>
<ul>
	<li>All server will be deployed using Windows Server 2012 R2 Standard Edition.</li>
	<li>Both of these are currently VMs on VMWare Workstation 10.</li>
	<li>Basic Windows Installation is complete. NO roles or features have been installed.</li>
	<li>The first DC is built as a FULL GUI installation, the 2nd, as a CORE installation.</li>
	<li>Full GUI installation is Named RDC01, and CORE installation is named RDC02.</li>
	<li>Windows Firewall will be disabled on both machines.</li>
	<li>Static IP Addresses are set on both machines.
<ul>
	<li>192.168.127.130 - RDC01</li>
	<li>192.168.127.131 - RDC02</li>
</ul>
</li>
</ul>
&nbsp;
<h4> Installing the 1st Domain Controller</h4>
<h5>High Level View</h5>
As many Windows guys will attest too, on earlier versions of Windows Server (2008 and earlier), it was common to start the Active Directory Installation Wizard with the dcpromo.exe executable on your first DC. Beginning with Windows Server 2012, the installation of Active Directory has been moved to Server Manager. The use of dcpromo.exe is still around (deprecated), however, its only supported for legacy automation, and requires the use of an install file.

The DC promotion process is a two-step procedure. First you need to actually install the files that the domain controller role uses, then you install the domain controller role itself.
<h5>Nuts &amp; Bolts - Installing the Role</h5>
<ol>
	<li> So, we have our firewall disabled, and we have a static IP address set. (If not,do that before proceeding any further)</li>
	<li>Navigate up to the Grey Ribbon, and locate the Manage Link, Select <strong>Add Roles and Features</strong>
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/manage_add_role.png"><img class="wp-image-239" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/manage_add_role-300x265.png" alt="Add Role" width="212" height="187" /></a></li>
	<li>On the Window "Before you begin", read though the information, and Select "<strong>Next</strong>".
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/before_u_begin.jpg"><img class="alignnone size-medium wp-image-240" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/before_u_begin-300x212.jpg" alt="before_u_begin" width="300" height="212" /></a></li>
	<li>On the Select installation type tab, Select "Role-based or feature-based installation", Select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install_type.jpg"><img class="alignnone size-medium wp-image-241" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install_type-300x211.jpg" alt="install_type" width="300" height="211" /></a></li>
	<li>On the Select destination server tab, your server should already be highlighted, select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/destination_server.jpg"><img class="alignnone size-medium wp-image-242" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/destination_server-300x211.jpg" alt="destination_server" width="300" height="211" /></a></li>
	<li>Now here's the good stuff! On the Select server roles tab, Select the check box next to "Active Directory Domain Services"
<img class="alignnone size-medium wp-image-243" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/select_roles-300x211.jpg" alt="select_roles" width="300" height="211" />
An additional box will pop up prompting you to install the RSAT Tools, AD PowerShell Module, and the ADDS Tools. Leave everything selected, and select "<strong>Add Features</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/select_roles.jpg"> </a><a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/additional_roles.jpg"><img class="alignnone size-medium wp-image-244" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/additional_roles-287x300.jpg" alt="additional_roles" width="287" height="300" /></a></li>
	<li>Leave the default options selected on the Select features, and select "<strong>Next</strong>"</li>
	<li>ADDS Notes will appear next, Read through the notes, and select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/adds.jpg"><img class="alignnone size-medium wp-image-245" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/adds-300x213.jpg" alt="adds" width="300" height="213" /></a></li>
	<li>Time to confirm your settings prior to installation. I have selected the Check box next to "Restart the destination server automatically if required". Select "<strong>Install</strong>" to install the AD DS role.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install.jpg"><img class="alignnone size-medium wp-image-246" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install-300x211.jpg" alt="install" width="300" height="211" /></a> <a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing.jpg">
<img class="alignnone size-medium wp-image-247" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing-300x212.jpg" alt="installing" width="300" height="212" /></a></li>
</ol>
<h5>Nuts &amp; Bolts - Promoting the Domain Controller</h5>
<ol>
	<li>Congratulations! you now have the role files installed. Now its time to promote the server to an actual domain controller.</li>
	<li>In the notification flag in the ribbon, you should see a yellow exclamation, and if you hover, you should see a link to "<strong>Promote this server to a domain controller</strong>". What are you waiting for, Click that link!
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/promote.png"><img class="alignnone size-medium wp-image-249" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/promote-300x256.png" alt="promote" width="300" height="256" /></a></li>
	<li>This will open the window title "Active Directory Domain Services Configuration Wizard"</li>
	<li>Under the Deployment Configuration, we are creating a new forest, so select the bubble to "Add a new forest", then enter the new name for your root domain in the text box. Then select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/deploy_config.jpg"><img class="alignnone size-medium wp-image-251" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/deploy_config-300x219.jpg" alt="deploy_config" width="300" height="219" /></a></li>
	<li>I am creating a 2012 forest and domain, and I want to install DNS on my first Domain Controller, so I will leave the forest, and domain functional levels alone, and leave the Domain Name System (DNS) server check box selected. Type in a complex password and store it in a safe location for the Directory Services Restore Mode Password. Select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/domain_options.jpg"><img class="alignnone size-medium wp-image-252" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/domain_options-300x218.jpg" alt="domain_options" width="300" height="218" /></a></li>
	<li>On the DNS Options tab, You will receive a warning on the DNS Options page, that's okay! We're installing a DNS server, so select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/dns_options.jpg"><img class="alignnone size-medium wp-image-253" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/dns_options-300x219.jpg" alt="dns_options" width="300" height="219" /></a></li>
	<li>On the Additional Options tab, The NetBIOS name will be filled in, and should match your Domain Name. There is really no reason to change this, unless you enjoy playing evil practical jokes on your co-workers. Select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/netbios.jpg"><img class="alignnone size-medium wp-image-254" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/netbios-300x219.jpg" alt="netbios" width="300" height="219" /></a></li>
	<li>On the Paths tab, Leave the Paths as default, and select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/paths.jpg"><img class="alignnone size-medium wp-image-255" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/paths-300x220.jpg" alt="paths" width="300" height="220" /></a></li>
	<li>Review the options, and select "<strong>Next</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/review.jpg"><img class="alignnone size-medium wp-image-256" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/review-300x218.jpg" alt="review" width="300" height="218" /></a></li>
	<li>Next the installer, will check the prerequisites, and if everything checks out, select "<strong>Install</strong>"
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/pre-check.jpg"><img class="alignnone size-medium wp-image-257" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/pre-check-300x218.jpg" alt="pre-check" width="300" height="218" /></a></li>
	<li>On a successful prerequisite check, you have the option to Install. Select "<strong>Install</strong>"<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install_ad.jpg"><img class="alignnone size-medium wp-image-258" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/install_ad-300x233.jpg" alt="install_ad" width="300" height="233" /></a> <a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing_ad.jpg"><img class="alignnone size-medium wp-image-259" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing_ad-300x234.jpg" alt="installing_ad" width="300" height="234" /></a></li>
</ol>
&nbsp;
<h5>Nuts &amp; Bolts - Adding the core Domain Controller</h5>
Howdy, glad you made it this far! You're really committed and I'm proud of you. So, quick recap. We have our first Domain Controller installed and online, and we have our 2nd CORE server online, and at the cmd prompt. Because there is a little more fear in using Core mode, I will go ahead and walk through the IP addressing and disabling of the firewall for you.. I know, I'm a real swell dude!
<ol>
	<li>At the command prompt, type <em><strong>sconfig</strong></em>.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/sconfig.jpg"><img class="alignnone size-medium wp-image-263" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/sconfig-300x45.jpg" alt="sconfig" width="300" height="45" /></a></li>
	<li>(I don't expect you really need pictures for this part, so I'll breeze through) -- This will open the Server Configuration Dialog. The first thing we will do is change the name of the system. So select #2, I named mine to RDC01.  <strong>IMPORTANT NOTE</strong> - At this point, you'll be prompted to reboot. Hold off for now, and we'll reboot after we set the IP address below.</li>
	<li>Next, select #8, and set your Network settings. After you are done here. (you made sure to set your primary DNS server to be the first Domain Controller correct? - if not, go back and change it..)</li>
	<li>Press 13 to restart the server</li>
	<li>After the server reboots, log back in, and next we are going to disable the firewall. The command to do this is:

<pre class="lang:ps decode:true " >netsh advfirewall set allprofiles state off</pre> 

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/firewall_off.jpg"><img class="alignnone size-medium wp-image-265" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/firewall_off-300x48.jpg" alt="firewall_off" width="300" height="48" /></a>

You should get a simple reply of "Ok."</li>
	<li>Next, just like the GUI install, we need to install the required files for AD DS. To add the ADDS service role files, we use the powershell command:
<pre class="lang:ps decode:true " >Add-WindowsFeature AD-Domain-Services</pre>
First, we have to switch to powershell by typing.... yep you guessed it... powershell
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/start_powershell.jpg"><img class="alignnone size-medium wp-image-266" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/start_powershell-300x81.jpg" alt="start_powershell" width="300" height="81" /></a>

Then Type the command above.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/add_adds.jpg"><img class="alignnone size-medium wp-image-267" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/add_adds-300x40.jpg" alt="add_adds" width="300" height="40" /></a>
And watch it install the components..
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/adds_installing_comp.jpg"><img class="alignnone size-medium wp-image-268" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/adds_installing_comp-300x62.jpg" alt="adds_installing_comp" width="300" height="62" /></a> <a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/addscomp_installed.jpg"><img class="alignnone size-medium wp-image-269" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/addscomp_installed-300x87.jpg" alt="addscomp_installed" width="300" height="87" /></a></li>
	<li>After the files are installed, we need to promote and join to the existing domain. The following command is used:
<pre class="lang:ps decode:true " >Install-ADDSDomainController -DomainName newdomain.net -Credential (get-credential newdomain\administrator)</pre>
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/joinnewdomain.jpg"><img class="alignnone size-medium wp-image-270" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/joinnewdomain-300x38.jpg" alt="joinnewdomain" width="300" height="38" /></a>

You will be prompted to authenticate to the primary DC.
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/join_auth.jpg"><img class="alignnone size-medium wp-image-271" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/join_auth-300x238.jpg" alt="join_auth" width="300" height="238" /></a>

Finally, enter the Safe Mode Password..
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/safemode_pw1.jpg"><img class="alignnone size-medium wp-image-273" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/safemode_pw1-300x40.jpg" alt="safemode_pw" width="300" height="40" /></a></li>
	<li>The next prompt is simply a confirmation of what we're about to do, so when your ready, select either [Y] or [A]
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/confirm_install.jpg"><img class="alignnone size-medium wp-image-274" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/confirm_install-300x80.jpg" alt="confirm_install" width="300" height="80" /></a></li>
	<li>And watch it install!
<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing_adds.jpg"><img class="alignnone size-medium wp-image-275" src="https://chrisbmn.com/blog/wp-content/uploads/2014/05/installing_adds-300x153.jpg" alt="installing_adds" width="300" height="153" /></a></li>
	<li>With any luck, and if you followed all the steps properly, You now have a pair of Domain Controllers. 1 GUI mode DC, and 1 CORE mode DC! Yippee!</li>
</ol>
And that ladies and Gentlemen is how to install your first empty root domain on server 2012 with 1 GUI mode DC, and 1 CORE mode DC. Please feel free to leave you love/hate in the comments.

Chris]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Running DSET on ESXi 5.1/5.5 Host Remotely</title>
      <link>https://chrisbmn.com/blog/running-dset-on-esxi-5-15-5-host-remotely-2/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/running-dset-on-esxi-5-15-5-host-remotely-2/</guid>
      <pubDate>Thu, 03 Apr 2014 15:19:12 -0500</pubDate>
      <description><![CDATA[So, most troubleshooting, involves getting the correct information, so you can even begin to look into a problem. Many application related issues, stem from a hardware issue, thus …]]></description>
      <content:encoded><![CDATA[So, most troubleshooting, involves getting the correct information, so you can even begin to look into a problem. Many application related issues, stem from a hardware issue, thus if you use Dell hardware, many times you will be asked to generate a DSET (Dell System E-Support Tool) report from the server in question.

In short, from the <a title="Dell DSET Tool" href="http://wordpress.redirectingat.com/?id=725X584219&amp;site=nutzandbolts.wordpress.com&amp;xs=1&amp;isjs=1&amp;url=http%3A%2F%2Fwww.dell.com%2Fsupport%2Fdrivers%2Fus%2Fen%2F19%2Fdriverdetails%3Fdriverid%3D44rty&amp;xguid=3c4d2093f237f41c064d01efbd02369c&amp;xcreo=0&amp;sref=http%3A%2F%2Fnutzandbolts.wordpress.com%2F2013%2F06%2F04%2Frunning-dell-dset-remotely-on-esxi-5-1%2F&amp;pref=https%3A%2F%2Fwww.google.com%2F&amp;xtz=300" target="_blank" rel="noopener noreferrer">Dell support website link</a>, DSET is explained as:
<pre>Dell System E-Support Tool (DSET) is a utility that collects configuration and log data for various chassis hardware, storage, software, and operating system components of a Dell PowerEdge server and consolidates the data into a .zip file.</pre>
<address> </address>On a Windows server, this is an easy task. Simply install the executable on the server, and run it inside of Windows. EasyPeasy, and no outage..

On ESX however, not quite so simple.

There is a way, to simplify the process, with only a single maintenance outage, and after complete, a DSET can be collected remotely from any other Windows system in your environment. These instructions will walk you through installing the prerequisite package on the ESXi host, and then the running of the utility from the Windows machine.

<strong>Install the Dell OpenManage Offline Bundle and VIB for ESXi.</strong> At the time of this writing, the version was 7.2, released on 3/31/2014 - <a href="http://www.dell.com/support/drivers/us/en/19/driverdetails?driverid=MMPDK" rel="nofollow" data-skimlinks-orig-link="">http://www.dell.com/support/drivers/us/en/19/driverdetails?driverid=MMPDK</a> Note - The <a title="OpenManage Server Admin Users Guide" href="http://downloads.dell.com/Manuals/all-products/esuprt_electronics/esuprt_software/esuprt_ent_sys_mgmt/dell-opnmang-srvr-admin-v7.1_User's%20Guide_en-us.pdf" target="_blank" rel="noopener noreferrer">OpenManage Server Admin Users guide</a> is helpful with the installation, however, I will outline the steps below.

<strong>Using the vSphere CLI</strong>
<ol>
	<li>Copy and unzip the OM-SrvAdmin-Dell-Web-7.1.0-&lt;bldno&gt;.VIB-ESX&lt;version&gt;i_&lt;bld-revno&gt;.zip file to a directory on the system. For ESXi 5.0 and ESXi 5.0 P1, copy the unzipped file to the /var/log/vmware folder on the ESXi 5.0 U1 server</li>
	<li>Shut down all guest operating systems on the ESXi host and put the ESXi host in maintenance mode.</li>
	<li>If you are using vSphere CLI on Windows, navigate to the directory where you have installed the vSphere CLI utilities. If you are using vSphere CLI on Linux, execute the command from any directory</li>
	<li>Execute the following command:
<strong>For VMware ESXi4.0/ESXi 4.1</strong>:<address><span style="line-height: 1.5em;">vihostupdate.pl --server&lt;IP address of ESXi host&gt;-i -b </span><span style="line-height: 1.5em;">&lt;path to Dell OpenManage file&gt;</span></address><strong>For VMware ESXi 5.0 U1</strong>:

<address>esxcli --server &lt;IP Address of ESXi 5.0 host&gt; software vib install -d /var/log/vmware/&lt;Dell OpenManage file&gt;</address></li>
	<li>Enter the root username and password of the ESXi host when prompted. The command output displays a successful or a failed update.</li>
	<li>Restart the ESXi host system.</li>
	<li>Do this for all ESXi hosts you may want to gather this information from.</li>
</ol>
Next, you need to download the Dell Windows DSET utility which is located here. <a href="http://www.dell.com/support/drivers/us/en/19/driverdetails?driverid=44rty" rel="nofollow" data-skimlinks-orig-link="">http://www.dell.com/support/drivers/us/en/19/driverdetails?driverid=44rty</a>

&nbsp;

Once downloaded, run the installer, and move the bubble to Install DSET Components.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dsetcomp.jpg"><img class="size-medium wp-image-215 alignleft" alt="dsetcomp" src="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dsetcomp-300x226.jpg" width="300" height="226" /></a>

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

And then select the first option to install the DSET Collector and DSET CIM Provider. <a href="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dset_collect_cim.jpg"><img class="size-medium wp-image-216 alignright" alt="dset_collect_cim" src="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dset_collect_cim-300x234.jpg" width="300" height="234" /></a>

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

After installation has completed. Open the CLI from your Program Files.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dset.png"><img class="size-full wp-image-217 alignleft" alt="dset" src="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dset.png" width="259" height="138" /></a>

&nbsp;

&nbsp;

&nbsp;

&nbsp;

&nbsp;

At the command prompt enter the follow and it will prompt for password:

<strong>C:\Program Files (x86)\Dell\AdvDiags\DSET\bin&gt;DellSystemInfo.exe -s HOSTNAME -u root -d hw -n root/dcim/sysman -r dset-name.zip</strong>

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dsetcli.jpg"><img class="alignnone size-medium wp-image-218" alt="dsetcli" src="https://chrisbmn.com/blog/wp-content/uploads/2014/04/dsetcli-300x63.jpg" width="300" height="63" /></a>

&nbsp;

DSET will collect the data, and wrap it into a zip archive. Upload that archive, and troubleshoot away!]]></content:encoded>
            <category>Tutorials</category>
          </item>
        <item>
      <title>Install VMWare Tools on Windows Server 2012 R2 Core</title>
      <link>https://chrisbmn.com/blog/install-vmware-tools-on-windows-server-2012-r2-core/</link>
      <guid isPermaLink="true">https://chrisbmn.com/blog/install-vmware-tools-on-windows-server-2012-r2-core/</guid>
      <pubDate>Tue, 25 Mar 2014 13:53:00 -0500</pubDate>
      <description><![CDATA[Windows Server Core is an installation option for Windows Server 2012 R2. It installs fewer components and administrations options than the full installation of Windows Server 2012…]]></description>
      <content:encoded><![CDATA[Windows Server Core is an installation option for Windows Server 2012 R2. It installs fewer components and administrations options than the full installation of Windows Server 2012 R2. You manage Server Core locally by using Windows PowerShell or a command-line interface, rather than using GUI-based tools. So, where do you click, to install the VMWare tools? Short answer is: You don't..

If you do the normal, right click on your VM, Guest, Install/Upgrade VMWare Tools,

something interesting happens.. <img class="size-medium wp-image-201 alignright" style="line-height: 1.5em;" alt="rightclick_vmwaretools" src="https://chrisbmn.com/blog/wp-content/uploads/2014/03/rightclick_vmwaretools-300x66.png" width="300" height="66" />

<span style="line-height: 1.5em;">Nothing.. That's right, nothing happens..</span>

So how do you install the tools?
It's actually easier than you'd think. We use command line. I know, scary stuff.. Just 1 simple command, and a reboot.

First, change to your CD drive. Probably "D:\". Then Execute setup64.exe.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/03/vmtools_core_install1.png"><img class="alignnone size-medium wp-image-203" alt="vmtools_core_install" src="https://chrisbmn.com/blog/wp-content/uploads/2014/03/vmtools_core_install1-300x62.png" width="300" height="62" /></a>

Lets step through what the parameters of this command are doing.

/S = telling the script to run Silent

/v = passes the parameters to the msi directly

/qn = does a silent install

REBOOT = R (This one is more of a preference. - "F" here will Alway Prompt for a reboot, and if ignored, will auto reboot, "S" will Suppress the auto reboot, and prompt, and finally, "R" ReallySuppress, won't prompt at all. )

&nbsp;

If you choose to Suppress the auto-reboot, you can always issue the following command to reboot server core.

<a href="https://chrisbmn.com/blog/wp-content/uploads/2014/03/shutdown_reboot.png"><img class="alignnone size-medium wp-image-204" alt="shutdown_reboot" src="https://chrisbmn.com/blog/wp-content/uploads/2014/03/shutdown_reboot-300x47.png" width="300" height="47" /></a>

&nbsp;

This command, simply sends the shutdown command, with the -r (reboot) and the -t (time = 1) parameters. You can leave the -t off, if you like, and the system will reboot within 1 minute.

&nbsp;]]></content:encoded>
            <category>Tutorials</category>
          </item>
    
  </channel>
</rss>
