Istnieje kilka sposobów dodawania lub aktualizowania klucza w rejestrze HKCU. Istnieje kilka sposobów modyfikacji stacji roboczej za pomocą zasad grupy. Wypróbowałem kilka z nich i mogłem skorzystać z pomocy.
Mam zestaw czterech skryptów cs, które kompiluję do exe za pomocą VBSEditor z Adersoft.
Te skompilowane skrypty działają bardzo dobrze i są szybsze niż uruchamianie skryptu .vbs.
Mam skrypt do uruchamiania, logowania, wylogowywania i zamykania systemu. Obecnie te skrypty uzyskują dostęp do serwera SQL i udziałów plików serwera (tylko logowanie i wylogowywanie), odczytują rejestr lokalny i uruchamiają niektóre polecenia za pośrednictwem obiektu wscript.shell. Wszystko to działa zgodnie z oczekiwaniami, w granicach, które zadania wymagające uprawnień administratora muszą być uruchamiane podczas zamykania / uruchamiania, a zadania wymagające dostępu do sieci (pliki i serwer SQL) muszą być uruchamiane podczas logowania i wylogowywania.
Mój problem występuje podczas próby utworzenia i / lub zmodyfikowania klucza rejestru w HKCU. Mogę dobrze odczytać klucze, a moje skrypty działają, gdy są uruchamiane z sesji logowania administratora, ale nie działają nic, gdy są uruchamiane podczas uruchamiania GPO, zamykania, logowania lub wylogowywania.
Ze względu na brak doświadczenia nie znam większości dziwactw środowiska, w których muszą działać skrypty zasad grupy.
Oto jeden zestaw poleceń, który działa w konsoli, ale kończy się niepowodzeniem w GPO:
set oRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
strValueName = "NoControlPanel"
oRegistry.CreateKey HKEY_CURRENT_USER, strKeyPath
oRegistry.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,drtval
A oto alternatywna metoda:
strKeyPath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
strValueName = "NoControlPanel"
strKP = strKeyPath + "\" + strValueName
o=wshShell.RegWrite(strKP, drtval, "REG_DWORD")
drtval ma wartość 0 lub 1 w zależności od tego, czy włączę, czy wyłączę narzędzia rejestru.
Czy ktoś może zobaczyć, co robię źle?
Szczególną stacją roboczą, na której testuję to, jest XP Pro. Mam około 100 takich szczeniąt do zarządzania przez GPO.
Każda pomoc będzie mile widziana.
źródło
Odpowiedzi:
Po wielu testach oraz próbach i błędach nauczyłem się:
Czasami zdarza się, że klucz rejestru, który jest zwykle tworzony w HKCU, można również utworzyć w HKLM.
Wszystkie przykłady, które znalazłem w Google, wskazują na modyfikację klucza HKCU dla tego klucza.
Działa to w bieżącej sesji, w regedit lub za pomocą skryptów, a po ponownym uruchomieniu następuje zmiana.
Ale użycie tego skryptu w skrypcie zamykania zasad grupy nie powiedzie się.
Chwytając się słomek, zmieniłem ul w skrypcie polecenia GPO na HKLM i voila .. To działa.
Nie wiem dokładnie, dlaczego być może „superużytkownik” mógłby to nam wyjaśnić, ale nigdy nie znalazłem tego w taki sposób udokumentowany i mam nadzieję, że pomoże to komuś innemu uniknąć kilku dni ciągnięcia włosów.
Poprawiono do użycia w skrypcie zamykania zasad grupy:
źródło