tech.guitarrapc.cóm

Technical updates

PowerShell で Internet Explorer (IE) のバージョンを取得する

前回のUACに引き続き、レジストリ操作で Internet Explorer のバージョンを取得してみましょう。

今回も PowerShell で さくっと、しかもほぼ前回と同様のコードという手抜きで!

IE バージョン の取得

今回も、レジストリで可能です。

つまり、 (Get|Set|Remove)-ItemProperty 系のCndlet が大活躍です。

レジストリ情報は以下です。

Path : HKLM\SOFTWARE\Microsoft\Internet Explorer
Name : Version
Value : バージョン (9. がVersionの頭につきます)

リモートホストへの実行

今回もローカルでPowerShell として 動作する = valentiaを使えばリモートでも同様に動作します。

コード

GitHub に置いておきます。

PowerShellUtil / Get-IEVersion

さくっと書きましょう。

function Get-IEVersion
{
<#
.Synopsis
   Check IEVersion from Registry
.DESCRIPTION
   This cmdlet will return IEVersion
.EXAMPLE
    # if returned '9.11.9600.16384' then it will be IE11 '11.0.9600.16384'
   Get-IEVersion
.EXAMPLE
   Get-IEVersion -Verbose
#>

    [CmdletBinding()]
    Param
    (
    )

    begin
    {
        $path = "registry::HKLM\SOFTWARE\Microsoft\Internet Explorer"
        $name = "Version"
    }

    process
    {
        $uac = Get-ItemProperty $path
        if ($uac) 
        { 
            Write-Verbose ("Registry path '{0}', name '{1}', value '{2}'" -f (Get-Item $path).name, $name, $uac.$name)
            $uac.$name
        }
        else 
        {
            Write-Verbose ("Registry path '{0}', name '{1}', value '{2}'" -f (Get-Item $path).name, $name, $uac.$name)
            Write-Warning ("Could not found '{0}' from '{1}'" -f $name, (Get-Item $path).name)
        }
    }
}

実行結果

IE11 '11.0.9600.16384' の場合以下のように表示されます。

9.11.9600.16384