计算powershell中的注册表项



我目前正在进行一个项目,我正在通过注册表中的SOFTWAREPoliciesMicrosoft edge ExtensionInstallForcelist位置在我们环境中的计算机上安装一些chrome和edge扩展。

我正试图找出一种方法,我可以脚本在该列表中的条目数的计数,然后做一个+1为下一个应用程序的名称,如果我需要安装一个新的保存硬编码的数字到我的脚本。我试着四处寻找解决问题的方法,但我不确定如何表达我的问题来找到我具体问题的答案。我对powershell仍然很陌生,我只是在写我的第一个脚本,我确信有一些愚蠢的东西我忽略了,或者只是现在没有想到。我已经在我的黑名单注册表项上尝试了以下内容,因为我知道那里有不止一个。

PS C:WINDOWSsystem32> get-RegValue -Hive LocalMachine -key SOFTWAREPoliciesMicrosoftEdgeExtensionInstallBlocklist |Select-Object -Property value
Value       
-----       
1           
New Value #1

PS C:WINDOWSsystem32> get-RegValue -Hive LocalMachine -key SOFTWAREPoliciesMicrosoftEdgeExtensionInstallBlocklist |Select-Object -Property value | measure

Count    : 2
Average  : 
Sum      : 
Maximum  : 
Minimum  : 
Property : 


PS C:WINDOWSsystem32> get-RegValue -Hive LocalMachine -key SOFTWAREPoliciesMicrosoftEdgeExtensionInstallBlocklist |Select-Object -Property value | measure |Select-Object -Property count
Count
-----
2

PS C:WINDOWSsystem32> $Value = get-RegValue -Hive LocalMachine -key SOFTWAREPoliciesMicrosoftEdgeExtensionInstallBlocklist |Select-Object -Property value | measure |Select-Object -Property count
PS C:WINDOWSsystem32> [int]$Value 
Cannot convert the "@{Count=2}" value of type "Selected.Microsoft.PowerShell.Commands.GenericMeasureInfo" to type "System.Int32".
At line:1 char:1
+ [int]$Value
+ ~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : ConvertToFinalInvalidCastException

我遇到的问题是我不确定如何将计数返回为整数?或者至少将计数从字符串转换为整数,这样我就可以对它进行+1循环。

我的最终目标是让它读取注册表,计算其中的字符串数量,然后为下一个条目的名称+1,然后为该条目设置数据。就像我说的,我可以很容易地对它进行硬编码这样app 1就是&;1&;应用程序2是"2",但我认为如果我能让它计算条目和+1的名称会更好。

@{Count=2}"表示这是一个具有Count属性的对象。你得到这个错误是因为你不能将整个对象强制转换为整数。

你可以通过它的属性

访问这个值
$Value.Count

或者你可以在你的主语句中使用-ExpandProperty Count,它只返回属性的值,而不是包含属性的对象。

get-RegValue -Hive LocalMachine -key SOFTWAREPoliciesMicrosoftEdgeExtensionInstallBlocklist | 
Select-Object -Property value | 
Measure-Object | 
Select-Object -ExpandProperty count

最新更新