2016-01-14 3 views
0

Возможно ли получить серийные номера из установленного программного обеспечения (Adobe, Autodesk, VMWare и т. Д.)?Получить серийные номера для установленного программного обеспечения

Из WMI я могу получить только ключи MS - OS/Office. Есть ли способ получить его от SCCM или AD?

ответ

2

Нет простого способа, которым я знаю. Это будет зависеть от каждого приложения, если вам повезет, и они хранят информацию в реестре, тогда вы можете добавить это в инвентарь программного обеспечения, но если он находится в зашифрованном ключевом файле (как я подозреваю, Adobe использует), то вы в значительной степени повезло.

0

Для не REG-BINARY типа Я использую этот скрипт, который считывает информацию из файла csv. Поэтому мне не нужны никакие манипуляции с декодированием.

$csv = Import-CSV "\\fs-lv-01\users$\username\Desktop\PowerShell\TSTArray.csv" 
    $resultsarray = @() 

    $target = $env:COMPUTERNAME 
    $hklm = "HKLM:" 
    $join_path = $hklm, $regPath -join "\" 

    Foreach ($Registry in $csv) 
    { 
        $regPath = $Registry.regPath 
        $regValue = $Registry.regValue 
        $join_path = $hklm, $regPath -join "\" 

     If ($Registry.regPath -ne 0) 
     { 
      $data = (Get-ItemProperty -Path $join_path -name $regValue -ErrorAction SilentlyContinue).$regValue 

      IF ($data -ne $null) 
      { 
       $obj = New-Object Object 
       $obj | Add-Member Noteproperty Computer -value $target 
       $obj | Add-Member Noteproperty ProductKey -value $data 
       $obj 

       $resultsarray += $obj 
      } 
     } 

    } 

    $resultsarray | Export-Csv "\\fs-lv-01\users$\username\Desktop\PowerShell\TSTSerialNumbers.csv" -NoTypeInformation 

Та же идея Microsoft продуктов:

$csv = Import-CSV "\\fs-lv-01\users$\username\Desktop\PowerShell\MSArray.csv" 
$resultsarray = @() 

$hklm = 2147483650 
$target = $env:COMPUTERNAME 

Foreach ($Registry in $csv) 
{ 
       $regPath = $Registry.regPath 
       $regValue = $Computer_name.regValue 

    If ($Registry.regPath -ne 0) 
    { 
     $productKey = $null 
     $win32os = $null 
     $wmi = [WMIClass]"\\$target\root\default:stdRegProv" 
     $data = $wmi.GetBinaryValue($hklm,$regPath,$regValue) 
     $binArray = ($data.uValue)[52..66] 
     $charsArray = "BCDFGHJKMPQRTVWXY2346789" 
     ## decrypt base24 encoded binary data 
     for ($i = 24; $i -ge 0; $i--) { 
         $r = 0 
         for ($j = 14; $j -ge 0; $j--) { 
         $r = ($r * 256) -bxor $binArray[$j] 
         $binArray[$j] = [math]::Floor([double]($r/24)) 
         $r = $r % 24 
         } 
         $ProductKey = $charsArray[$r] + $ProductKey 
         if (($i % 5) -eq 0 -and $i -ne 0) { 
         $ProductKey = "-" + $ProductKey 
         } 
        } 
     $win32os = Get-WmiObject Win32_OperatingSystem -computer $target 
     $obj = New-Object Object 
     $obj | Add-Member Noteproperty Computer -value $target 
     $obj | Add-Member Noteproperty Caption -value $win32os.Caption 
     $obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture 
     $obj | Add-Member Noteproperty ProductKey -value $productKey 
     $obj 

     $resultsarray += $obj 

    } 

} 

$resultsarray | Export-Csv "\\fs-lv-01\users$\username\Desktop\PowerShell\SerialNumbers.csv" -NoTypeInformation 

Оба сценария испытаны, но я хочу также получить Adobe ключи .. У меня есть информация о том, как декодировать Adobe сериалами, но мне нужно протестируйте его на лицензионной версии.

Смежные вопросы