Powershell, чтобы добавить рег ключ - PullRequest
0 голосов
/ 02 октября 2019

У меня есть скрипт Powershell, который «собирает» ПК из базовой операционной системы Windows и выше (Windows 7 Pro - будет преобразована в 10 в следующем году). У меня есть несколько ключей reg, которые добавляются при запуске этого скрипта, и все они работают нормально, без проблем.

Мне нужно добавить новый ключ reg, который отключает службы удаленного рабочего стола. Я могу сделать это в строке cmd с

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

, это выдаст ошибку. Я исследовал на нескольких форумах онлайн, и, кажется, ничего не работает. Есть идеи?

Ответы [ 3 ]

1 голос
/ 02 октября 2019

Невозможно создать раздел реестра со свойствами одновременно. Вам нужно сделать одно, затем другое:

$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
0 голосов
/ 03 октября 2019

Я всегда создаю ключи / значения реестра следующим образом:

# Set the location to the registry
Set-Location -Path 'HKLM:\Software\Microsoft'

# Create a new Key
Get-Item -Path 'HKLM:\Software\Microsoft' | New-Item -Name 'W10MigInfo\Diskspace Info' -Force

# Create new items with values
New-ItemProperty -Path 'HKLM:\Software\Microsoft\W10MigInfo\Diskspace Info' -Name 'usedDiskspaceCDrive' -Value "$usedDiskspaceCDrive" -PropertyType String -Force
New-ItemProperty -Path 'HKLM:\Software\Microsoft\W10MigInfo\Diskspace Info' -Name 'usedDiskSpaceDDrive' -Value "$usedDiskspaceDDrive" -PropertyType String -Force

# Get out of the Registry
Pop-Location
0 голосов
/ 02 октября 2019

Я наконец-то проверил и получил работу:

cmd /c 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f' | Out-File $log -append

Я понимаю, что обходит вариант Powershell, но сейчас я должен работать над этим. Хотелось бы узнать, чего мне не хватает в команде Powershell.

...