Centrum Skryptów - Systemy Operacyjne

W jaki sposób można zmienić nazwę połączenia Local Area Connection? 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 można zmienić nazwę połączenia Local Area Connection?

Cześć, Skrypciarzu! W jaki sposób można zmienić nazwę połączenia Local Area Connection?

-- Łukasz

Cześć, Łukaszu. Musimy Ci wyznać, że czujemy się trochę urażeni: tu w Microsofcie mnóstwo czasu zajmuje nam wymyślanie takich fajnych, zapadających w pamięć, oryginalnych nazw jak Local Area Connection, Local Area Connection 2, czy Local Area Connection 3. A Ty byś je teraz chciał zmieniać? Serce boli.

Ale jednak klient nasz pan. Dajcie nam chwilkę, wysiąkamy noski, obetrzemy łzy i przedstawimy skrypt zmieniający nazwę połączenia Local Area Connection 2 (połączenie lokalne 2) na Home Office Connection (połączenie biura domowego).

Już nam troszkę lepiej:

Const NETWORK_CONNECTIONS = &H31&



Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)



Set colItems = objFolder.Items

For Each objItem in colItems

    If objItem.Name = "Local Area Connection 2" Then

        objItem.Name = "Home Office Connection"

    End If

Next

Być może nie wiecie, że połączenia sieciowe przechowywane są w specjalnym folderze systemu Windows. Jest to zupełnie niezwykły folder: nie ma on zwykłej ścieżki dostępu, np. C:\Documents and Settings\kenmyer\Moje dokumenty, tylko mniej-więcej taką:

::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D

}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}

Uch. Ale nie szkodzi. Taka ścieżka niezbyt nadaje się dla polecenia dir, można jednak użyć obiektu Shell do połączenia się ze ścieżką, wywołania listy wszystkich elementów (czyli wszystkich połączeń sieciowych) znajdujących się w tym folderze i zmiany ich nazwy. To właśnie zrobi nasz skrypt.

Najpierw definiujemy stałą o nazwie NETWORK_CONNECTIONS i przypisujemy jej wartość &H31&; stała ta instruować będzie obiekt Shell, z którym z folderów specjalnych chcemy pracować. Tworzymy następnie wystąpienie obiektu Shell.Application i używamy metody Namespace by połączyć się z folderem Network Connections (połączenia sieciowe). Służą do tego poniższe wiersze:

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)

Po połączeniu z folderem Network Connections możemy przejść do ciekawszych zadań. Najpierw przy użyciu metody Items wywołamy listę wszystkich elementów w folderze. Jesteśmy połączeni z folderem Network Connections, wiec będzie to lista wszystkich połączeń sieciowych danego komputera. Następnie włączamy pętlę For Each która przejdzie przez zbiór, sprawdzając czy jest w nim połączenie o wartości Name (nazwa) równej Local Area Connection 2. Jeśli połączenie takie zostanie znalezione, zmieniamy wartość Name na Home Office Connection, używając obiektu Shell. Służą do tego następujące wiersze:

For Each objItem in colItems

    If objItem.Name = "Local Area Connection 2" Then

        objItem.Name = "Home Office Connection"

    End If

Next

I już: połączenie Local Area Connection 2 nazywać się odtąd będzie Home Office Connection i nikomu nie stanie się krzywda.

Zanim ktoś spyta: nie, nigdy nie zrezygnujemy z nazwy Skrypciarzy. Przenigdy.

No cóż, chyba że – tak jak to ma w przypadku gwiazd sportu – ktoś chciałby wykupić prawa do tej nazwy. Skrypciarze Fabrikam? Korporacja Contoso przedstawia Skrypciarzy? Jesteśmy otwarci na wszelkie propozycje…

 Do początku strony Do początku strony


Centrum Skryptów - Systemy Operacyjne