wiseguy
Goto Top

Resolve-Dns cmdlet unter Powershell 3.0 in Windows Server 2008 R2 nicht verfügbar

Hallo,

ich bräuchte das cmdlet Resolve-Dns, welches eigentlich in der Powershell 3.0 verfügbar sein sollte. Hab also auf meinem Windows Server 2008 R2 folgendes Update installiert:

Windows6.1-KB2506143-x64.msu (http://www.microsoft.com/en-us/download/details.aspx?id=34595)

In der Powershell sehe ich nun auch, dass ich Version 3.0 installiert habe:

PS C:\Users\Administrator> Get-Host


Name : ConsoleHost
Version : 3.0
InstanceId : 1d04b21b-f81e-4a5b-a931-ae493cb9771c
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : de-DE
CurrentUICulture : de-DE
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace


Leider hab ich trotzdem immer noch nicht den Resolve-Dns Befehl zur Verfügung:

PS C:\Users\Administrator> Resolve-Dns
Resolve-Dns : Die Benennung "Resolve-Dns" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1

back-to-topResolve-Dns

back-to-top~~~~~~~~~~~

+ CategoryInfo : ObjectNotFound: (Resolve-Dns:String) , CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Weiß einer, was ich noch installieren muss um diesen Befehl zur Verfügung zu haben?

mfg
Wiseguy

Content-ID: 227046

Url: https://administrator.de/contentid/227046

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

colinardo
Lösung colinardo 18.01.2014, aktualisiert am 29.01.2014 um 01:52:03 Uhr
Goto Top
Hallo WiseGuy,
das CMDLet heißt nicht Resolve-Dns sondern Resolve-DnsName und ist erst verfügbar unter: Windows 8.1, Windows Server 2012 R2 mit Windows PowerShell 4.0.
http://technet.microsoft.com/en-us/library/jj590781.aspx

Als Alternative kannst du das gewünschte mit einer .NET Methode machen:
([system.net.dns]::GetHostEntry("www.microsoft.com")).AddressList.IPAddressTostring
Grüße Uwe
wiseguy
wiseguy 18.01.2014 um 09:16:11 Uhr
Goto Top
Ich hab jetzt auch die Powershell 4.0 für Windows Server 2008 R2 von hier installiert: http://www.microsoft.com/de-de/download/details.aspx?id=40855

Aber das cmdlet steht mir auch da nicht zur Verfügung.

Aber danke für den alternativen Befehl. Das funktioniert.

Ist es da auch möglich, einen speziellen DNS Server abzufragen?
colinardo
colinardo 18.01.2014 aktualisiert um 09:24:40 Uhr
Goto Top
Zitat von @wiseguy:

Ich hab jetzt auch die Powershell 4.0 für Windows Server 2008 R2 von hier installiert:
http://www.microsoft.com/de-de/download/details.aspx?id=40855

Aber das cmdlet steht mir auch da nicht zur Verfügung.
wie schon oben geschrieben, erst ab Server 2012R2 oder Win 8.1 verfügbar
Ist es da auch möglich, einen speziellen DNS Server abzufragen?
muss ich mal nachsehen ...
colinardo
Lösung colinardo 18.01.2014, aktualisiert am 29.01.2014 um 01:51:40 Uhr
Goto Top
Zitat von @wiseguy:
Ist es da auch möglich, einen speziellen DNS Server abzufragen?
habe mal eine Funktion mit nslookup gebaut die IPv4 Adressen in einem StringArray zurückliefert, wenn der Hostname nicht aufgelöst werden konnte gibt sie "False" zurück
Function Resolve-Dns($hostname,$dnsserver){
    Function Get-Matches($Pattern,$groupNumber = 0) {begin { $regex = New-Object Regex($pattern) };process { foreach ($match in ($regex.Matches($_))) { ([Object[]]$match.Groups)[$groupNumber].Value }}}
    $proc = New-Object System.Diagnostics.Process
    $procStartInfo = New-Object System.Diagnostics.ProcessStartInfo("nslookup"," $hostname $dnsserver")  
    $procStartInfo.UseShellExecute = $false
    $procStartInfo.RedirectStandardOutput = $true
    $proc.StartInfo = $procStartInfo
    $proc.Start() | out-null
    $proc.WaitForExit()
    $sOutput = $proc.StandardOutput.ReadToEnd()
    $ips = $sOutput | Get-Matches "(?s)Name:.*Address(es)?:(.*)" 2 | Get-Matches "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" 0  
    if ($ips.Length -gt 0){$ips}else{$false}
}

Resolve-Dns "www.administrator.de" "8.8.8.8"  
(Wie immer ohne Gewähr)

vielleicht hilft dir das face-wink

Grüße Uwe