Piszę aplikację, która musi utworzyć specjalne konto użytkownika ukryte przed ekranami logowania i apletem użytkowników panelu sterowania. Pisząc wartość DWORD
z 0 z nazwą użytkownika do klucza rejestru poniżej, jestem w stanie osiągnąć ten cel:Nie można zapisać w Rejestrze pod HKEY_LOCAL_MACHINE Software
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ SpecialAccounts \ UserList
Problem polega na tym, że w systemie Windows 7 z włączonym UAC, bez względu na to, co próbuję, nie mogę programowo napisać wartości do powyższego klucza.
Rozumiem, że pisanie do niektórych kluczy jest niedozwolone w systemie Windows 7 z włączoną funkcją Kontrola konta użytkownika, chyba że używasz uprawnień administracyjnych. Dodałem manifest aplikacji requestedExecutionLevel level="requireAdministrator" uiAccess="false"
, Akceptuję monit UAC, gdy mój program jest uruchamiany, moje konto jest członkiem Administratorów, ale nadal nie mogę napisać do powyższego klucza rejestru.
Co jeszcze muszę zrobić? W jaki sposób w dowolnej konfiguracji aplikacji można pisać klucze i wartości pod numerem HKEY_LOCAL_MACHINE\SOFTWARE
?
Dalsze informacje ... Po uruchomieniu mojego programu nie są zgłaszane żadne błędy i wydaje się, że wpisano wartości. Domyślam się, że Windows wirtualizuje lokalizację, do której piszę. Muszę napisać do rzeczywistej lokalizacji, a nie wirtualnej, jeśli chcę ukryć to specjalne konto użytkownika.
Prawdopodobnie próbują zapobiec dokładnie, co staramy się robić. Ukryte konto napisane przez złośliwe oprogramowanie byłoby na przykład złe. – asawyer
Jednak dotyczy to wszystkiego pod HKEY_LOCAL_MACHINE \ SOFTWARE, a nie tylko konkretnego klucza, o którym wspomniałem. Aha, i nadal możesz ukryć konto za pomocą regedit, lub zobaczyć to za pomocą zarządzania komputerem/użytkowników. – sysrpl
Przepraszam, że to był tylko komentarz od mankietu. Gdybym miał dla ciebie dobrą odpowiedź, użyłbym drugiego pudełka. Jestem również bardzo zainteresowany tym, co się tutaj dzieje. – asawyer