Get-SqlEdition

02/20/2014 13:20

<#
.SYNOPSIS
    Collects each SQL Edition Type by Instance Name.
.DESCRIPTION
    Enumerates the registry for installed instances of SQL, then foreach installed instance, it enumerates the Edition Type.
.EXAMPLE
    Get-SqlEdition
.EXAMPLE
    Get-SqlEdition -ComputerName MySQLServer.mydomain.org
.LINKS
    https://gist.github.com/necromorph1024/9050441
#>

function Get-SqlEdition
{
    [CmdletBinding()]
    [OutputType([PSObject])]
    param
    (
        [string]
        $ComputerName=$env:COMPUTERNAME
    )

    if (-not(Test-Connection -ComputerName $ComputerName -Quiet -Count 2))
    {
        Write-Output "Failed to connect to $ComputerName.  Please ensure the system is available."
    }

    $hive=[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', "$ComputerName")

    try
    {
        $regKeys=$hive.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server")

        $resutls=@()
        foreach ($instanceNames in $regKeys.OpenSubKey("Instance Names"))
        {
            foreach ($instance in $instanceNames.GetSubKeyNames())
            {
                $instanceName=$instanceNames.OpenSubKey($instance)
                foreach ($name in $instanceName.GetValueNames())
                {
                    foreach ($server in $regKeys.OpenSubKey($instanceName.GetValue($name)+"\\Setup"))
                    {
                        $output=New-Object PSobject
                        $output | Add-Member -NotePropertyName ComputerName -NotePropertyValue $ComputerName
                        $output | Add-Member -NotePropertyName InstanceName -NotePropertyValue $instanceName.GetValue($name)
                        $output | Add-Member -NotePropertyName EditionName -NotePropertyValue $server.GetValue("Edition")
                        $resutls+=$output
                        return $output
                    }
                }
            }
        }
    }
    catch
    {
        Write-Output "SQL Server is not installed on $ComputerName"
    }
}

Back
Make a website for free Webnode