【问题标题】:Programmatically check whether Windows 7 is activated以编程方式检查 Windows 7 是否已激活
【发布时间】:2011-08-17 01:48:00
【问题描述】:

背景: 我正在创建将加载到多个工作站上的系统映像。将图像加载到工作站后将激活 Windows。这些计算机将不会连接到 Internet,将通过电话激活。

问题: 我想以编程方式检查 Windows 7 是否已激活,这样如果 Windows 7 未激活,我们的软件将无法运行。我们的软件是用 C# 编写的。

【问题讨论】:

    标签: c# windows authentication activation


    【解决方案1】:

    软件许可 API - SLIAPI,请查看 SLIsGenuineLocal()。 (替换LegitCheck

    【讨论】:

    • 谢谢亚历克斯。这将如何在 C# 应用程序中实现?
    • 谷歌搜索 "EntryPoint = "SLIsGenuineLocal"" 给了我 theroadtodelphi.wordpress.com/2009/10/12/… 这对我有用 - 只要我的副本是合法的 :)
    【解决方案2】:

    您可以在机器上运行“Slmgr.vbs”,然后重定向输出进行检查。

    System.Diagnostics.Process.Start(@"cscript Slmgr.vbs > D:\\log.txt");
    

    这将返回您需要的所有信息。不过,这不是最干净的方法。

    【讨论】:

      【解决方案3】:

      不确定它是否适用于 Win7,但我 found a post 使用 Win32_WindowsProductActivation 类检查 XP 是否激活。

      我将在我的机器(x64 Win7)上构建一个测试,看看它是否返回激活状态,但至少同时给你一些尝试的东西。

      编辑 (希望我继续阅读文档) 该课程页面上的评论提到该课程在 Win 7 和其他版本上)似乎被替换为Software Licensing Classes。我会看看我能不能得到一个有效的结果。

      【讨论】:

        【解决方案4】:

        您可以检查 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows Activation Technologies\AdminObject\Store\TotalValidations 并查看它是否为 1。这可能不是验证激活的决定性方法,但您至少应该是abel 看看它是否被验证。

        【讨论】:

          【解决方案5】:

          您可以使用此参考:https://github.com/Marko97IT/CWA 在 README.md 中,您可以找到下载链接。

          【讨论】:

          猜你喜欢
          • 2017-09-14
          • 2015-02-18
          • 1970-01-01
          • 2017-03-03
          • 2012-04-10
          • 2015-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多