Нелицензированные рабочие станции в Active Directory

Я аудитор, и я обнаружил, что двое из пользователей в компании, в которой я работаю, имеют нелицензированные операционные системы Windows, что наводит меня на мысль, что могут быть и другие. Мне любопытно узнать, есть ли способ извлечь все учетные записи в домене, которые не активировали свою Windows?

2
задан 27 March 2018 в 14:26
3 ответа

Да, есть несколько вариантов . Из блога Scriptin Guys возьмите фрагмент (или функцию) 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
    }
}
1
ответ дан 3 December 2019 в 11:26

Хотя использовать Средство управления активацией корпоративных лицензий (VAMT) для получения отчета?

Средство управления активацией корпоративных лицензий (VAMT) включает сеть администраторов и других ИТ-специалистов для автоматизации и централизованно управлять Windows®, Microsoft® Office и выбирать другие объем продукции и процесс розничной активации. 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 установленными в этих двух операционных системах, все еще можно управлять.

1
ответ дан 3 December 2019 в 11:26

Мне любопытно узнать, есть ли способ извлечь все учетные записи в домен, в котором не активирована их Windows?

Нет, нет возможности сделать это - Active Directory не отслеживает его. Есть также веские причины НЕ активировать машины, особенно если вы не запускаете локальный сервер активации (в основном: виртуальные машины и машины, которые работают только временно для целей разработки).

В другом ответе есть сценарий PowerShell, который в основном выполняет

Get-ADComputer -Filter * | Get-ActivationStatus

  • , но он не получает статус из активного каталога, как вы просили. Он запрашивает AD для всех машин, а затем спрашивает их.

У этого есть несколько проблем:

  • Машина должна быть в сети для проверки
  • Разрешения должны позволять проверку.
  • Машина должна быть доступной, т. Е. вызов не защищен брандмауэром и / или за NAT
0
ответ дан 3 December 2019 в 11:26

Теги

Похожие вопросы