使用PowerShell获取UAC设置

时间:2010-08-04 11:41:36

标签: powershell

有没有办法使用PowerShell在Windows 7计算机中获取UAC状态(包括级别)?

3 个答案:

答案 0 :(得分:9)

(Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System).EnableLUA

将告诉您UAC是否已启用。

答案 1 :(得分:0)

@ravikanth已经发布了一个很好的答案,但是对于那些探索其他选择的人来说,这里还有另外两种方法以不同的方式获取相同的信息:

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLUA

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLUA | Select-Object EnableLUA

答案 2 :(得分:0)

eric good的答案,但需要声明函数Get-RegistryValue。所以首先您需要:

Function Get-RegistryValue($key, $value) {  (Get-ItemProperty $key $value).$value }

然后您可以按照他的描述进行设置:

$Key = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" 
$ConsentPromptBehaviorAdmin_Name = "ConsentPromptBehaviorAdmin" 
$PromptOnSecureDesktop_Name = "PromptOnSecureDesktop" 

$ConsentPromptBehaviorAdmin_Value = Get-RegistryValue $Key $ConsentPromptBehaviorAdmin_Name 
$PromptOnSecureDesktop_Value = Get-RegistryValue $Key $PromptOnSecureDesktop_Name

然后您可以使用以下命令解释值:

If($ConsentPromptBehaviorAdmin_Value -Eq 0 -And $PromptOnSecureDesktop_Value -Eq 0){ 
    "Never notIfy" 
} 
ElseIf($ConsentPromptBehaviorAdmin_Value -Eq 5 -And $PromptOnSecureDesktop_Value -Eq 0){ 
    "NotIfy me only when apps try to make changes to my computer(do not dim my desktop)" 
} 
ElseIf($ConsentPromptBehaviorAdmin_Value -Eq 5 -And $PromptOnSecureDesktop_Value -Eq 1){ 
    "NotIfy me only when apps try to make changes to my computer(default)" 
} 
ElseIf($ConsentPromptBehaviorAdmin_Value -Eq 2 -And $PromptOnSecureDesktop_Value -Eq 1){ 
    "Always notIfy" 
} 
Else{ 
    "Unknown" 
} 

来自How to switch UAC level