Я единственный программист в компании. Мало того, я единственный человек, который обладает компьютерной грамотностью выше "Я могу проверить свою электронную почту". В связи с этим меня попросили перейти на все компьютеры и определить, есть ли на одном из компьютеров дубликаты установочных ключей (теория заключается в том, что парня до меня просто не волновало и случайно использовал любой ключ, который он нажал). Есть ли способ определить это без установки какого-либо дополнительного программного обеспечения?
3 ответа
Попробуйте загрузить программное обеспечение Nirsoft Produkey. Установить на USB-ключ. Обойдите, запустите его и отправьте вывод в файл на ключе. Не требует полной установки - работает автономно. Показывает ключ ОС и ключ Office. Может показывать и другие ключи.
С помощью Produkey Nirsoft вы можете получить все ключи с компьютеров в сети, если у вас есть права локального администратора для каждого или права администратора домена с помощью флагов командной строки /remoteall или /remotealldomain domain.com
Резюме
Идея состоит в том, чтобы использовать PowerShell для запроса лицензионных ключей списка имен ПК (input.csv).
Сценарий также проверит дубликаты ключей и запишет имя ПК, соответствующий ему лицензионный ключ и результат проверки дубликата в новый CSV (output.csv).
Как пользоваться
Создайте список CSV в качестве входных данных. Напишите только одно имя ПК в строке. Сохраните его как Input.csv
В моем примере я четыре раза запрашивал свой собственный компьютер.
Загрузите два сценария PowerShell в то же место, где находится входной CSV
Get-ProductKey.ps1
содержит единственную функцию для получения ключей продукта локальной и удаленной систем и может быть загружен из центра сценариев Microsoft.Write-ProductKeyList.ps1
будет использовать входной CSV и скрипт функции для записи нового выходного CSV, содержащего результаты. Загрузите его с Github или используйте код ниже.. .\Get-ProductKey.ps1 $InputCSV = import-csv .\Input.csv -Header Name $OutputCSV = @() $Keys =@() foreach ($PC in $InputCSV) { $objResult = Get-ProductKey -Computername $PC.name $checkResult = $Keys -contains $objResult.ProductKey $Keys += $objResult.ProductKey $objResult | Add-Member -type NoteProperty -name Duplicate -value $checkResult $OutputCSV = $OutputCSV + $objResult } $OutputCSV | Select-object Computername,OSDescription,ProductKey,Duplicate | export-csv -path .\Output.csv -noType
Если у вас есть все три файла с точными именами в одном месте, вы готовы к работе.
Запустите скриптWrite-ProductKeyList.ps1
правой кнопкой мыши и запустите с помощью Powershell.
Результат (output.csv)
Вы получите файл CSV в том же месте, которое вы можете открыть в Excel. Первое вхождение любого лицензионного ключа будет помечено как False, что означает, что дубликат еще не найден. Конечно, все последующие (дублирующие) ключи будут помечены как Истинные, что означает «Да, этот ключ где-то уже использовался»
прелиминарии
- удаленные машины Windows должны быть доступны через сеть (очевидно)
- Служба "Удаленный реестр" должна быть запущена на каждой удаленной машине (по умолчанию она включена)