powershell - 如何使用 PowerShell CIM 在远程计算机上获取和/或设置注册表值?
问题描述
如何使用 PowerShell CIM 命令获取和/或设置远程计算机上的注册表值?我已验证 New-CimSession 连接正确,但找不到获取或设置注册表值的命令。
解决方案
您需要为此调用WMI 类Invoke-CimMethod
的正确方法,例如: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')
推荐阅读
- python - 如何获取用户角色
- angular - 为什么我必须单击两次才能执行我的功能?
- python-3.x - 不使用任何软件包的 2d 绘图仪
- c# - 如果为接口命名,MVC DisplayTemplate 不呈现
- python - 如何修复 BeautifulSoup/selenium 在同一网站上的某些页面但不是全部?
- mysql - 从已经受限的 MYSQL 查询中获取受限的子查询结果
- css - 如何设置 UTF 箭头样式➤
- python-3.x - 从数据库mysql中检索数据
- php - 如果打开流失败重试:HTTP 请求失败!1 PHP
- java - 错误:无法弄清楚如何将此字段保存到数据库中