Oto mój scenariusz. Moja aplikacja wykonuje pewne czynności konserwacyjne, podczas których tylko administratorzy powinni mieć możliwość logowania się do systemu Windows.

Po zakończeniu konserwacji każdy użytkownik powinien mieć możliwość zalogowania się.

Jakie jest dobre rozwiązanie tego problemu? Wszelkie wskazówki będą mile widziane.

Edycja: system operacyjny to Windows 7

Dzięki, Pradeep

2
Pradeep 22 luty 2012, 02:10

2 odpowiedzi

Najlepsza odpowiedź

Wylicz wszystkich użytkowników za pomocą NetUserEnum, a dla tych, którzy nie są administratorami, wyłącz ich konto za pomocą NetUserSetInfo ze strukturą USER_INFO_1 i flagą UF_ACCOUNTDISABLE. Zachowaj listę wyłączonych użytkowników, aby po zakończeniu móc ponownie włączyć ich konta. http://msdn.microsoft .com/en-us/library/windows/desktop/aa370960%28v=vs.85%29.aspx

1
Carey Gregory 22 luty 2012, 23:20

Jednym z rozwiązań byłoby nakłonienie administratora do utworzenia grupy lokalnej zawierającej listę użytkowników, którzy powinni normalnie logować się, oraz przypisanie prawa „logowanie lokalne” tylko do tej grupy i grupy Administratorzy.

Następnie możesz użyć LsaRemoveAccountRights i < a href="http://msdn.microsoft.com/en-us/library/ms721786%28v=vs.85%29.aspx" rel="nofollow">LsaAddAccountRights, aby przełączyć "zaloguj się lokalnie" " prawo do lokalnej grupy.

Proponuję poprosić administratora o wprowadzenie wstępnych zmian, ponieważ ingerowanie w prawa użytkownika bez wiedzy i zgody administratora zdenerwuje ludzi i może spowodować nieoczekiwane skutki uboczne.

1
Harry Johnston 23 luty 2012, 02:53