Как вы используете PowerShell CIM для получения и / или установки значений реестра на удаленном компьютере? - PullRequest
0 голосов
/ 06 июля 2018

Как использовать команду PowerShell CIM для получения и / или установки значений реестра на удаленном компьютере? Я проверил, что New-CimSession подключен правильно, но я не могу найти команды для получения или установки значений реестра.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Вам необходимо вызвать Invoke-CimMethod, чтобы вызвать соответствующий метод класса WMI StdRegProv, например, как это :

$computer = 'remotehost'
$hive     = [uint32]'0x80000002'  # HKLM
$subkey   = 'SOFTWARE\Foo'
$value    = 'bar'
$data     = 'baz'

Invoke-CimMethod -Computer $computer -Namespace 'root/cimv2' -Class 'StdRegProv' -MethodName 'SetStringValue' -Arguments @{
    'hDefKey'     = $hive
    'sSubKeyName' = $subkey
    'sValueName'  = $value
    'sValue'      = $data
}

Однако вместо CIM или WMI я бы рекомендовал использовать соответствующий .Net API :

$computer = 'remotehost'
$hive     = 'LocalMachine'  # HKLM
$subkey   = 'SOFTWARE\Foo'
$value    = 'bar'
$data     = 'baz'

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($hive, $computer)
$key = $reg.OpenSubKey($subkey, $true)
$key.SetValue($value, $data, 'String')
0 голосов
/ 06 июля 2018

Вы бы сделали это через PSsession

$RemoteComputer = New-PSsession -Computer CompNamehere

Invoke-Command -Computer $RemoteComputer -ScriptBlock {Set-ItemProperty HKLM:\registrypath}

Это покажет примеры

Get-Help Set-ItemProperty -Full 
...