2014-11-03 2 views
12

그것의 경로를 포함하여 레지스트리 값을 생성하고, 경로가 이미 존재하는 경우 erroring없는 것은 구식 reg.exe를을 사용하여 쉽게 : 좋은 간결의PowerShell에서 레지스트리 경로를 하나의 라이너로 만드시겠습니까?

reg add HKCU\Software\Policies\Microsoft\Windows\EdgeUI /f /v DisableHelpSticker /t reg_sz /d 1 

.

$regPath = 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI' 
New-Item $regPath -Force | Out-Null 
New-ItemProperty $regPath -Name DisableHelpSticker -Value 1 -Force | Out-Null 

순수 PowerShell을 사용하여 쉬운 방법이 있나요 : 당신이 경로를 반복하지 않으려면 내가 순수한 PowerShell에서 그것을 발견 가장 짧은 방법은 두 줄 또는 세입니까? 그리고 유틸리티 기능을 추가하지 않고.

+0

중요한 것은 아니지만 경로를 먼저 테스트하여 키가 존재할 때 발생하는 오류를 억제 할 수 있습니다. 이 답변의'if -not test-path' 부분을보십시오. http://stackoverflow.com/a/26707878/3093031 –

+0

사실입니다. 하지만 그때는 더 커집니다. 나는 오류를 피하기 위해'-ErrorAction SilentlyContinue' 또는'-Force'를 사용하고있었습니다. – Vimes

+0

이것은 powershell에 관한 나에게있어 일종의 딜 브레이커이다. ( – hl3mukkel

답변

13

당신은 파이프로는 다음에 New-ItemProperty 라인에 생성 라인,하지만이 New-Item-Force 플래그는 키의 기존 내용을 삭제된다는 점에 유의 할 수 있습니다

New-Item 'HKCU:\Software\Policies\Microsoft\Windows\EdgeUI' -Force | New-ItemProperty -Name DisableHelpSticker -Value 1 -Force | Out-Null 
+2

방금 ​​New-Item의'-Force' 플래그가 모든 하위 키/값을 날려 버리는 것을 배웠습니다. -SilentlyContinue'는 객체를 검색하지 않습니다. 쉬운 생각을하려고합니다. 값을 비파괴 적으로 설정하는 방법, p를 만드는 방법 ath가 존재하지 않으면 한 줄에 "if key is exists ..."유형이 없습니다. 한 줄짜리로 바보 같기 때문입니다. 아이디어가 있으면 알려주세요. – Vimes

+0

'Test-Path'를 사용하여 키를 생성하기 전에 키의 존재를 검사 할 수 있습니다. 여러 번 해보는다면 기능을 추가 할 가치가 있습니다. – arco444

+0

레지스트리에 데이터를 "오버레이"하는 옵션이 있다고 생각하기 시작했습니다. 멋진 한 줄 짜기는 없습니다. – Vimes

0

죄송 죽은 레즈하기 스레드가 아니라 왜 그냥

New-ItemProperty -Path Registry::HKLM\SOFTWARE\Policies\Microsoft\Windows\EdgeUI -Name DisableHelpSticker -Value Contoso -Force | Out-Null 

일부 SCCM 물건이 사용하고 내 기존 reg 항목을 덮어 쓰지 않습니다.

+2

이 명령은 'HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ EdgeUI'가없는 경우 및 | Out-Null, 오류는 여전히 콘솔에 표시됩니다. – ALIENQuake

+0

아, 그 길로가는 길을 보지 못했습니다. – Benny

관련 문제