Get-OID.psm1

function Get-OID
{
    [alias("Generate-OID")]
    [cmdletbinding()]
    param()
    $Prefix="1.2.840.113556.1.8000.2554" 
    $GUID=[System.Guid]::NewGuid().ToString() 
    $Parts=@() 
    $Parts+=[UInt64]::Parse($guid.SubString(0,4),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(4,4),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(9,4),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(14,4),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(19,4),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(24,6),"AllowHexSpecifier") 
    $Parts+=[UInt64]::Parse($guid.SubString(30,6),"AllowHexSpecifier") 
    $out = [String]::Format("{0}.{1}.{2}.{3}.{4}.{5}.{6}.{7}",$prefix,$Parts[0],$Parts[1],$Parts[2],$Parts[3],$Parts[4],$Parts[5],$Parts[6])
    try 
    {
        $out | Set-Clipboard -ErrorAction Stop
        $output = " copied to clipboard"
        $length = $out.Length + $output.Length
        $dashes = "-" * $length
        Write-Host "$dashes"
        Write-Host "$out" -ForegroundColor Red -NoNewline
        Write-Host "$output" -ForegroundColor Green
        Write-Host "$dashes"
    }
    catch 
    {
        Write-Warning $Error[0].Exception.Message
    }
}