Active Directory 中未经许可的工作站

Active Directory 中未经许可的工作站

我是一名审计员,我发现我所在的公司中有两个用户拥有未经授权的 Windows 操作系统,这让我相信可能还有其他用户。我很好奇,是否有任何方法可以提取域中所有未激活 Windows 的帐户?

答案1

是的,有多种的 选项。从 Scriptin Guys Blog 获取Get-ActivationStatus代码片段(或函数)并尝试如下操作:

Get-ADComputer -Filter * | Get-ActivationStatus | Export-Csv C:\Activation.csv

function Get-ActivationStatus {
[CmdletBinding()]
    param(
        [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [string]$DNSHostName = $Env:COMPUTERNAME
    )
    process {
        try {
            $wpa = Get-WmiObject SoftwareLicensingProduct -ComputerName $DNSHostName `
            -Filter "ApplicationID = '55c92734-d682-4d71-983e-d6ec3f16059f'" `
            -Property LicenseStatus -ErrorAction Stop
        } catch {
            $status = New-Object ComponentModel.Win32Exception ($_.Exception.ErrorCode)
            $wpa = $null    
        }
        $out = New-Object psobject -Property @{
            ComputerName = $DNSHostName;
            Status = [string]::Empty;
        }
        if ($wpa) {
            :outer foreach($item in $wpa) {
                switch ($item.LicenseStatus) {
                    0 {$out.Status = "Unlicensed"}
                    1 {$out.Status = "Licensed"; break outer}
                    2 {$out.Status = "Out-Of-Box Grace Period"; break outer}
                    3 {$out.Status = "Out-Of-Tolerance Grace Period"; break outer}
                    4 {$out.Status = "Non-Genuine Grace Period"; break outer}
                    5 {$out.Status = "Notification"; break outer}
                    6 {$out.Status = "Extended Grace"; break outer}
                    default {$out.Status = "Unknown value"}
                }
            }
        } else {$out.Status = $status.Message}
        $out
    }
}

答案2

虽然使用批量激活管理工具 (VAMT)得到报告?

批量激活管理工具 (VAMT) 使网络管理员和其他 IT 专业人员能够自动化和集中管理 Windows®、Microsoft® Office 以及其他 Microsoft 产品批量和零售激活流程。VAMT 可以使用多个激活密钥 (MAK) 或 Windows 密钥管理服务 (KMS) 来管理批量激活。

VAMT 旨在管理以下操作系统的批量激活:Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Server 2008、Windows Server 2008 R2、Windows Server 2012、Windows Server 2012 R2、Microsoft Office 2010 和 Microsoft Office 2013。安装了 Windows XP 或 Windows Server 2003 批量版本的计算机无法使用 VAMT 进行管理。但是,仍可以管理安装在这两个操作系统上的 Office 2010 和 Office 2013 产品。

答案3

我很好奇,想知道是否有任何方法可以提取域中所有尚未激活 Windows 的帐户?

不,没有办法做到这一点 - Active Directory 不会跟踪它。还有很好的理由不激活机器,特别是如果您不运行本地激活服务器(主要是:虚拟机和仅临时用于开发目的的机器)。

另一个答案中提供了一个 powershell 脚本,它基本上执行

Get-ADComputer -Filter * | Get-ActivationStatus

  • 但它没有像您要求的那样从 Active Directory 获取状态。它查询所有机器的 AD,然后询问它们。

这有多个问题:

  • 机器必须在线才能被检查
  • 权限必须允许检查。
  • 该机器必须是可访问的,即呼叫未经过防火墙和/或 NAT

相关内容