Zum Inhalt wechseln


Foto

Powershell - DNS Abfrage


  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1 MichaTo

MichaTo

    Newbie

  • 61 Beiträge

Geschrieben 14. Dezember 2011 - 19:12

Hallo zusammen,

nachdem ich mich jetzt angefangen habe mich mit Begeisterung mit der Powershell zu beschäftigen, habe ich nun auch schon einige Skritps geschrieben.

Zuletzt habe ich mich (unter Anleitung) damit beschäftigt PC's anzupingen:
$ping = new-object System.Net.NetworkInformation.Ping
$Reply = $ping.send($strComputer)

Nun habe ich mir die Klassen beim MSDN mal angeschaut und folgende gefunden:
System.net.dns (Dns-Klasse)

Versuche ich nun diese Klasse in einem Objekt zu erstellen, bekomme ich folgende Fehlermeldung:

PS C:\> $dnsobj = new-object system.net.dns
New-Object : Der Konstruktor wurde nicht gefunden. Es kann kein geeigneter Konstruktor für den Typ system.net.dns gefun
den werden.
Bei Zeile:1 Zeichen:21
+ $dnsobj = new-object <<<<  system.net.dns
    + CategoryInfo          : ObjectNotFound: (:) [New-Object], PSArgumentException
    + FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand

Kann mit jemand sagen, was ich falsch mache, bzw. wie ich es 'richtiger' machen könnte?

Mein Ziel ist es eine Namensauflösung in einem Powershell Skript zu bearbeiten.

MfG Micha

#2 Dukel

Dukel

    Board Veteran

  • 6.212 Beiträge

Geschrieben 14. Dezember 2011 - 19:57

Versuch mal z.B. [system.net.dns]::GetHostEntry("www.mcseboard.de")

Das hat was mit Objektorientierer Programmierung zu tun, warum das so anders ist.

#3 blub

blub

    Moderator

  • 6.805 Beiträge

Geschrieben 14. Dezember 2011 - 20:04

Hi,
Die Methoden der DNS-Klasse sind alle statisch. Das erkennst du z.B. an dem roten "S" bei den Methoden in deinem angegebenen Link.
Statische Methoden wendest du auf keine Instanz der Klasse an (new-object....), sondern auf die Klasse selbst. d.h. die Schreibweise mit dem Doppelpunkt

[system.net.dns]::gethostname()
[system.net.dns]::gethostaddresses("Client1")


vergleich auch mal
[system.net.dns] | get-member -static
zu
[system.net.dns] | get-member

blub

Nec Cupias, Nec Metuas