Windows 7 mit PowerShell 2.0. FRITZ!Box 7490 mit FRITZ!OS 6.51
Hallo,
ich habe diesen Artikel in der c't gelesen und würde daraufhin gerne meinen FRITZ!DECT 200 per PowerShell-Script schalten.
Leider klappt dies nicht; genauer gesagt scheitere ich schon am Ausführen der beispiel.ps1 des verlinkten Artikels.
Mir wird die folgende Fehlermeldung angezeigt:
Gebe ich das Passwort zum Login falsch ein, so ist die Fehlermeldung nur wenig anders:
Das Zeichen 26 - "(" - kann also eigentlich nicht das Problem sein. Ich verstehe nicht, warum die einfache Abfrage nach der externen IP-Adresse nicht klappt. (Das Abspeichern des Telefonbuchs klappt auch nicht - gleiche Fehlermeldung.)
Einfach, selbst gebastelte Aufrufe haben die gleiche Fehlermeldung zur Folge. Allerdings nutze ich auch dasselbe Script-Gerüst.
Die beispiel.ps1 fragt den Security-Port sowie die externe IP-Adresse ab und speichert das Telefonbuch:
Wer kann mir einen Tipp geben, woran es liegt?
Vielen Dank!!!
Hallo,
ich habe diesen Artikel in der c't gelesen und würde daraufhin gerne meinen FRITZ!DECT 200 per PowerShell-Script schalten.
Leider klappt dies nicht; genauer gesagt scheitere ich schon am Ausführen der beispiel.ps1 des verlinkten Artikels.
Mir wird die folgende Fehlermeldung angezeigt:
PHP:
Ausnahme beim Aufrufen von "UploadString" mit 2 Argument(en): "Der Remoteserver hat einen Fehler zurückgegeben: (500) Interner Serverfehler."
Bei Zeile:66 Zeichen:26
+ $r = [xml]$w.UploadString <<<< ("https://fritz.box:"+$port+"/upnp/control/wanpppconn1",$query)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Gebe ich das Passwort zum Login falsch ein, so ist die Fehlermeldung nur wenig anders:
PHP:
Ausnahme beim Aufrufen von "UploadString" mit 2 Argument(en): "Der Remoteserver hat einen Fehler zurückgegeben: (401) Nicht autorisiert."
Bei Zeile:66 Zeichen:26
+ $r = [xml]$w.UploadString <<<< ("https://fritz.box:"+$port+"/upnp/control/wanpppconn1",$query)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Das Zeichen 26 - "(" - kann also eigentlich nicht das Problem sein. Ich verstehe nicht, warum die einfache Abfrage nach der externen IP-Adresse nicht klappt. (Das Abspeichern des Telefonbuchs klappt auch nicht - gleiche Fehlermeldung.)
Einfach, selbst gebastelte Aufrufe haben die gleiche Fehlermeldung zur Folge. Allerdings nutze ich auch dasselbe Script-Gerüst.
Die beispiel.ps1 fragt den Security-Port sowie die externe IP-Adresse ab und speichert das Telefonbuch:
PHP:
$w=New-Object System.Net.WebClient
$w.Encoding=[System.Text.Encoding]::UTF8
$w.Headers.Set("Content-Type", 'text/xml; charset="utf-8"')
$w.Headers.Set("SOAPACTION", 'urn:dslforum-org:service:DeviceInfo:1#GetSecurityPort')
$query='<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body> ' +
'<u:GetSecurityPort xmlns:u="urn:dslforum-org:service:DeviceInfo:1">
</u:GetSecurityPort>' +
'</s:Body>
</s:Envelope>'
$r = [xml]$w.UploadString("http://fritz.box:49000/upnp/control/deviceinfo",$query)
$port=$r.Envelope.Body.GetSecurityPortResponse.NewSecurityPort
$w.Headers.Set("Content-Type", 'text/xml; charset="utf-8"')
$w.Headers.Set("SOAPACTION", 'urn:dslforum-org:service:WANPPPConnection:1#GetExternalIPAddress')
$query='<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body> ' +
'<u:GetExternalIPAddress xmlns:u="urn:dslforum-org:service:WANPPPConnection:1">
</u:GetExternalIPAddress>' +
'</s:Body>
</s:Envelope>'
$w.Credentials=New-Object System.Net.NetworkCredential("login","passwort")
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$r = [xml]$w.UploadString("https://fritz.box:"+$port+"/upnp/control/wanpppconn1",$query)
"Externe IP-Adresse: " + $r.Envelope.Body.GetExternalIPAddressResponse.NewExternalIPAddress
$w.Headers.Set("Content-Type", 'text/xml; charset="utf-8"')
$w.Headers.Set("SOAPACTION", 'urn:dslforum-org:service:X_AVM-DE_OnTel:1#GetPhoneBook')
$query='<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body> ' +
'<u:GetPhoneBook xmlns:u="urn:dslforum-org:service:X_AVM-DE_OnTel:1">
<NewPhonebookID>0</NewPhonebookID>
</u:GetPhoneBook>'+
'</s:Body>
</s:Envelope>'
$r = [xml]$w.UploadString("https://fritz.box:"+$port+"/upnp/control/x_contact",$query)
$url=$r.Envelope.Body.GetPhonebookResponse.NewPhonebookURL
$w.Headers.Clear()
$w.DownloadFile( $url, "pbook.xml")
Wer kann mir einen Tipp geben, woran es liegt?
Vielen Dank!!!
Zuletzt bearbeitet: