Sunday, October 26, 2014

Bypass Laptop Wireless Hardware Radio Switch

I have been having issues with my Sony VAIO Fit 14 laptop since I put Windows 8.1 on it. The Broadcom Wireless Network Adapter has been not able to maintain a network connection at work or at home consistently. So, I bought a Intel Centrino Advanced-N 6250 wireless adapter off eBay for $6. (In hindsight, I would have snagged a Bluetooth model.)

It wasn't too difficult to pop in.
 
 
After I put the laptop back together and loaded the Intel drivers, I noticed it didn't find any nearby networks. I opened the Intel WiFi Connection Utility and tried to enable the network adapter, but I kept getting an error about my "Hardware Radio Switch" was turned off. This laptop doesn't have a radio switch or FN key to enable/disable the wireless any where.

So, I did the next best thing - smashed it to PIECES!!! Okay, maybe I didn't, but I sure felt like my $6 part should work!

And, I made it work... by blocking out pin 20 on the network adapters PCIe Micro interface as others have done to get their wireless adapter working after failed wireless switches or replacing wireless adapters cause these radio switch off predicaments.

Here's a picture of the mini/micro PCIe half height Broadcom BCM943142HM I pulled out of the laptop with pin 20 highlighted for reference. According the PCI Express Specification, https://www.pcisig.com/specifications/pciexpress/specifications/ECN-Second20Wireless20Disable20-2020100510.pdf, pin 20 (and now 51) are the W_DISABLE (wireless disable signal). In Intel's WiFi Connection Utility, Hardware Radio Switch is directly related to W_DISABLE and pin 20.

 
I put a piece of scotch tape (others recommend electrical tape) over Pin 20, put the card back in my laptop. If you're like me, you'll need a 5+x magnifying glass and a razor blade to cut the small piece of tape for the pin.

After I booted up the laptop, my "Hardware Radio Switch" was reporting as being turned on.
  



Friday, October 3, 2014

Create a HTTP to HTTPS Redirect with Zen Load Balancer

  1. Create a new HTTP farm, listening on 80/HTTP


     
  2. Create a service by entering a description in Add Service and click Add


     
  3. Enter the Virtual Host - yourdomain.com, and Redirect URL - https://yourdomain.com


      
  4. Restart the Farm


      
  5. Done


     

Friday, August 22, 2014

Zen Load Balancer 3.03 - Error in content3-3 cgi execution, see ZEN logs

UPDATE: Zen Load Balancer 3.05 has been released and resolves the issue mentioned below. http://www.zenloadbalancer.com/downloads/

"... Improvements:
[gui] HTTP farm client request timeout with unit “seconds”
[gui] Refreshing timeout for farms status view
[cluster] Improved RSA synchronization
[gui] Advise message regarding no cluster configuration found
 ..." - http://www.zenloadbalancer.com/changelog/#August_26_2014_Zen_Load_Balancer_v305



With the open source 3.03 version of ZenLB, I believe I've isolated one cause for the "Error in content3-3 cgi execution, see ZEN logs" message when attempting to configure a Cluster and using the "Configure RSA connection between nodes" button.

I reported the bug to http://zenloadbalancer.sourceforge.net/bugs and been told “[t]hat is a bug that is solved for the next 3.05 version” by J. Robels.

Reproducing the error:
  1. Configure two new Zen load balancers – TestLB1 and TestLB2
  2. Connect them in a cluster
  3. Disconnect the cluster
  4. Rebuild the OS for TestLB2 with an identical configuration – IP address and settings
  5. Attempt to configure a cluster again between the Zen load balancers TestLB1 and TestLB2 from TestLB1’s admin interface
  6. You will get "Error in content3-3 cgi execution, see ZEN logs" using the "Configure RSA connection between nodes" button



Cause:
  • The SSH keys on TestLB1 /root/.ssh/known_hosts file is no longer valid for referencing TestLB2.
     
Workaround prior to ZenLB 3.05:
  • Delete the /root/.ssh/known_hosts file from TestLB1.
     
You will now get the "SUCCESS! Running process for configure RSA communication. " when pressing the "Configure RSA connection between nodes" button.


Monday, May 19, 2014

Configure Server 2012 and 2012 R2 with RDP Session Host without the whole RDP-RDMS shebang!

Configure Server 2012 and 2012 R2 with RDP Session Host without the whole RDP-RDMS shebang! - Part 1
Configure Server 2012 R2 with RDP Session Host without the whole RDP-RDMS shebang! - Part 2


Updated: 2016-05-25

Threw this into PowerShell to make this a little quicker for me, and now for you.

Current version at https://github.com/cajeeper/PowerShell/blob/master/Setup-Standalone-RDS-Host.ps1

 #Install Roles
 Get-WindowsFeature | ? { $_.Name -match "RDS-Licensing|RDS-RD-Server" } | Install-WindowsFeature

 #Allow RDP Access to the server
 Set-ItemProperty "hklm:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0

 #Per Device  
 #$licenseMode = 2

 #Per User  
 $licenseMode = 4

 #Licensing Server  
 $licenseServer = "$env:computername.$env:userdnsdomain"

 Set-ItemProperty "hklm:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\" -Name "LicensingMode" -Value $licenseMode  
 Get-ItemProperty "hklm:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\" -Name "LicensingMode"  
 New-Item "hklm:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers"
 New-ItemProperty "hklm:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers -Value $licenseServer -PropertyType "MultiString"  
 Get-ItemProperty "hklm:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers   

 #Allow Shadowing Users
 # Values: 0 (No Remote Control), 1 (Full Control with user's permission), 2 (Full Control without user's permission), 3 (View Session with user's permission), 4 (View Session without user's permission)
 New-ItemProperty "hklm:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" -Name Shadow -Value 2 -PropertyType "DWORD"

 #Update GPO for Shadowing Users
 gpupdate /force

 #Open the firewall for RDP
 netsh firewall set service remotedesktop

 #reboot may be needed from Windows Feature Installation
Formatted for web with http://codeformatter.blogspot.com/ 





I went to setup a basic RDP Session Host, as I usually have done with our old 2008 R2 servers, and I was met with some slight grief. Apparently, in Windows Server 2012, Remote Desktop Configuration Manager is no longer available and you're advised to use the Remote Desktop Management Server (RDMS) in order to "... create and manage [your] Windows Server 2012 Remote Desktop environment." http://blogs.technet.com/b/askperf/archive/2012/10/30/windows-8-windows-server-2012-remote-desktop-management-server.aspx

I just want a stand-alone Session Host running a private RDS License Server on a workgroup - not a full scale deployment on an AD domain. I had tried installing just the two features, but had no way to directly configure the roles and continued to the 120 day notice for not having a configured my RDP Session Host. After tinkering around - here a Google, there a Google, everywhere a google Google - and I think I stumbled upon a simple way to configure just what I wanted with nothing more than just replacing my prior tasks in Remote Desktop Configuration Manager with creating a registry key, creating a registry Multi value string, and editing one registry key.

If you're like me and want to just keep it simple, go ahead and install just the two services - Remote Desktop Licensing and Remote Desktop Session Host, configure your licensing services, and then edit the registry to complete your configuration. <!-insert obligatory-hands-slapped-clean->

Install the two services:


Configure the Remote Desktop Licensing:



Update the licensing mode (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\LicensingMode) registry key:
Enter 2 for per device mode or 4 for per user mode (By default it is 5 and is invalid)


Add the following LicenseServers key (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers) and create the Multi_SZ String Value SpecifiedLicenseServers (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers\SpecifiedLicenseServers) :



Reboot and, BAMMM!... Bob's your uncle!

Tuesday, March 25, 2014

You wanted to P2V?

Went to convert an old physical server to a virtual machine and I discovered that the latest version of System Center Virtual Machine Manager, 2012 R2, removed the P2V (physical to virtual) conversion tool.

What's recommended by the Microsoft Virtual Machine Engineering blog is to use an older version of VMM - 2012 SP1 or older - to complete your P2V needs.
http://blogs.technet.com/b/scvmm/archive/2013/10/03/how-to-perform-a-p2v-in-a-scvmm-2012-r2-environment.aspx

Alternatively, you can use the SysInternals Disk2vhd tool to manually P2V.
http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx

I ended up using the Disk2vhd tool and was successful in converting my server to a virtual machine.

Before I began converting the physical disks to virtual:
  • Stopped any programs or services that may have been running (as memory is not going to be captured)
  • Disabled any services running from automatically starting. Once you boot it up and reconfigure your network adapters and drive letters, set the services back to boot Manual or Automatic.
Then, I launched the Disk2vhd tool and captured the disks (one VHD disk with both the system reserve and the C: system volumes, and another VHD disk with the D: data volume).
    Note: The Disk2vhd tool default converts disks to VHDX, but that's only compatible in Server 2012 and above. I had to uncheck the [Use VHDX] check box, since the virtual machine was going on a Windows Server 2008 R2 Hyper-V host.
The only left to do after converting the system's disks where:
  • Write down the system's network information (easiest with ipconfig /all in the command prompt)
  • Convert the VHD files created from 'Dynamically Size' vhd disks to 'Fixed Size' vhd disks
  • Attach the VHD disk files to a blank virtual machine with the necessary specifications (Processors, Memory, Network Adapters, etc) The disk containing the system volume needs to be connected to the Virtual Machine's IDE 0 or 1 Controller
  • Shutdown the phsyical machine
  • Boot up the virtual machine
  • Loaded the Hyper-V Guest OS Utilities (Hyper-V Integration Services)
  • Set the network adapters back to the correct configuration
  • Set the drive letters back to the proper designations (in my case D: became E:)
  • Re-enable the Services that were disabled 
  • Re-activate Windows Operating System

Thursday, March 13, 2014

Remotely Running PowerShell

Very simple.


To enter a remote PowerShell session:

 enter-pssession servename


To exit the remote session:

 exit-pssession



Commands I like to run remotely:

-Listing and killing an active process:
  (*Particularly any starting with the name "note" and then stopping it)

 get-process -name note*
 stop-process -name note*



-Pulling a system's serial number:
  (*Particularly great for support calls)

 gwmi win32_bios



 This eliminates the need to connect via Remote Desktop in order to perform these simple tasks.


  • [Note] In order to use PowerShell commands on a remote machine: You need to have permission to connect and run these commands remotely; You need to have ran enable-psremoting; You need to have direct communication with the machine; and have opened the firewall in order to connect to the WS Management service. There's more details about of this and these commands listed below.

References:
about_Remote_Requirements, http://technet.microsoft.com/en-us/library/dd315349.aspx
Running Remote Commands, http://technet.microsoft.com/en-us/library/dd819505.aspx
Using the Get-Process Cmdlet, http://technet.microsoft.com/en-us/library/ee176855.aspx
Using the Stop-Process Cmdlet, http://technet.microsoft.com/en-us/library/ee177004.aspx

Wednesday, March 12, 2014

DPM 2012 and Beyond Frustration

All of our Hyper-V Clusters, Server 2008 R2 hosts, started having failed backups inside our two independent Data Protection Managers. The problem initially progressed from one node consistently fail backups for virtual machines and the other hosts kept performing backups, until all of our nodes could no longer could make successfully backups of any virtual machines. Our standalone backups via DPM had no issue. These hosts had been configured and unchanged for well over a year - only Windows patches months prior and anti-virus updates were continuously loading.

DPM kept stating for the failed backups that "The VSS application writer or the VSS provider is in a bad state ... ID 30111: VssError:A function call was made when the object was in an incorrect state for that function(0x80042301)) and the local nodes wrote VSS 12362 Application Log Event Errors "A Shadow Copy LUN was not detected in the system and did not arrive" and VSS 12363 Application Log Event Errors "An expected hidden volume arrival did not complete because this LUN was not detected" whenever we attempted to run full virtual machine backup via a Consistency check.

We had tried and didn't work...
  • Power cycling all of the equipment involved: Hyper-V Servers (PowerEdge R710's), the iSCSI SAN (EqualLogic PS4000vx's), the switches connecting them (Catalyst 3750X's), and our DPM server
  • Unregistering and Registering the EqualLogic VSS provider (eqlvss /unregserver and eqlvss /regserver)
  • Removing virtual machines from a protection group (deleting disk data) and adding them back
  • Moving virtual machines to a new protection group
  • Upgrading the EqualLogic Windows Host Integration Toolkits (HIT kits) on the Hyper-V nodes - upgraded from 4.0 to 4.6
  • Installing the EqualLogic HIT kit on one of the virtual machines
  • Patching the Hyper-V nodes to all of the latest Windows Updates - even yesterdays released kb 2908783 which resolves issues with corruption of iSCSI LUNs in Windows Server 2008 R2 and 2012
... and still no success.

After much time wasted on what seemed to be magic potions and DPM's hatred of backing up critical data, a random thought of trying to disable our anti-virus on the cluster nodes resolved the issue! Yeah, I know they say to disable anti-virus on everything and everywhere you read, but we have had Microsoft Forefront Client Security on these systems configured and running since we setup these servers 2+ years ago. Apparently, some change in the definitions or just its mood decided to start messing with the iSCSI VSS Hardware process... and messing with my sleep over the last two days.

Good luck!