• PowerShell读取Windows产品密钥


    之前大多数人可能用过VBS读取Windows产品密钥的VBS脚本,VBS脚本通常都比较隐晦、难懂,今天忙里偷闲,随手写了一个用于读取Windows产品密钥的PowerShell脚本。

    代码如下:

            =====文件名:Get-WindowsProductKey.ps1=====
    function Get-WindowsProductKey([string]$computer)
    {
    
    $comments =@'
    author:fuhj(powershell#live.cn ,http://fuhaijun.com) 
    example: Get-WindowsProductKey .
    '@
    $reg = [WMIClass] ("\" + $computer + "
    ootdefault:StdRegProv")
    $values = [byte[]]($reg.getbinaryvalue(2147483650,"SOFTWAREMicrosoftWindows NTCurrentVersion","DigitalProductId").uvalue)
    $lookup = [char[]]("B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9")
    $keyStartIndex = [int]52;
    $keyEndIndex = [int]($keyStartIndex + 15);
    $decodeLength = [int]29
    $decodeStringLength = [int]15
    $decodedChars = new-object char[] $decodeLength 
    $hexPid = new-object System.Collections.ArrayList
    for ($i = $keyStartIndex; $i -le $keyEndIndex; $i++){ [void]$hexPid.Add($values[$i]) }
    for ( $i = $decodeLength - 1; $i -ge 0; $i--)
        {                
         if (($i + 1) % 6 -eq 0){$decodedChars[$i] = '-'}
         else
           {
            $digitMapIndex = [int]0
            for ($j = $decodeStringLength - 1; $j -ge 0; $j--)
            {
                $byteValue = [int](($digitMapIndex * [int]256) -bor [byte]$hexPid[$j]);
                $hexPid[$j] = [byte] ([math]::Floor($byteValue / 24));
                $digitMapIndex = $byteValue % 24;
                $decodedChars[$i] = $lookup[$digitMapIndex];
             }
            }
         }
    $STR = ''     
    $decodedChars | % { $str+=$_}
    $STR
    }
    
    Get-WindowsProductKey .

    执行效果如下:

    image 

    作者: 付海军
    出处:http://fuhj02.cnblogs.com
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接且保证内容完整!否则必究法律责任!
    个人网站: http://www.fuhaijun.com/

  • 相关阅读:
    什么样的基础设施适合快速和大数据架构?
    四大关键步骤掌握CloudOps模型
    容器技术适合你的企业吗
    内存压缩PK页面交换 解决内存问题谁更在行
    内存共享和过量使用区别在哪里
    网络策略中使用的 VLAN 属性
    四大VDI客户端 总有一款适合你
    使用Windows SFC和DISM工具来解决服务器OS问题
    远程 RADIUS 服务器组
    excel知识
  • 原文地址:https://www.cnblogs.com/fuhj02/p/3351172.html
Copyright © 2020-2023  润新知