`
wsql
  • 浏览: 11782270 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

POWERSHELL的一个函数

 
阅读更多
也许有用的,

一个函数

function Get-SQLserverKey {

    param ($targets = ".")
    $hklm = 2147483650
    $regPath = "SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\Setup"
    $regValue1 = "DigitalProductId"
    $regValue2 = "PatchLevel"
    $regValue3 = "Edition"
    Foreach ($target in $targets) {
        $productKey = $null
        $win32os = $null
        $wmi = [WMIClass]"\\$target\root\default:stdRegProv"
        $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue1)
        [string]$SQLver = $wmi.GetstringValue($hklm,$regPath,$regValue2).svalue
        [string]$SQLedition = $wmi.GetstringValue($hklm,$regPath,$regValue3).svalue
        $binArray = ($data.uValue)[52..66]
        $charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9"
        ## decrypt base24 encoded binary data
        For ($i = 24; $i -ge 0; $i--) {
            $k = 0
            For ($j = 14; $j -ge 0; $j--) {
                $k = $k * 256 -bxor $binArray[$j]
                $binArray[$j] = [math]::truncate($k / 24)
                $k = $k % 24
         }
            $productKey = $charsArray[$k] + $productKey
            If (($i % 5 -eq 0) -and ($i -ne 0)) {
                $productKey = "-" + $productKey
            }
        }
        $win32os = Get-WmiObject Win32_OperatingSystem -computer $target
        $obj = New-Object Object
        $obj | Add-Member Noteproperty Computer -value $target
        $obj | Add-Member Noteproperty OSCaption -value $win32os.Caption
        $obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture
        $obj | Add-Member Noteproperty SQLver -value $SQLver
        $obj | Add-Member Noteproperty SQLedition -value $SQLedition
        $obj | Add-Member Noteproperty ProductKey -value $productkey
        $obj
    }
}
Get-SQLserverKey


要注意的是,SERVERNAME,而不是SERVERNAME\INSTANCE.
分享到:
评论

相关推荐

    PowerShell中简单的自定义函数和调用函数例子

    在PowerShell中是否有函数?...我们先来看一下简单的PowerShell函数: 代码如下: function Test-Function {  Write-Host ‘Hello World!’ } 代码很简单,一共四行。第一行是由function关键词声明要定义一个

    PowerShell中prompt函数的妙用

    先来看看如下的一个函数定义: 代码如下: function prompt{  “PS zhanghong> “ } 这是一个非常普通的函数,没有什么实质性的不同。而且函数体里面的代码更是简单的不得了,直接是输出一个字符串。 把这个函数放...

    PowerShell实现统计函数嵌套深度

    主要介绍了PowerShell实现统计函数嵌套深度,本文分享一个函数,可以实现统计脚本执行的嵌套层次,需要的朋友可以参考下

    PowerShell, 各种PowerShell函数和脚本.zip

    PowerShell, 各种PowerShell函数和脚本 命令行命令各种PowerShell函数和脚本。 these在 PowerShell Gallery上发布为 WFTools ( 感谢) !为了简化和改进协作,已经将两个功能迁移到各自的知识库中。 副本保留在这里...

    PowerShell中的函数重载示例

    主要介绍了PowerShell中的函数重载示例,本文直接给出一个完整重载示例,需要的朋友可以参考下

    PowerShell中给函数参数设置帮助信息的例子

    下面这段代码,我们创建了一个test-function的函数。这个函数有一个参数p,它是必选参数。更进一步,我们为这个参数$p设置了一个helpMessage属性,这个属性的意思就是为这个必须参数提供帮助信息。因为是必选参数,...

    PowerShell函数指定返回值类型实例

    定义PowerShell函数的返回值类型,要使用OutputType这个指令。将这个指令放到param指令之前即可实现对返回值类型的定义。 代码如下: function Test-IntelliSense {  [OutputType(‘System.DateTime’)]  param() ...

    PowerShell中对函数参数的命名建议

    PowerShell自定义函数的参数没有具体的命名规则,那么怎么做才能让参数的命名更加科学可持续。 我们应该怎么来命名函数的参数名称呢?有没有一个可供参考的列表?当然微软没有给出来。但是我们可以来理一个列表出来...

    了解Powershell中的Exit函数

    Powershell支持“EXIT”...可是当你没有保存当前脚本或当你调用的是一个交互函数,你整个Powershell宿主将关闭。 “Exit”结束当前调用的脚本,不仅仅是函数。倘若你把它像下面那样保存到脚本,你也许会有意外的发

    PowerShell函数一次返回多个返回值示例

    本文介绍在自定义PowerShell函数时,如何让函数返回值,如何接收返回值,如何让不相干的内容不放到返回值数组中。 PowerShell函数体中的任何输出,一般来说,都会以返回值的形式返回给函数调用者。多个输出的内容是...

    PowerShell函数中限制数组参数个数的例子

    数组传递参数时,参数个数本身无法限制,PowerShell函数提供了一个方法来限制数组中参数的个数。 PowerShell函数可以接受数组作为输入参数。而且不需要将数组定义好后再传给PowerShell函数,而可以直接将一个逗号...

    PowerShell:我创建的PowerShell脚本和函数的集合,使我的生活更轻松

    PowerShell脚本 我创建的PowerShell脚本和函数的集合,使我的生活更轻松。

    PowerShell函数参数设置为即可选又必选的方法

    本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选。 好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦。 在PowerShell中,我们有可能有这样的需求,...

    PowerShell中使用return语句退出函数例子

    本文介绍在自定义PowerShell函数时,可以使用return语句来退出函数,同时return语句也可以返回值给函数的调用者。 使用return语句来直接退出函数。看一个退出函数的例子: 代码如下: function Get-NamedProcess { ...

    Python-通过替换函数名称变量和参数来混淆powershell脚本

    通过替换函数名称,变量和参数来混淆powershell脚本

    PowerShell函数中接收管道参数实例

    本文介绍在自定义PowerShell函数时,如何设置函数通过管道(Pipeline)接收输入参数。 先看一个例子,用管道作为输入参数的函数: 代码如下: function Test-Pipeline {  param(  [Parameter(ValueFromPipeline=$...

    PowerShell函数用Hash表传参实例

    本文介绍在自定义PowerShell函数时,使用Hash表作为参数,它相当于将Hash表中的键当作参数名,而键的值当作参数值。 先直接看看这个以Hash表作为参数赋值给函数的示例: 代码如下: $hash = @{  Path = $env:windir...

    PowerShell定义函数参数的2种方法和传参方法实例

    本文介绍PowerShell自定义函数定义参数的两种方法,一种是将参数列表放到函数名之后,就跟其它语言定义函数参数一样;另一种则是PowerShell独有的方式,那就是使用param关键词。 先来看看第一种定义参数的方式——将...

    Play-Notes:一个简单的Powershell函数,使您可以使用Windows中的Beep()函数以音乐符号编写播放歌曲

    播放笔记描述一个简单的PowerShell函数,使您可以使用Windows中的Beep()函数以乐谱形式编写/播放歌曲。自定义音乐符号对于每个音符,脚本会将您的输入分为3部分。 球场C,C#,D,Eb,E,F,F#,G,G#,A,Bb,B 八度音阶0,1,2...

    PowerShell函数参数设置成自动识别数据类型的例子

    这个PowerShell函数在设置参数集的时候,为参数集中的第一个参数设置了数据类型,这样在调用函数时,就可以自动判断一个参数值它应该赋给哪个参数了。 代码如下: function Test-Binding {  [CmdletBinding...

Global site tag (gtag.js) - Google Analytics