zmena DNS   otázka

VB.NET

Dobrý deň.

Som troška v koncoch. Napísal som si mali program na zmenu DNS, ale nefunguje. Niečom som si už naštudoval na nete , ale pre krátkosť času na vyriešenie sa chcem obrátiť aj na vás.

Na PC mam nastavenú pevnú IP. Aj DNS sú nabité napevno a práve DNS by sme chceli zmeniť asi na 200 PC-čiek.

Program prebehne nevypíše žiadnu chybu ale k zmene nedôjde.

    Private Sub setDNS()
        Dim ManagementClass As New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim mgObjCollection As ManagementObjectCollection = ManagementClass.GetInstances()
        For Each mgObject As ManagementObject In mgObjCollection
            If Not CType(mgObject("IPEnabled"), Boolean) Then Continue For
            Try
                Dim objNewDNS As ManagementBaseObject = Nothing
                objNewDNS = mgObject.GetMethodParameters("SetDNSServerSearchOrder")
                objNewDNS("DNSServerSearchOrder") = DNS.Split(".")
                Dim objSetDNS As ManagementBaseObject = Nothing
                objSetDNS = mgObject.InvokeMethod("SetDNSServerSearchOrder", objNewDNS, Nothing)
            Catch ex As Exception
                MessageBox.Show("Došlo k chybe " + ex.Message)
            End Try
        Next
    End Sub

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A to nemáte pro správu takového množství počítačů nějaké k tomu určené serverové řešení, např. Systems Management Server (System Center Configuration Manager)?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Myslíte, že by som sem takú tému dával keby sme nejaký taký soft mali, aj pre mňa by to bolo menej práce. skôr by som privítal nejakú pomoc k téme ale aj tak ďakujem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to mne skutečně udivuje, že tak rozsáhlá firma nemá nic takového, její IT oddělení tam zřejmě je na dvě věci. Pracoval jsem ve firmě, kde se SMS server nasazoval už na pouhých 80 pracovních stanic.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

For Each se nedostane dál než na nesplnitelnou podmínku, následuje jen Continue For - ověřte, co mgObject obsahuje

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Áno viem, ale v mojom prípade sa dostanem ďalej za podmienku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tohle bych raději řešil v rámci cmd nebo PowerShellem.jednodušší a rychlejší :-)

Ale jinak to musí být teda job,spravovat 200+ PC a nemít žádný server na správu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

no pracujem v nemocnici a tu veru všetci kašlú na takéto veci

nahlásit spamnahlásit spam 0 odpovědětodpovědět

bol som nútený to prerobiť a vyskúšať v C# a svet sa čuduj funguje.

pripájam aj kód

public void setDNS()
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
            foreach (ManagementObject objMO in objMOC)
            {
                if (!(bool)objMO["ipEnabled"]) continue;
                try
                {
                    ManagementBaseObject objNewDNS = null;
                    ManagementBaseObject objSetDNS = null;
                    objNewDNS = objMO.GetMethodParameters("SetDNSServerSearchOrder");
                    objNewDNS["DNSServerSearchOrder"] = new string[] { "111.111.111.111" };
                    objSetDNS = objMO.InvokeMethod("SetDNSServerSearchOrder", objNewDNS, null);
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show( "Došlo k chybe " + ex.Message);
                }
            }
            
        }

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zlaté DHCP,takhle pracovat u nás,tak nic neudělám :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A proč proboha nemáte nastaveno na klientech DHCP?! Pokud vám jde o to, aby určitý počítač měl vždy stejnou IP adresu tak i to se dá řešit v případě DHCP a to statickým přidělením IP adresy na konkrétní MAC adresu síťového rozhraní. V té vaší nemocnici to teda musí vypadat, zřejmě tam kvůli každému uprdnutí musíte obíhat všech 200 počítačů.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Čakal som že sa ozvete s DHCP. Tento stav je tu ešte po mojom predchodcovi chystám sa niečo také ponastavovať ale nato potrebujem nejaké železo a poriešiť aj to že už sú tu na sieti pustené asi tri DHCP. ak napíšem, že niektoré veci tu bežia ešte na IPX a novelle 3.11 tak mi neuveríte.

Ale myslím si že táto diskusia sa zvrtla úplne niekde inde.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Osobně mi přijde zbytečné to řešit v rámci .Net.Na toto stačí standardní nástroje Windows,tzn.vytvořil bych .bat soubor,do něj umístil změnu nastavení ethernet rozhraní.Takto se s tím budete týden mořit a pídit se po řešení,takto to máte za půl den hotový ...Každopádně si postavte DHCP server,na to není třeba až tak "nadupané" železo.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Místo prostého dávkového souboru bych doporučil VBScript/JScript, v něm se dá pracovat s instancemi COM objektů a tedy bez problémů používat WMI, což je ideální pro všechny administrativní úlohy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback