Powercli script to start/stop Local/Remote Tech Support Mode

After the installation of the latest vSphere 4.1 patches all our hosts showed a warning regarding the Tech Support Modes being enabled. I took the time to write a script to start/stop theses services on the hosts in the vCenter server.

#  
# .SYNOPSIS  
# Start or Stop Local & Remote TSM  
# .VERSION  
# 1.0  
# .DESCRIPTION  
# Script to start or stop Local & Remote Tech Support Mode on all the
# vSphere severs located in vCenter.  
# .NOTES  
# Author(s): Stijn Vermoesen  
# .EXAMPLE  
# ./StartStop-TSM.ps1  
#

### Check if the VMware PowerCLI plugin is loaded  
if ((Get-PSSnapin -Name VMware.VimAutomation.Core -ErrorAction SilentlyContinue) -eq $null )  
{  
    Add-PSSnapin VMware.VimAutomation.Core  
    Write-Host "Loading VMware PowerCLI Powershell plugin." -ForegroundColor blue  
}  
else  
{  
    Write-host "VMware PowerCLI Powershell plugin already loaded." -ForegroundColor blue  
}

$vCenter = Read-Host "Provide vCenter Server"

\# Connect to the vCenter server  
Connect-VIServer $vCenter -credential ( Get-Credential )

$serviceInstance = get-view ServiceInstance  
if ( $serviceInstance.content.about.Name -like "Vmware vCenter Server") {

    $vmhosts = Get-VMHost | sort Name

    Write-Host "Start or to stop the Remote Tech Support (SSH)service"  
    Write-Host "The Tech Support services on ALL hosts in the vCenter will
be changed by running this script." -ForegroundColor Magenta  
    Write-Host " 1) Start Remote Tech Support (SSH)"  
    Write-Host " 2) Stop Remote Tech Support (SSH)"  
    Write-Host " 3) Start Local Tech Support (DCUI)"  
    Write-Host " 4) Stop Local Tech Support (DCUI)"  
    Write-Host " 5) Start Local & Remote Tech Support (DCUI & SSH)"  
    Write-Host " 6) Stop Local & Remote Tech Support (DCUI & SSH)"  
    $response = Read-Host "Enter your selection"

    foreach ($vmhost in $vmhosts) {

        Switch ($response) {  
            1 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM-SSH"} | % {  
                    if ($_.running -eq $false) {  
                        $_ | Start-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Remote Tech Support Mode on $vHost started"  
                    }  
                    else {  
                        Write-Warning "Remote Tech Support Mode on $vHost already started"
                    }  
                }  
            }

            2 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM-SSH"} | % {  
                    if ($_.running -eq $true) {  
                        $_ | Stop-VMHostService -Confirm:$false | Out-Null  
                        Write-Warning "Remote Tech Support Mode on $vHost stopped"
                    }  
                }  
                else {  
                    Write-Host "Remote Tech Support Mode on $vHost already stopped"  
                }  
            }

            3 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM"} | % {  
                    if ($_.running -eq $false) {  
                        $_ | Start-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Local Tech Support Mode on $vHost started"  
                    }  
                    else {  
                        Write-Warning "Local Tech Support Mode on $vHost already started"
                    }  
                }

            }

            4 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM"} | % {  
                    if ($_.running -eq $true) {  
                        $_ | Stop-VMHostService -Confirm:$false | Out-Null  
                        Write-Warning "Local Tech Support Mode on $vHost stopped"
                    }  
                }  
                else {  
                    Write-Host "Local Tech Support Mode on $vHost already stopped"  
                }  
            }

            5 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM"}| % {  
                    if ($_.running -eq $false) {  
                        $_ | Start-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Local Tech Support Mode on $vHost started"  
                    }  
                    else {  
                        Write-Warning "Local Tech Support Mode on $vHost already started"
                    }  
                }

                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM-SSH"} | % {  
                    if ($_.running -eq $false) {  
                        $_ | Start-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Remote Tech Support Mode on $vHost started"  
                    }  
                    else {  
                        Write-Warning "Remote Tech Support Mode on $vHost already started"
                    }  
                }  
            }

            6 {  
                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM"}| % {  
                    if ($_.running -eq $true) {  
                        $_ | Stop-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Local Tech Support Mode on $vHost stopped"  
                    }  
                    else {  
                        Write-Warning "Local Tech Support Mode on $vHost already stopped"
                    }  
                }

                $vmhost | Get-VMHostService | Where {$_.key -eq "TSM-SSH"} | % {  
                    if ($_.running -eq $true) {  
                        $_ | Stop-VMHostService -Confirm:$false | Out-Null  
                        Write-Host "Remote Tech Support Mode on $vHost stopped"  
                    }  
                    else {  
                        Write-Warning "Remote Tech Support Mode on $vHost already stopped"
                    }  
                }  
            }

            default {  
                Write-Host "Enter a valid number (1-6)"  
            }  
        }  
    }  
}  
else {  
    Write-Error "This script should be run against a vCenter server"  
}  
Disconnect-VIServer -Confirm:$false

Share this post:

Social