Запросы через PowerShell как 32-битный и 64-битный реестр - PullRequest
2 голосов
/ 05 марта 2020

Я запускаю скрипт, который запрашивает windows и его реестр. Я пытаюсь добавить код, в котором он может запрашивать как 64-битную, так и 32-битную версии ОС.

Так что, если это 32-битная версия, она должна посмотреть на HKLM_SOFTWARE_TEAMVIEWER, а если она 64-битная, она должна запросить HKLM_SOFTWARE_WOW6432Node_Teamviewer

Итак, как должна выглядеть эта часть для запроса обоих местоположений в зависимости от типа ОС?

$TVID = (Get-ItemProperty "HKLM:\SOFTWARE\TeamViewer").ClientID

Это скрипт:

    Param(
 [string]$ServerShare
)

$dom = $env:userdomain
$usr = $env:username
$Fullname = ([adsi]"WinNT://$dom/$usr,user").fullname

$TVID = (Get-ItemProperty "HKLM:\SOFTWARE\TeamViewer").ClientID
if (!$TVID) { $TVID = (Get-ItemProperty "HKLM:\SOFTWARE\TeamViewer\Version9").ClientID }

Ответы [ 3 ]

0 голосов
/ 08 марта 2020

Помимо первого определения того, какую разрядность использует компьютер, я думаю, есть более простой способ - проверить любой из двух возможных путей реестра, например:

# get the existing registry path (if any)
$regPath = 'HKLM:\SOFTWARE\TeamViewer', 'HKLM:\SOFTWARE\WOW6432Node\TeamViewer' | Where-Object { Test-Path -Path $_ }
if ($regPath) { 
    # we found the path, get the ClientID value
    $TVID = (Get-ItemProperty -Path $regPath).ClientID
}
else { 
    Write-Warning "TeamViewer registry path not found"
}
0 голосов
/ 09 марта 2020

Самый простой способ проверить битность ОС - это использовать. net.

[Environment]::Is64BitOperatingSystem
0 голосов
/ 06 марта 2020

Вы можете проверить WMI в Win32_Processor и посмотреть свойство AddressWidth процесса, чтобы проверить AddressWidth CPU вашей ОС.

#determine process version
[boolean]$is64bit = [boolean]((Get-WmiObject -Class "Win32_Processor" | 
   Where-Object {$_.DeviceID -eq 'CPU0'} | Select -ExpandProperty AddressWidth) -eq 64) 

if ($is64bit){
    #look here for 64 bit reg keys
    Write-Output "x64 bit os detected"
}
else{
    #look here for 32 bit reg keys
    Write-Output " 32 bit os detected"
}

И запустить в моей системе

x64 bit Обнаружена ОС

Теперь все, что вам нужно сделать, это слить код выборки из реестра в нужные места, и вы уже в пути ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...