TechShizz | Tech Guides for everything in IT

Enabling Switch Embedded Teaming (SET) on Server 2016

What is Switch Embedded Teaming?

SET is basically a new and better version of NIC teams. The advantage of using a SET is that it provides better data transfer performance as the NICs to no have to send the data they send and receive via the CPU of the server, instead the data accesses the servers memory directly and passes straight through to the other NIC. These NICs can be made into Hyper-V switches to be used with virtual machines.

To enable Switch embedded teaming you need to have Remote Direct Memory Access enabled network cards. To see if you have RDMA enabled NICs run this cmdlet in PowerShell.

Get-NetAdapterRdma

If you have RDMA enabled NICs you can create a Hyper-V switch with them with this command:

New-VMSwitch -Name SETvSwitch -NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $True

Once complete, you'll be able to select this new vSwitch as an adapter in Hyper-V. This will provide failover and load balencing at a higher performance than NIC Teaming. 

Outlook wont start -Error Event 1000 - Faulting module path: C:\WINDOWS\System32\ucrtbase.dll

Problem

 Outlook won't start. It may or may not start in safe mode. You get event ID Error 1000 when trying to start outlook. 

Cause

 Unsure

Solution

Backup these reg keys, then delete them:

  • Delete HKCU\Software\Microsoft\Office\16.0\Common\Licensing\CurrentSkuIdForApp - Whole Folder/Key

  • Delete HKCU\Software\Microsoft\Office\16.0\Common\Experiment - Whole Folder/Key

  • Delete HKCU\Software\Microsoft\Office\16.0\Common\ExperimentEcs - Whole Folder/Key

  • Delete HKCU\Software\Microsoft\Office\16.0\Common\ExperimentTas - Whole Folder/Key

Unable to install windows 7 | Unable to load drivers when installing windows 7

I recently faced this issue with two Dell Latitude 3570's.

On installing windows, your unable to continue because there are insufficient disk drivers. The problem is actually not this; the problem is that the laptop's disk connected via the USB 3.0 internally, and Windows 7 does not have the drivers for this. On top of that, the laptop does not have a built-in CD drive, so you have to use a bootable USB or usb CD rom drive to mount media.

To resolve this you need to create a Windows 7 USB with an injected USB 3.0 driver in both the boot.wim and install.wim.

Step 1: Download the USB Drivers

Step 2: Extract the drivers

1. Create a folder on your desktop named 'USB3'. 
2. Create two folders inside of the 'USB3' folder, 'mount' and 'USB'. 
3. Extract or copy/paste the driver files directly into the 'USB' folder. I used 7-zip to extract my driver files directly into the 'USB' folder.

Step 3: Copy the 'boot.wim' and 'install.wim' files from install media

Locate these two files from within your boot media.  They are usually located in [Drive]:\sources

Step 4: Open up CMD prompt as Administrator and navigate to the 'USB3' folder on the desktop

Windows 7: 
1. Start, type in cmd, right click on the icon and choose Run as Administrator 
Windows 8: 
1. Windows Key + Q 
2. Move mouse to top right corner and search, type in Command Prompt, Right click and Run as Administrator.

Next, you will need to change the directory path so that it isn't pointing to the default of C:\Windows\System32.

Type in: cd C:\Users\%userprofile%\Desktop\USB3 - Then press Enter. 
*Note: Make sure to change the %userprofile% to that of the user profile where the 'USB3' folder was saved.

Step 5: Update the 'boot.wim' file.

In the cmd run each of these commands.

dism /mount-wim /wimfile:boot.wim /index:2 /mountdir:mount 
This command mounts the boot.wim file, index points it to the correct boot parameters for the correct OS, and /mountdir:mount points it to mount the file to the 'mount' folder we created in this directory earlier.

dism /image:mount /add-driver:"USB" /recurse 
This command automatically grabs the driver files that it locates in the 'USB' folder that we created earlier and copied the drivers to. This can take a while depending on the number of driver files that it locates.

dism /unmount-wim /mountdir:mount /commit 
Be sure to have all windows explorer windows closed before unmounting, otherwise you will get an error saying the files are in use.

Step 6: Find the index you're going to update the driver files for on the 'install.wim' file

 

Run this command and identify the index number of the edition of windows you are installing.

dism /Get-WimInfo /WimFile:install.wim

Step 7: Update the 'install.wim' file.

Next, mount the main install.wim file:

dism /mount-wim /wimfile:install.wim /index:1 /mountdir:mount 
dism /image:mount /add-driver:"USB" /recurse

Then unmount. 

dism /unmount-wim /mountdir:mount /commit

Step 8: Cut/Paste or Copy/Paste your new 'boot.wim' and 'install.wim' files

 

Paste the install.wim and boot.wim back into the install media. You will either need to re-burn the DVD or create an ISO and burn to USB (I recommend ISO2USB).

Setting up WPA2-Enterprise Authenticated WiFi (Connect to WiFi with AD Credentials)

1. Set up Radius Server as a DC
 a. Make server a DC
2. Create a Security Group to Add users to. "WiFi - CorporateUsers"
3. Install a Certification Authority
 a. Install the role
 b. Configure the ADCS
 Choose Enterprise CA
 Keep all defaults (Choose Root CA)
 Set Certificate to 2 years and create a scheduled task somewhere to replace this certificate before it expires.
 c. Request computer certificate for the Domain Controller Certificate on the RADIUS Server.
4. Install NPS
 a. -
 b. Configure RADIUS server in FortiCloud / (Your Access Points)
 c. Authentication on WPA2-Enterprise
    Port 1812
    Enter a the "Secret" PSK.
 d. In the NPS config, change from NPS to RADIUS 802.1x
 e. Add a RADIUS client (the AP)
 f. For Auth Method, choose EAP.
 g. Add the "WiFi - CorporateUsers" group.
 h. Click on the NPS(Local) root node in the NPS Snap in, then click the Action > Register Server in Active Directory.
5. Export the DC Certificate, and deploy it to all devices that can join WiFi
6. Deploy WiFi Settings and certificate via Group Policy
 a. Put the exported certificate in SYSVOL\DOMAIN\Scripts\
 b. Create Group policy, ComputerConfiguration > Policies > Windows Settings > Security Settings > Public Key Policies > Trusted Publishers
 c. Import the certificate
 d. Next in the same policy go to ComputerConfiguration > Policies > Windows Settings > Security Settings > Public Key Policies > Wireless Network (IEEE 802.11) Polices
 e . Create a new Network Connection
 f . Enter to Policy Name, Click Add and then "Infrastructure".
 g. Enter Profile Name, SSID for the Netowrk. On the Security tab choose WPA2-Enterprise/AES, EAP(PEAP).
 h. In the same window, click properties, TICK:"Connect to these servers" and enter the FQDN of the RADIUS Server e.g. HVDC2.DOMAIN.local
 i. From the Trusted Root Certification Authorities window, find and tick your certificate you imported earlier.
 j. Next Click "Configure" - Here you can untick this to make users enter their password, or leave it ticked to have a Pass Thru style authentication.
7. Test
 a. Connect to a laptop (With LAN connection if remote) and try to login with AD credentials. (If you opted for Pass Thru it should just connect).

List a Client Machine informations with PowerShell

Here are two scripts, which can assist in getting hardware information about the computers on an active directory network. It'll get you the following information in a CSV file:

  1. Hostname
  2. Model
  3. RAM
  4. CPU
  5. Serial Number
  6. Manufacturer
  7. Operating System
  8. HDD Capacity
  9. HDD Space
  10. IP Address

If your DC has PowerShell V2 use this:

## FOR MACINES WITH POWERSHELL V2
Import-Module ActiveDirectory
$ComputerList = Get-ADComputer -filter * -Properties *
$csvpath = "C:\users\icuadminaccount\Desktop\Computers.csv"
foreach ($Computer in $ComputerList) {
##Title
$computerSystem = Get-WmiObject -ComputerName $Computer.Name -Class CIM_ComputerSystem
$output = "System Information for: " + $computerSystem.Name +"`n"
$output = $output + "Model: " + $computerSystem.Model +"`n"
$output = $output + "RAM: " + "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB"+"`n"
##CPU
$computerCPU = Get-WmiObject -ComputerName $Computer.Name -Class CIM_Processor
$output = $output + "CPU: " + $computerCPU.Name +"`n"
Out-file -FilePath $csvpath -append
##BIOS
$computerBIOS = Get-WmiObject -ComputerName $Computer.Name -Class CIM_BIOSElement
$output = $output + "Serial Number: " + $computerBIOS.SerialNumber +"`n"
$output = $output + "Manufacturer: " + $computerBIOS.Manufacturer +"`n"
Out-file -FilePath $csvpath -append
##OS
$computerOS = Get-WmiObject -ComputerName $Computer.Name -Class CIM_OperatingSystem
$output = $output + "Last Reboot: " + $computerOS.LastBootUpTime +"`n"
$output = $output + "Operating System: " + $computerOS.caption + ", Service Pack: " + $computerOS.ServicePackMajorVersion +"`n"
Out-file -FilePath $csvpath -append
##Disks
$computerHDD = Get-WmiObject -ComputerName $Computer.Name -Class Win32_LogicalDisk -filter "DeviceID = 'C:'"
$output = $output + "HDD Capacity: " + "{0:N2}" -f ($computerHDD.Size/1024) + "GB" +"`n"
$output = $output + "HDD Space: " + "{0:P2}" -f ($computerHDD.FreeSpace/1024) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace) + "KB)" +"`n"
$output | Out-file -FilePath $csvpath -append
}

If your DC has PowerShell V3+ use this:

## FOR MACINES WITH POWERSHELL V3+
Import-Module ActiveDirectory
$ComputerList = Get-ADComputer -filter * -Properties *
$csvpath = "C:\users\icuadminaccount\Desktop\Computers.csv"
foreach ($Computer in $ComputerList) {

$computerSystem = Get-CimInstance CIM_ComputerSystem
$computerBIOS = Get-CimInstance CIM_BIOSElement
$computerOS = Get-CimInstance CIM_OperatingSystem
$computerCPU = Get-CimInstance CIM_Processor
$computerHDD = Get-CimInstance Win32_LogicalDisk -filter "DeviceID = 'C:'"


$output = "System Information for: " $computerSystem.Name -BackgroundColor DarkCyan
$output = $output + "Manufacturer: " + $computerSystem.Manufacturer
$output = $output + "Model: " + $computerSystem.Model
$output = $output + "Serial Number: " + $computerBIOS.SerialNumber
$output = $output + "CPU: " + $computerCPU.Name
$output = $output + "HDD Capacity: " + "{0:N2}" -f ($computerHDD.Size/1GB) + "GB"
$output = $output + "HDD Space: " + "{0:P2}" -f ($computerHDD.FreeSpace/$computerHDD.Size) + " Free (" + "{0:N2}" -f ($computerHDD.FreeSpace/1GB) + "GB)"
$output = $output + "RAM: " + "{0:N2}" -f ($computerSystem.TotalPhysicalMemory/1GB) + "GB"
$output = $output + "Operating System: " + $computerOS.caption + ", Service Pack: " + $computerOS.ServicePackMajorVersion
$output = $output + "User logged In: " + $computerSystem.UserName
$output = $output + "Last Reboot: " + $computerOS.LastBootUpTime
$output | Out-file -FilePath $csvpath -append
}