首页 > 解决方案 > 注册表 Powershell 输出

问题描述

我需要你的帮助

我需要在特定的 PowerShell 输出命令中打印一个逻辑条件。

Get-ItemProperty -Path 'HKLM:SOFTWARE\Policies\Microsoft\WindowsNT\TerminalServices' -Name fDisableCdm | Select fDisableCdm

我写了一个小脚本进行测试,但在我的脚本中我做了一个自己的条件输出。但我想打印注册表项内部有什么值,而不是打印自己的条件。

我的剧本

if ($process=Get-ItemProperty -Path 'HKLM:SOFTWARE\Policies\Microsoft\WindowsNT\TerminalServices' -Name fDisableCdm -ErrorAction SilentlyContinue) {write-host "1"} else {write-host "0"} 

你可以帮助我 ?

我等待所有人的帮助和坦克!

标签: windowspowershellconditional-statementsregistryregedit

解决方案


$regKey = "HKLM:SOFTWARE\Policies\Microsoft\WindowsNT\Terminal Services"
$regValue = 'fDisableCdm'

Try {
    $process=Get-ItemProperty -Path $regKey -Name $regValue -ErrorAction Stop
    Write-Output (-join($regValue,": ",$process.$regValue))
}
Catch {
    Write-Output "There was an error: $($PSItem.ToString())"
}

您需要检查终端服务的注册表项是否有空格。我的有一个空间。否则,此脚本允许您在脚本开头设置两个变量,执行请求的查找,如果没有发生错误,则输出请求的信息。

如果发生错误,脚本会输出相应的错误消息。

有意义的错误处理参考:

https://docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-exceptions?view=powershell-7.1


推荐阅读