2014-04-24 19 views
12

utilizzare Windows Server 2012.Criteri di protezione locali Modifica utilizzando Powershell

posso fare questo:

In cartella Strumenti di amministrazione, fare doppio clic sull'icona Criteri di protezione locali, espandere Criteri account e fare clic su Criterio password.

Nel riquadro destro fare doppio clic su Password per soddisfare i requisiti di complessità e impostarlo su Disabilitato. Fare clic su OK per salvare la modifica della politica.

Come posso farlo a livello di programmazione con Powershell?

+0

non so come farlo usando PS, ma puoi ancora usare secedit.exe vedi http://technet.microsoft.com/en-us /library/hh875511.aspx –

risposta

18

Non esiste un puro modo di farlo come per la risposta di @ Kayasax, è necessario avvolgere secedit in PowerShell.

secedit /export /cfg c:\secpol.cfg 
(gc C:\secpol.cfg).replace("PasswordComplexity = 1", "PasswordComplexity = 0") | Out-File C:\secpol.cfg 
secedit /configure /db c:\windows\security\local.sdb /cfg c:\secpol.cfg /areas SECURITYPOLICY 
rm -force c:\secpol.cfg -confirm:$false 
+1

Aggiunto esempio utile http://vlasenko.org/2011/04/27/removing-password-complexity-requirements-from-windows-server-2008-core/ – Kiquenet

+0

L'unica cosa da notare è che l'esportazione della politica viola la sicurezza del sistema, dal momento che la espone e posizionando il file nella radice del volume di avvio c: \ secpol.cfg rende questo sistema di sicurezza più semplice da utilizzare. Quindi non userei questo verbatim in un ambiente di produzione - piuttosto usare $ env: userdata per memorizzare il file temporaneo e risolvere il nome del file per l'utilità della riga di comando "$ {env: appdata} \ secpol.cfg" –

+0

pazzo, brutto ma funziona Sembra l'unico modo semplice per interagire con i Criteri di gruppo. Le API GPO sono scritte in C++ –

1

utilizzare Windows 7

ho risolto utilizzando il seguente script PowerShell

$name = $PSScriptRoot + "\" + $MyInvocation.MyCommand.Name 

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$name`"" -Verb RunAs; exit } 

$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" 

$Name = "LimitBlankPasswordUse" 

$value = "0" 

New-ItemProperty -Path $registryPath -Name $name -Value $value ` -PropertyType DWORD -Force | Out-Null 

Questo script verrà eseguito automaticamente come amministratore, se non è già aperto in modalità amministratore

I Ho anche provato la sceneggiatura di Raf. Avevo la versione 2.0, ma l'ho fatta funzionare solo con la versione 4.0

Problemi correlati