2017-01-12 5 views
0

Server 2012에 여러 기능과 역할을 설치하는 Powershell 스크립트를 작성했지만 스크립트가 완벽하게 작동하지만 도움이 필요합니다. UAC가 활성화되어 있는지 확인하고, Enter 키를 눌렀을 때 서버가 다시 시작될 것인지 묻지 않으면 다음 줄로 진행하거나 스크립트가 실제로 시작되는 다음 작동 줄로 이동합니다.IF 문을 사용하는 방법, powershell 스크립트의 일부로 넘어 갔을 때

그래서 나는 UAC가 활성화 또는 달 수 있는지 여부를 확인이 라인을

UAC를 사용하지 않으면
(Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System).EnableLUA 

, 그것은 0을 출력하고 UAC가 활성화 된 경우는 1

만약을 인쇄 그것을 사용하는 경우 그것은 내가 그것을

Start-Transcript 

를 읽고 스크립트에서 선을 계속하고 싶은, 장애인, 그것은 하나 읽고 나는이 라인

로 진행을하고 싶습니다
New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableUA -PropertyType DWord -Value 0 -Force 
Restart-Computer 

나는이 잘못된 방향으로 가고 있습니까?

+0

왜 UAC를 사용하지 않도록 할 것입니까? –

+0

이 스크립트를 무인 스크립트로 만들고 싶습니다. UAC를 사용하려면 수동 단계가 있어야합니다. 이는 많은 컴퓨터에서도 사용됩니다. –

답변

1
if ((Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System).EnableLUA -eq 0) 
{ 
    Start-Transcript 
} 
else 
{ 
    New-ItemProperty -Path HKLM:Software\Microsoft\Windows\CurrentVersion\policies\system -Name EnableUA -PropertyType DWord -Value 0 -Force 
    Restart-Computer 
} 
+0

이 메서드를 실행하면이 메시지가 나타날 때마다 다시 부팅되는 것처럼 보입니다. New-ItemProperty : 요청 된 레지스트리 액세스가 허용되지 않습니다. C : \ ContactCanvas_6520 \ 1PRE.FINAL-1-11-2017.ps1 : 26 char : 5 + New-ItemProperty -Path HKLM : Software \ Microsoft \ Windows \ CurrentVersion \ polici ... + ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ + CategoryInfo : PermissionDenied : (HKEY_LOCAL_MACH ... 정책 \ 시스템 : 문자열) 새로운-ItemProperty를, SECURIT yException + FullyQualifiedErrorId : System.Security.SecurityException, Microsoft.PowerShell.Commands.NewItemPropertyCommand –

+0

당신처럼 보이는 ' 레지스트리에 액세스 할 수없는 계정을 사용하거나 레지스트리가 PSDrive로로드되지 않습니다. –

+0

이것은 내가 지금 당장이 문제를 해결하려고 노력하고있는이 계정이지만, 뭔가가 튀어 나오는 것을 대비하여 메시지를 제공 할 것이라고 생각했습니다. 고맙습니다. –

1

이에 대한 switch 문을 사용하기 때문에 레지스트리 검색이 예상 값 중 하나를 반환하지 않는 경우 당신은 또한 상황을 처리 할 수 ​​

$uacStatus = (Get-ItemProperty HKLM:\...).EnableLUA 
switch ($uacStatus) { 
    0 { Start-Transcript } 
    1 { New-ItemProperty ...; Restart-Computer } 
    default { Write-Host "UAC status not recognized: $uacStatus"; exit 1 } 
} 
+0

이 메서드를 실행하면이 메시지가 나타날 때마다 다시 부팅되는 것처럼 보입니다. New-ItemProperty : 요청 된 레지스트리 액세스가 허용되지 않습니다. C : \ ContactCanvas_6520 \ 1PRE.FINAL-1-11-2017.ps1 : 26 char : 5 + New-ItemProperty -Path HKLM : Software \ Microsoft \ Windows \ CurrentVersion \ polici ... + ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ ~ + CategoryInfo : PermissionDenied : (HKEY_LOCAL_MACH ... 정책 \ 시스템 : 문자열) 새로운-ItemProperty를, SECURIT yException + FullyQualifiedErrorId : System.Security.SecurityException, Microsoft.PowerShell.Commands.NewItemPropertyCommand –

+0

가 안스 감사합니다, 귀하의 솔루션도 잘 작동하지만, 오타도 입력 했으므로 고맙습니다. –