2014-04-24 27 views
12

używam Windows Server 2012.Zmienić Local Security Policy przy użyciu PowerShell

mogę to zrobić:

W folderze Narzędzia administracyjne, kliknij dwukrotnie ikonę Zasady zabezpieczeń lokalnych rozwiń Zasady konta i kliknij Zasady haseł.

W prawym okienku kliknij dwukrotnie Hasło musi spełniać wymagania złożoności i ustawić je w pozycji Wyłączone. Kliknij OK, aby zapisać zmianę polityki.

Jak mogę to zrobić programowo przy użyciu Powershell?

+0

Nie wiem jak to zrobić za pomocą PS, ale nadal możesz używać secedit.exe zobacz http://technet.microsoft.com/en-us /library/hh875511.aspx –

Odpowiedz

18

Nie ma sposobu, aby to zrobić, jak w przypadku @ Kayasax, trzeba opakować secedit w 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

Dodano użyteczną próbkę http://vlasenko.org/2011/04/27/removing-password-complexity-requirements-from-wowsows-server-2008-core/ – Kiquenet

+0

Należy zwrócić uwagę na to, że eksportowanie zasad narusza zabezpieczenia systemu, ponieważ udostępnia je i umieszcza plik w katalogu głównym woluminu rozruchowego c: \ secpol.cfg ułatwia to nadużywanie zabezpieczeń. Więc nie użyłbym tego dosłownie w środowisku produkcyjnym - raczej użyj lokalizacji $ env: userdata do przechowywania pliku tymczasowego i rozwiązania nazwy pliku dla narzędzia wiersza poleceń "$ {env: appdata} \ secpol.cfg" –

+0

szalone, brzydkie ale działa. Wygląda na jedyną łatwą metodę interakcji z zasadami grupy. GPO APIs są napisane w C++ –

1

używam Windows 7

mam rozwiązać go za pomocą następującego powershell skrypt

$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 

Ten skrypt automatycznie uruchomić jako administrator, jeśli nie jest już otwarty w trybie administratora

Próbowałem również scenariusza Raf napisał. Miałem wersję 2.0, ale dostałem ją tylko do pracy z wersją 4.0

Powiązane problemy