没SDK瞅挺郁闷的
现在Coding,什么都不怕,就怕没SDK,对Vista这种新系统,更是如此,贴个脚本,方便一下大家(VBS脚本啊)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWPA = objWMIService.ExecQuery _
("Select * from SoftwareLicensingProduct")
For Each objWPA in colWPA
Wscript.Echo "LicenseStatus: " & objWPA.LicenseStatus
Wscript.Echo "Description: " & objWPA.Description
Wscript.Echo "PartialProductKey:" & objWPA.PartialProductKey
Wscript.Echo "Name: " & objWPA.Name
Next
其实,说白了,就是Vista中一个新WMI 接口了,其实这个脚本的起源来自这里:
http://www.microsoft.com/china/technet/community/scriptcenter/compmgmt/scrcm27.mspx
识别Windows 产品激活状态
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWPA = objWMIService.ExecQuery _
("Select * from Win32_WindowsProductActivation")
For Each objWPA in colWPA
Wscript.Echo "Activation Required: " & objWPA.ActivationRequired
Wscript.Echo "Description: " & objWPA.Description
Wscript.Echo "Product ID: " & objWPA.ProductID
Wscript.Echo "Remaining Evaluation Period: " & _
objWPA.RemainingEvaluationPeriod
Wscript.Echo "Remaining Grace Period: " & objWPA.RemainingGracePeriod
Wscript.Echo "Server Name: " & objWPA.ServerName
Next
开始,我觉得照猫画虎,XP和2003上面能用的API,Vista上面也应该差不多,而且还找到MSDN上面的说明:
Requirements
| Client |
Requires Windows Vista or Windows XP. |
| Server |
Requires Windows Server "Longhorn" or Windows Server 2003. |
| MOF |
Declared in Licwmi.mof. |
| DLL |
Requires Licwmi.dll. |
| Namespace |
Defined in \root\cimv2. |
http://msdn2.microsoft.com/en-us/library/aa394520.aspx
但是,实际一用Vista上面根本没这个,不知道是不是MSDN的Spec Issue了,狂晕中,还好后来记起最近被中国的同志们整天折腾的slmgr.vbs
从里面找到了新的API,饿地神啊,真是晕死我了.