gpt4 book ai didi

.net - 无法处理参数 'machine' 的参数转换。无法将值转换为类型 System.String

转载 作者:行者123 更新时间:2023-12-05 02:19:25 29 4
gpt4 key购买 nike

我是 Powershell 的新手。我基本上只是使用我的 C# 逻辑和 .net 经验以及谷歌来创建这个脚本。我不明白为什么我会收到错误消息:

无法处理参数“机器”上的参数转换。无法将值转换为类型 System.String

function IterateThroughMachineSubkeys{
(
[Parameter()]
[string]$machine,
[Microsoft.Win32.RegistryKey]$subKey
)

foreach($subKeyName in $subKey.GetSubKeyNames())
{
Write-Host -Object ([System.String]::Format("Machine: {0} Module: {1} Version: {2}",
$machine.ToString(), $subKeyName.ToString(),
$subKey.OpenSubKey([string]$subKeyName).GetValue("Version", "Not found", [Microsoft.Win32.RegistryValueOptions]::None)))
}
}

这是我调用函数的地方:

switch -CaseSensitive (ValidateConsoleInput((Read-Host).ToString()))
{
"E"
{
IterateThroughMachineSubkeys($machine.ToString(), $subKey)
}
"C"
{
Write-Host -Object "Enter the module name to be queried in the registry:"
GetSpecificSubkey($machine, $subkey, [string](Read-Host))
}

}

最佳答案

您的代码有几个问题。

1)函数参数指定不正确;应该是:

function IterateThroughMachineSubkeys([string]$machine, [Microsoft.Win32.RegistryKey]$subKey)
{
...
}

2)函数调用不正确;应该是:

IterateThroughMachineSubkeys -machine $machine.ToString() -subKey $subKey

这里是完整的函数:

function IterateThroughMachineSubkeys([string]$machine, [Microsoft.Win32.RegistryKey]$subKey)
{
foreach($subKeyName in $subKey.GetSubKeyNames())
{
Write-Host -Object ([System.String]::Format("Machine: {0} Module: {1} Version: {2}",
$machine.ToString(), $subKeyName.ToString(),
$subKey.OpenSubKey([string]$subKeyName).GetValue("Version", "Not found", [Microsoft.Win32.RegistryValueOptions]::None)))
}
}

$testKey = get-item "HKCU:\Software"
IterateThroughMachineSubkeys -machine . -subKey $testKey

或使用 PowerShell cmdlet:

$key = get-item "hkcu:\Software\Google\Chrome"
$key | get-childitem | foreach-object {
write-host "Machine: $machine Module: $($_.PSChildName) Version: " `
$key.OpenSubKey($_.PSChildName).GetValue("Version", "Not found", [Microsoft.Win32.RegistryValueOptions]::None)
}

关于.net - 无法处理参数 'machine' 的参数转换。无法将值转换为类型 System.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43083295/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com