Centrum Skryptów - Systemy operacyjne

W jaki sposób przy pomocy skryptu zmienić ostrzeżenie prawne? Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

W jaki sposób przy pomocy skryptu zmienić ostrzeżenie prawne?

Cześć Skrypciarzu! Jak użyć skryptu, aby zmienić ostrzeżenie prawne?

-- RB

Cześć RB. Jak wszyscy zapewne wiecie, podczas logowania do systemu Windows przy pomocy kombinacji Ctrl - Alt - Delete pojawia się okno zalogowania. Wpisujecie w nim nazwę użytkownika, domenę, hasło, klikacie OK i po sprawie.

Windows jest jednak wyposażony w usługę, wyświetlającą okno dialogowe ostrzeżenia prawnego po wciśnięciu Ctrl - Alt - Delete, a przed wyświetleniem okna zalogowania. Dzięki temu możemy przedstawić użytkownikom pewnego rodzaju zastrzeżenie. Jeśli klikną OK i przejdą do procedury zalogowania, oznacza to, że zgadzają się przestrzegać wszelkich zasad i regulacji w nim zawartych. To z kolei daje Wam pewną prawną ochronę przed wszelkimi rodzajami... niedozwolonej działalności, którą użytkownik może prowadzić będąc zalogowany na Waszym komputerze.

Zazwyczaj podpis i tekst wiadomości w oknie dialogowym ostrzeżenia prawnego są kontrolowane przy pomocy Polityki Grupowej; dzięki temu można łatwo umieścić to ostrzeżenie na wszystkich komputerach w Waszej domenie. Z drugiej strony, może się zdarzyć, że z jakiegoś powodu nie będziecie chcieli posługiwać się Polityką Grupową; może ona być dla Was niedostępna (Polityka Grupowa działa bądź co bądź wyłącznie wtedy, gdy macie uruchomiony Active Directory); może być również tak, że będziecie chcieli wyświetlać na różnych komputerach różne wiadomości. W takich wypadkach pan doktor najczęściej przepisuje skrypt.

Pod warunkiem oczywiście, że badanie przeprowadził Doktor Skryptowski.

Jak się okazuje, LegalNoticeCaption oraz LegalNoticeText są wartościami rejestru, znajdującymi się w tej części rejestru: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Aby włączyć na komputerze ostrzeżenie prawne, wystarczy skonfigurować wartości dla tych dwóch elementów. Służy do tego poniższy skrypt:

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

 

Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

 

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

strValueName = "LegalNoticeCaption"

strValue = "Fabrikam, Inc. Legal Notice"

objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

 

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

strValueName = "LegalNoticeText"

strValue = "By logging on to this computer you agree to abide by the "

strValue = strValue & "computer usage rules and regulations of Fabrikam, Inc."

strValue = strValue & vbCrLf & vbCrLf

strValue = strValue & "For more information, phone (425)-555-1289."

objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

Skrypt ten ustawia podpis (LegalNoticeCaption) okna dialogowego ostrzeżenia na Fabrikam Inc. Legal Notice. Następnie ustawia samą wiadomość (LegalNoticeText):

By logging on to this computer you agree to abide by the computer usage rules and regulations of Fabrikam, Inc.
For more information, phone (425)-555-1289.

(Logując się do tego komputera zgadzasz się przestrzegać podczas używania komputera reguł i regulacji Fabrikam Inc.
Więcej informacji pod numerem telefonu (425)-555-1289)

Zauważyliście zapewne, że w skrypcie użyliśmy kilku linii kodu do skonfigurowania wiadomości. Nie było to konieczne; mogliśmy zamiast tego użyć jednej, długiej linii, która zajmowałaby kilka ekranów wzdłuż. Trudno byłoby taki kod przeczytać lub zmodyfikować, więc skonfigurowaliśmy naszą wiadomość w kilku etapach, zamiast w jednym dużym. Na początek, ustawiamy wartość zmiennej strValue przy pomocy tej linii kodu:

strValue = "By logging on to this computer you agree to abide by the "

Teraz przyjrzyjcie się drugiej linii w skrypcie:

strValue = strValue & "computer usage rules and regulations of Fabrikam, Inc."

Jak widzicie, przypisujemy strValue istniejącą wartość strValue ("By logging on to this computer you agree to abide by the" - Logując się do tego komputera zgadzasz się na) - oraz: "computer usage rules and regulations of Fabrikam, Inc."("przestrzeganie podczas używania komputera reguł i regulacji Fabrikam, Inc."). Nasza zmienna strValue jest teraz równa temu:

By logging on to this computer you agree to abide by the computer usage rules and regulations of Fabrikam, Inc. (Logując się do tego komputera zgadzasz się przestrzegać podczas używania komputera reguł i regulacji Fabrikam, Inc.)

Następnie wstawiamy kilka znaków powrotu karetki-końca wiersza (przy pomocy stałej VBScript vbCrLf) oraz ostatnią linię wiadomości. Mając całą wiadomość przechowaną w zmiennej strName, możemy teraz wywołać metodę SetStringValue i zapisać nową wartość w rejestrze.

Co jednak, jeśli zmienicie zdanie i stwierdzicie, że w ogóle nie chcecie włączać ostrzeżenia? W takim wypadku po prostu ustawcie w skrypcie LegalNoticeCaption i LegalNoticeText jako puste ciągi. Tym samym:

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

 

Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

 

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

strValueName = "LegalNoticeCaption"

strValue = ""

objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

 

strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

strValueName = "LegalNoticeText"

strValue = ""

objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue

Przy okazji, jeśli interesuje Was manipulowanie wartościami rejestru przy pomocy skryptu, zapiszcie się na webcast To, czego skrypciarze nigdy Wam nie powiedzieli (j.ang.), który pojawi się 27 stycznia 2005 jako część Drugiego Tygodnia Skryptowania. Czekamy na Was!

 Do początku strony Do początku strony

Centrum Skryptów - Systemy operacyjne