How to install .NET Framework 3.5 on Windows Server 2016

The solution to “The source files could not be found” when installing .NET Framework 3.5 on Server 2012 (or Windows 8)  is to:

  1. Pop in the DVD (or the ISO for the DVD)
  2. Start the ADD ROLES AND FEATURES Wizard and click the obvious choices up until the CONFIRMATION screen
  3. on the CONFIRMATION screen of the ADD ROLES AND FEATURES WIZARD, you need to click the SPECIFY SOURCE link (tiny link at the bottom of the window)
  4. Point the source path to D:\sources\sxs\ (obviously change D:\ to whatever your DVD drive letter is)

Also note that if you download the .NET 3.5 installer from the web and then try to run it, the install will error out with:

Install from roles and features

For more detail read MS KB2734782:

In Windows 8 and in Windows Server 2012, the .Net Framework 3.5 is a Feature on Demand. The metadata for Features on Demand are included in Windows 8 and in Windows Server 2012. However, the binaries and other files associated with the feature are not included. When you enable the feature, Windows tries to contact Windows Update to download the missing information to install the feature.


Windows 10 Audit Mode

To get Windows 10 ready for imaging, use  the audit mode prior to imaging. After you enter the audit mode, you can install device drivers, custom software etc. Then you can create your image for deployment.

Boot to audit mode manually (on a new or existing installation)

  • At the OOBE screen, press CTRL+SHIFT+F3.Windows reboots the computer into audit mode, and the System Preparation (Sysprep) Tool appears.

    The CTRL+SHIFT+F3 keyboard shortcut does not bypass all parts of the OOBE process, such as running scripts and applying answer file settings in the oobeSystem configuration pass.

See for more details on how the audit mode works.

Removing disconnected Mailboxes from Exchange 2010

Use Get-MailboxDatabase -Status | Select Name, DatabaseSize, AvailableNewMailboxSpace to find the database size, and available mailbox space.


This is a quick how to which will enable you to remove any disconnected mailboxes from exchange 2010, since the purge mailbox feature is no longer available.

6 Steps total

Step 1: Run a clean on your mailbox store

Perform the below command in order to run the Clean task on your exchange mailbox store, you need to do this via the Exchange Command Powershell

clean-mailboxdatabase “Mailbox Store Name”

Step 2: Get a list of disconnected mailboxes in your database

Then run the below command to get a list of mailboxes that are in a disconnected state

Get-MailboxStatistics -Database “Mailbox Store Name” | Where-Object {$_.DisconnectDate -Notlike $NULL} | FL DisplayName, DisconnectDate, MailboxGuid

Step 3: Results

You should now see a result similar to the below

DisplayName : USERMAN
DisconnectDate : 1-7-2010 16:00:48
MailboxGuid : def4aabd-2156-5857-858f-470efc3e6f28

Step 4: Gather maxboxguid

Take the MailboxGuid and copy it to Notepad. For easy modification.

The MailboxGuid is needed to remove the mailbox completely, use the below command to remove the mailbox

Step 5: Remove / Delete the mailbox/’s

Now run the below comand inserting the Mailboxguid that you want to remove, repeat the process if you have multiple mailboxes to remove

Remove-Mailbox -Database “Mailbox Store Name” -StoreMailboxIdentity def4aabd-2156-5857-858f-470efc3e6f28

you will now be prompted to confirm that you want to completely remove the mailbox, if you agree accept this prompt.

You can the re run the Get-MailboxStatistics above to check there are no disconnected mailboxes remaining.

Step 6: Verify

to verify the mailboxes are no longer there , re -run the command in step 2, hopefully this will now display zero results.

Job Done !

This now should have removed all mailboxes that were diassassociated with any user accounts.


Remote reboot command returns an error “Network path was not found”.

Problem: When you try to reboot a remote computer using the command shutdown -m \\remotepc -r -f command, you receive an error message telling you that the Network path was not found. You know the remote PC is accessible via ping.


  1. Click Start, type regedit in the Start Search box, and then click regedit.exe in the Programs list.
  2. Locate and then click the following registry subkey:
  3. On the Edit menu, point to New, and then click DWORD Value.
  4. Type LocalAccountTokenFilterPolicy for the name of the DWORD, and then press ENTER.
  5. Right-click LocalAccountTokenFilterPolicy, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Exit Registry Editor.

How to delete Windows 10 bloatware so you can run sysprep

When you run sysprep under Windows 10 (Windows 8/8.1) you receive an error message saying that Sysprep was not able to validate your Windows installation.  Review the log file at %Windir%/System32\Sysprep\Panther\setupact.log for details. When you look at the log file, the message tells you that you can not run the sysprep because there is an application that was installed for a user, but was not provisioned for all users. The application name varies. This error occurs because the Windows 10 installs a lot of bloatwares that you must uninstall before you can run the sysprep.

The following scripts will help you uninstall the programs from your image, so you can run the sysprep.

First you can run the following script to see what provisioned apps are running.

Get-AppXProvisionedPackage -Online | Select PackageName

Use this command to remove the provisioned package.

Remove-AppXProvisionedPackage -Online | Select PackageName

Or use this command to remove all of them all at once.

Get-AppXProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online

You may also have to run the following command to uninstall more packages.

Get-AppxPackage | Select Name, PackageFullName

You can then use the following command to remove the packages.

Get-AppxPackage PackageFullName | Remove-AppxPackage (You can use wildcards such as * for full name)

Use the following command to uninstall packages all at once.

Get-AppxPackage -allusers PackageFullName | Remove-AppxPackage (Removes allusers program)

Get-AppxPackage -user username PackageFullName | Remove-AppxPackage (Removes particular users program)

Get-AppxPackage | Remove-AppxPackage  (Removes all packages)

Setting up Key Management Server (KMS) on Windows Server 2008

KMS activates computers on a local network, eliminating the need for individual computers to connect to Microsoft. To do this, KMS uses a client–server topology. KMS client computers can locate KMS host computers by using Domain Name System (DNS) or a static configuration. KMS clients contact the KMS host by using remote procedure call (RPC). KMS can be hosted on computers that are running the Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008, or Windows Server 2008 R2 operating systems.

  1. Go to the volume licensing center and grab a copy of the KMS key for your server OS
    1. Navigate to
    2. Login
    3. Select Downloads and Keys
      Volume Licensing Service Center - Downloads and Keys
    4. Select Windows Server
      Volume Licensing Service Center - Windows Server
    5. Finder your server version and click Key
      Volume Licensing Service Center - Windows Server - Key
    6. Copy the KMS type key
  2. Login to the server you want to setup as the KMS server.
  3. Open up a command prompt as an administrator.
  4. Ensure you are in the system32 folder of Windows
    1. cd c:\Windows\System32
      windows - System 32
  5. Execute the following command to setup your license key
    1. cscript slmgr.vbs /ipk WINDOWS-KMS-LICENSE-KEY-HERE
      cscript slmgr ipk
  6. Execute the following command to activate the host
    1. cscript slmgr.vbs /ato
      Activating Windows
  7. Execute the following command to verify the host has the Key Management Service enabled
    1. cscript slmgr.vbs /dlv
      cscript slmgr dlv
  8. Next, we need to open the firewall for the server to accept activation requests
    1. Open up Windows Firewall with Advanced Security
      Windows 8 - Windows Firewall with Advanced Security
    2. Right click on Inbound Rules and select New Rule…
      Windows Firewall with Advanced Security - New Rule
    3. Select Port and click Next >
      New Inboud Rule Wizard - Port
    4. Check TCP, check Specific Local Ports and enter port 1688, click Next >
      New Inboud Rule Wizard - Specific local ports
    5. Check Allow the connection and click Next >
      New Inboud Rule Wizard - Allow the connection
    6. Check Domain and click Next >
      New Inboud Rule Wizard - Domain
    7. Enter a name for the rule and click Finish
      New Inboud Rule Wizard - Rule Name

Congrats!  Your KMS server should now be ready to accept activation requests!

Force sync a single outlook folder when using cached mode

To correct folder synchronization in Outlook 2013 and 2010, simply right-click the folder, select properties. On the General tab of properties, click “Clear Offline Items”, click OK, click OK, then Shift-F9 to force synchronization on the folder. To confirm go into the properties of the folder, select the Synchronization tab verify the Server folder matches the Offline folder.