Zarządzanie opcjami zasilania

2

Z różnych powodów chcemy, aby komputery naszych klientów nie spały w trybie AC. Uruchomiliśmy następujący skrypt z umiarkowanym sukcesem:

powercfg /change standby-timeout-ac 0

Jednak skrypt nie działa na wielu komputerach (w tym na komputerach, które nie należą do domeny) z następującym komunikatem o błędzie:

Dla tego schematu zasilania lub ustawienia zasilania istnieją ustawienia zastępowania zasad grupy.

Zdaję sobie sprawę, że można to łatwo rozwiązać za pomocą obiektu GPO, ale nie jest to realne rozwiązanie, ponieważ wielu naszych klientów to małe firmy bez domeny. Czy istnieje sposób na powercfgzastąpienie lokalnego obiektu zasad grupy?

MikeTG
źródło

Odpowiedzi:

0

Może to być „nie” z „ale” lub „tak” z „jednak”.

Najpierw zastosujemy podejście „nie” - nie, zasady grupowe zastępują konfiguracje wykonane przez aplikacje, a nie na odwrót, i to z założenia. Jeśli naprawdę chcesz, przy pewnym twórczym zastosowaniu list ACL zabezpieczeń do odpowiednich kluczy rejestru, możesz zabronić SYSTEMstosowania zasad grupy , skutecznie pozwalając na zastąpienie ich za pomocą aplikacji ... ale to naprawdę zły pomysł.

Innymi słowy, tak, ponieważ zasady grupy są tylko wpisami rejestru, możesz zmienić je na zawartość swojego serca za pomocą wybranego edytora rejestru i wprowadzić się w naprawdę niezręczny stan, w którym skutecznie zastępujesz zasady grupy, uniemożliwiając SYSTEMdostęp do klucze rejestru stanowiące dane zasady grupy. Istnieje jednak znacznie lepsze podejście do problemu, polegające na skonfigurowaniu danych zasad grupy. (Tak, lokalne zasady grupy są tak samo edytowalne jak zasady grupy domeny).

W takim przypadku możesz edytować to ustawienie za pomocą Edytora lokalnych zasad grupy (przystawki MMC) , ale wygląda na to, że szukasz opcji skryptu, co jest również możliwe. Wywołaj reg.exe ze skryptu lub wiersza poleceń i poproś o wpisanie odpowiedniej wartości do poprawnego klucza. W takim przypadku klucz ma mieć HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Powernazwę HibernateEnabledo REG_DWORDtypie wartości 0.

Powinien wyglądać mniej więcej tak:

REG ADD HKLM \ SYSTEM \ CurrentControlSet \ Control \ Power / v HibernateEnabled / t REG_DWORD / d 0

Spowoduje to wyłączenie hibernacji, a jeśli zostanie wykonane po uruchomieniu sprzecznej zasady grupy, nadpisze dowolną wartość ustawioną przez zasady grupy. To oczywiście nie jest idealne, ponieważ musiałbyś uruchamiać to za każdym razem, gdy komputer się uruchamia, a chcesz wyłączyć hibernację tylko przy zasilaniu prądem przemiennym, więc prawdopodobnie chcesz programowo edytować zasady grupy w rejestr. Najłatwiejszym sposobem znalezienia odpowiedniego klucza reg jest zmiana tego ustawienia za pomocą Edytora lokalnych zasad grupy, podczas gdy ProcMon jest uruchomiony, i użycie go do pokazania właśnie zmodyfikowanego ustawienia zasad grupy .

(Korzystanie z GUI znajduje się pod Computer Configuration\Administrative Templates\System\Power Management\Sleep Settings.)

Gdy już użyjesz ProcMon, znajdziesz klucz, którego szukasz, i wiesz, na jaką wartość go ustawić, możesz go podłączyć reg.exe, tak jak w przykładzie, który podałem powyżej, aby skonfigurować lokalne zasady grupy zgodnie z ustaleniami. Będąc poleceniem z wiersza poleceń, otrzymasz coś, czego możesz użyć ręcznie lub wkleić do skryptu, zgodnie z sytuacją.

Beznadziejny
źródło