Jump to content

VB Script um Rechnernamen in IP umzusetzen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich suche ein VB Script um Rechnernamen in IP`s umzuwandeln. Ich habe also eine Textdatei mit ca. 150 Rechnernamen und möchte die per VBscript in IPs umwandeln und diese in genau der selben Reihenfolge auszugeben.

Da ich ein volkommener VB Noob bin und jetzt VB anwenden muss stelle ich euch mal diese Frage.

 

 

Bitte habt Nachsicht mit mir, ich bin schon dabei mir Grundkenntnisse auf die ich aufbauen kann anzueignen.

Link zu diesem Kommentar

Hallo Board,

 

ich habe zwar einen Tag und viel Google, plus kurz mal nen Kollegen gebraucht. Nun ist es aber vollbracht!!

 

So sollte es klappen!!

 

Dim Domain

Dim SourceFile

Dim TargetFile

 

strDomain = ".Domain.local"

strSourceFile = "c:\script\names.txt"

strTargetFile = "c:\script\IPs.txt"

 

Const ForReading = 1

Const ForWriting = 2

 

 

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objTextFile = objFSO.OpenTextFile _

(strSourceFile, ForReading)

 

Set objLogFile = objFSO.OpenTextFile _

(strTargetFile, ForWriting, True)

 

Do Until objTextFile.AtEndOfStream

strServerName = objTextFile.Readline

WScript.Echo strServerName & " " & NSlookup (strServerName & strDomain)

objLogFile.WriteLine strServerName & " " & NSlookup (strServerName & strDomain)

Loop

 

objTextFile.Close()

objLogFile.Close()

 

Function NSlookup(sHost)

' Both IP address and DNS name is allowed

' Function will return the opposite

 

 

Set oRE = New RegExp

oRE.Pattern = "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"

bInpIP = False

If oRE.Test(sHost) Then

bInpIP = True

End If

 

 

Set oShell = CreateObject("Wscript.Shell")

Set oFS = CreateObject("Scripting.FileSystemObject")

 

 

sTemp = oShell.ExpandEnvironmentStrings("%TEMP%")

sTempFile = sTemp & "\" & oFS.GetTempName

 

 

'Run NSLookup via Command Prompt

'Dump results into a temp text file

oShell.Run "%ComSpec% /c nslookup.exe " & sHost _

& " >" & sTempFile, 0, True

 

 

'Open the temp Text File and Read out the Data

Set oTF = oFS.OpenTextFile(sTempFile)

 

 

'Parse the text file

Do While Not oTF.AtEndOfStream

sLine = Trim(oTF.Readline)

If LCase(Left(sLine, 5)) = "name:" Then

sData = Trim(Mid(sLine, 6))

If Not bInpIP Then

'Next line will be IP address(es)

'Line can be prefixed with "Address:" or "Addresses":

aLine = Split(oTF.Readline, ":")

sData = Trim(aLine(1))

End If

Exit Do

End If

Loop

 

 

'Close it

oTF.Close

'Delete It

oFS.DeleteFile sTempFile

 

 

If LCase(TypeName(sData)) = LCase("Empty") Then

NSlookup = ""

Else

NSlookup = sData

End If

End Function

Link zu diesem Kommentar

probiers mal damit:

 

Module Module1

   Sub Main()
       ' DCGCs im Forest


       Dim myForest As System.DirectoryServices.ActiveDirectory.Forest
       myForest = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest
       Dim myDCGC As System.DirectoryServices.ActiveDirectory.DomainController
       Try

           For Each myDCGC In myForest.FindAllGlobalCatalogs
               Console.WriteLine(myDCGC.Name & " " & myDCGC.IPAddress)
           Next

       Catch ex As Exception
           Console.WriteLine("Fehler aufgetreten: " & ex.Message)
       End Try

   End Sub


End Module

 

Das Programm listet dir alle DCGCs im Forest mit Namen und IP mittels .Net auf

http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domaincontroller.aspx

 

In einem Multidomain-Forest habe ich es noch nicht getestet, sollte aber funktionieren

 

cu

blub

get-DCGCs-In-Forest.zip

bearbeitet von blub
Link zu diesem Kommentar

Moin,

 

Das Problem ist schon gelöst, wir gerieten nur etwas in den Off-Topic Bereich.

 

naja, anscheinend ja nicht, denn du sagst ja selbst:

 

Morgen kommt das Script zur Abfrage der GC Funktion.

 

Also wäre es interessant, die übergeordnete Aufgabe zu kennen, damit wir hier nicht ständig an Einzelheiten herumdoktern.

 

Dazu übrigens:

faq-o-matic.net Alle Global Catalog Server auflisten

 

Oder schlicht:

faq-o-matic.net Borg: AD-Standorte dokumentieren

 

Gruß, Nils

Link zu diesem Kommentar

Hallo,

Habs nochmal mit Powershell und .Net umgesetzt.

 

Da bekommt man die Aufgabe alle DCGCs im Forest mit IPAdresse, Name etc. zu listen, mit einem Dreizeiler hin

 

$myForest = [system.DirectoryServices.ActiveDirectory.Forest]::getcurrentforest()
$DCGCs=$myforest.findallglobalcatalogs()
$DCGCs | ft Name, IPAddress, domain, osversion, roles, sitename

 

http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domaincontroller.aspx

 

 

Und dieses Script listet jeden DC im Forest mit Name, IPAdress und ISGlobalCatalog auf.

$objForest = [system.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()
$objForest.Domains | foreach{
  $context = new-object System.DirectoryServices.ActiveDirectory.DirectoryContext("domain",$_.name)
     $([system.directoryservices.activedirectory.domain]::GetDomain($context).domainControllers) | foreach{
     "$($_.name) $($_.ipaddress) $($_.isglobalcatalog())"
     }   
  }

 

 

cu

blub

bearbeitet von blub
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...