Powershell 添加 reg 密钥

Big*_*dEO 4 registry powershell regedit

我有一个 Powershell 脚本,可以从基本的 Windows 操作系统开始“构建”一台 PC(Windows 7 Pro - 明年将转换为 10)。我有许多在运行此脚本时添加的注册表项,它们都工作正常,没有问题。

我必须添加一个新的注册表项来关闭远程桌面服务。我可以在命令行上执行此操作

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

效果很好,花花公子。所以现在我需要通过 Powershell 脚本添加相同的密钥,但我无法让它工作。我拥有的是

New-Item -Path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 1 | Out-File $log -append

当我运行它时,会弹出一些内容

Type:

所以我认为它正在要求一种类型。但是如果我添加 PropertyType 如下

New-Item -Path 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -PropertyType DWORD -Value 1 | Out-File $log -append

它给出了一个错误。我在网上的几个论坛上进行了研究,但似乎没有任何效果。有任何想法吗?

The*_*le1 8

您不能同时创建具有属性的注册表项。你需要先做一个,然后再做另一个:

$path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server'

$key = try {
    Get-Item -Path $path -ErrorAction Stop
}
catch {
    New-Item -Path $path -Force
}

New-ItemProperty -Path $key.PSPath -Name fDenyTSConnections -Value 1
Run Code Online (Sandbox Code Playgroud)

  • 最好首先执行 `Test-Path -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server"`,并且仅在 `Test-Path` 失败时才执行 `New-Item` - 否则,您将“吹走”所有 TS 设置。 (3认同)