我有以下Powershell脚本:
set.seed(24)
df1 <- data.frame(day = 1:20, N = 20, col1 = rnorm(20),
col2 = runif(20))
其输出是:
$registrypath = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard"
$Name = "EnableVirtualizationBasedSecurity"
$ExpectedValue = "1"
$value = Get-ItemProperty -Path $registrypath -Name $Name
Write-Host($value)
我想将其中的EnableVirtualizationBasedSecurity字段的值转换为我的Powershell脚本中的变量。
像 @{EnableVirtualizationBasedSecurity=1; PSPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard; PSParentPath=Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control; PSChildName=DeviceGuard; PSDrive=HKLM;
PSProvider=Microsoft.PowerShell.Core\Registry}
我如何在Powershell中执行此操作?
答案 0 :(得分:2)
Get-ItemProperty
为您提供PSCustomObject
作为响应。
这意味着您可以像这样直接获取属性的值:
$value.EnableVirtualizationBasedSecurity
或将值直接保存在Get-ItemProperty
调用中,如下所示:
(Get-ItemProperty -Path $registrypath -Name $Name).EnableVirtualizationBasedSecurity
或类似的
Get-ItemProperty -Path $registrypath -Name $Name | Select-Object -Expandproperty EnableVirtualizationBasedSecurity
我认为问题是,您希望响应是hashtable
而不是PSCustomObject
。
您可以通过在调用周围添加()
并调用getType()
方法来获得有关响应的对象类型的信息:
(Get-ItemProperty -Path $registrypath -Name $Name).GetType()