Powershell: FritzBox über TR-064 im Netzwerk konfigurieren und auslesen
Inhaltsverzeichnis
Vorwort
Ich stand vor geraumer Zeit vor der Aufgabe eine Fritzbox per Powershell auszulesen und Aktionen darüber automatisiert auszuführen. Herausgekommen ist ein Powershell-Modul das bestimmt dem ein oder anderen nützlich sein könnte.
Ich hatte dazu zwar schon einen Artikel für die Bash geschrieben, jedoch hat dieser das ganze Prozedere über das Webinterface realisiert was jedoch durch die ständigen Anpassungen seitens AVM nicht für dauerhafte Skripte geeignet und auch nicht sehr zuverlässig ist wenn zukünftige Updates auf der FritzBox gefahren werden.
Also habe ich das ganze nun mal mit der standardisierte Schnittstelle TR-064 umgesetzt welche die Fritzbox unterstützt. Die Abfragen laufen dort über standardisierte SOAP-Requests auf die uPnP Schnittstelle der Box (Port 49000/49443) ab.
Download des Powershell-Moduls: FritzBox TR-064 Powershell Modul
Nötige Voreinstellungen zur Nutzung der Schnittstelle
Damit die SOAP-Abfragen funktionieren, muss folgende Einstellung in der Fritzbox aktiviert sein:
Heimnetz > Heimnetzübersicht > Netzwerkeinstellungen > Zugriff für Anwendungen zulassen
Das Modul stellt im aktuellen Zustand noch nicht alle verfügbaren Funktionen zur Verfügung, jedoch einen breiten Satz über alle Möglichkeiten. Bei Bedarf können natürlich mit Studium der entsprechenden AVM-Dokumentation und der SOAP-XML-Beschreibungsdatei Funktionen leicht selbst nachgerüstet werden. Dazu schreibe ich später noch mehr.
Das Modul wurde mit einer FritzBox 7590 mit Firmware > 7.0 an einem DSL-Anschluss getestet (siehe Changelog), sollte aber in der Regel auch mit älteren/neueren Firmware-Revisionen funktionieren sofern AVM keine grundlegenden Änderungen am TR-064 Protokoll oder den Parametern vornimmt.
Wichtige Informationen
Für Veränderungen von bestimmten Einstellungen des Routers die eine 2 Faktor-Authentifizerung bedingen, muss entweder die 2-Faktor-Bestätigung (System > Fritz!Box-Benutzer > Zusätzliche Bestätigung) deaktiviert werden, oder eine 2FA Session mit der Modul-Funktion
Set-FB2FASession -action start
des Moduls gestartet und per Button-Press oder Telefon-Code bestätigt werden, da ansonsten die jeweilige Methode mit der Meldung "Ungültge Parameter (402)" oder andere fehl schlägt!ACHTUNG: Ab FritzOS 7.50 lässt sich eine einmal aktivierte 2FA Authentifizierung nicht mehr deaktivieren, jedoch wird eine 2FA die vor dem Update auf 7.50 deaktiviert war auch nicht automatisch eingeschaltet. Sobald man diese aber einschaltet oder bei einem User die Authenticator-App einrichtet, lässt sich diese nicht mehr deaktivieren!
Das Modul funktioniert nur über das interne Netz der Fritzbox, also nicht über den WAN-Port!
Momentan enthaltene Funktionen
Basis-Funktionen
Get-FBInfo
: Basisinformationen abrufenGet-FBDeviceLog
: Aktuelle Log-Einträge abrufenGet-FBWANStatistics
: WAN Statistik anzeigen (Bytes/Pakete gesendet/empfangen)Get-FBWANDSLInterfaceConfig
: DSL Leitungsdaten abfragen (Internet > DSL-Informationen > DSL [Ausgehandelte Verbindungseigenschaften])Get-FBWANDSLInterfaceStatistics
: DSL Leitungsstatistik abfragen (Internet > DSL-Informationen > DSL [Fehlerzähler])Get-FBWANDSLSpectrumData
: DSL Spektrum Daten abfragen (Internet > DSL-Informationen > Spektrum)Invoke-FBReboot
: Fritzbox neu startenEnable-FBDeviceKeyLock
: Tastensperre aktivieren (Gerätetasten deaktivieren)Disable-FBDeviceKeyLock
: Tastensperre deaktivieren (Gerätetasten aktivieren)Export-FBDeviceConfig
: Aktuelle Geräte-Konfiguration in eine Datei exportierenExport-FBVPNConfig
: Aktuelle VPN Konfiguration (IPSEC/Wireguard) in eine Datei exportieren
Firmware-Management
Get-FBFirmwareUpdates
: Verfügbare Firmware Updates abfragenGet-FBFirmwareUpdateInfo
: Informationen zu vergangenen Firmware-Updates, Update-Policy, Installationsstatus anzeigenStart-FBFirmwareUpdate
: Firmware-Update startenSet-FBFirmwareUpdatePolicy
: Update-Policy ändern (Nur benachrichtigen, Nur wichtige Updates automatisch installieren, Alle updates automatisch installieren)
Verbindungen
Invoke-FBDSLDisconnect
: DSL-Verbindung trennen
Portfreigaben
Get-FBPortMappings
: Portfreigaben auslesenAdd-FBPortMapping
: TCP/UDP Portfreigaben erstellen.Remove-FBPortMapping
: TCP/UDP Portfreigaben löschen. Achtung: Aktuell in Firmware Versionen 7.27/7.28 wegen Bug in der AVM-Firmware nicht funktionsfähig
Telefonie-Funktion
Get-FBCallList
: Ruft die detaillierte Anruferliste ab.Invoke-FBDialNumber
: Eine Rufnummer mit Hilfe der Wählhilfe anwählenSet-FBDialHelperFunction
: Aktiviert oder Deaktiviert die Wählhilfe für ein bestimmtes EndgerätDisconnect-FBCall
: Anruf über die Wählhilfe vorzeitig beendenGet-FBPhoneBooks
: Liste der Telefonbücher abrufenAdd-FBPhonebook
: Telefonbücher hinzufügenRemove-FBPhonebook
: Telefonbücher löschenUpdate-FBPhonebook
: Online Telefonbücher aktualisierenGet-FBPhoneBookEntries
: Kontakte eines Telefonbuchs auslesenAdd-FBPhonebookEntry
: Kontakt zum Telefonbuch hinzufügenUpdate-FBPhoneBookEntry
: Kontakte eines Telefonbuchs ändernRemove-FBPhoneBookEntry
: Kontakt eines Telefonbuchs löschenExport-FBPhoneBook
: Telefonbuch in verschiedenen Formaten speichern, zur Zeit als XML und CSV (Outlook Import kompatibel)Get-FBCallDeflections
: Alle Rufumleitungen auflistenGet-FBCallDeflection
: bestimmte Rufumleitung anhand Ihrer ID abfragenSwitch-FBCallDeflection
: De-/aktivieren einzelner/mehrerer RufumleitungenGet-FBTAMList
: Anrufbeantworter auflistenGet-FBTAMInfo
: Details eines Anrufbeantworters anzeigenEnable-FBTAM
: Anrufbeantworter einschaltenDisable-FBTAM
: Anrufbeantworter ausschaltenGet-FBTAMMessageList
: Anzeigen von Nachrichten eines Anrufbeantworters / Speichern als WAV-DateiSet-FBTAMMarkMessage
: Nachrichten eines Anrufbeantworters als gelesen/ungelesen markierenRemove-FBTAMMessage
: Löschen von Nachrichten eines Anrufbeantworters
DECT
Get-FBDECTDeviceList
: Alle verfügbaren DECT-Geräte auflistenGet-FBDECTDeviceInfo
: Informationen zu bestimmten DECT-Geräten anzeigen (Hinweis: Gültige "deviceID" Werte sind 1 .. 6 for DECT Handgeräte oder 16 .. 415 für DECT ULE Geräte)Get-FBDECTDeviceCount
: Anzahl an aktuell verbundenen DECT-Geräten anzeigenStart-FBDECTDeviceUpdate
: Softwareupdate eines DECT-Gerätes anstoßen
Netzwerk
Get-FBHostList
: Liste der Hosts im Netzwerk abfragen, optional inkl. DHCP-LeaseinfoInvoke-FBWakeOnLan
: Wake-On-Lan Magic-Paket an bekannte Stationen im Netzwerk sendenGet-FBStaticRoutes
: Auflisten der statischen RoutenGet-FBStaticRoute
: Abfragen bestimmter statischer RoutenEnable-FBStaticRoute
: Statische Route aktivierenDisable-FBStaticRoute
: Statische Route deaktivierenAdd-FBStaticRoute
: Statische Route hinzufügenRemove-FBStaticRoute
: Statische Route entfernen
Wifi
Switch-FBWifiInterface
: Bestimmtes Wifi-Interface ein-/ausschaltenGet-FBWifiInterfaceInfo
: Informationen über Wifi-Interfaces ausgebenSwitch-FBWifi
: Wifi global ein- oder ausschalten (so wie wenn man den Wifi-Button am Gerät betätigt)Get-FBWifiWPSInfo
: WPS Status abfragenSet-FBWifiWPSConfig
: WPS starten/stoppen (PushButton/Stop running WPS Session/WPS deaktivieren)Set-FBWifiWPSStatus
: WPS de-/aktivierenGet-FBWifiNightControl
: Wifi Nachtschaltfunktion auslesenGet-FBWifiConnectedDevicesAsXML
: Informationen über alle Verbundenen Wifi-Clients als XML Objekt ausgebenSet-FBWifiInterfaceChannel
: WLAN Kanal für ein Wifi-Interface festlegenGet-FBWifiPresharedKey
: PSK für Wifi-Interface auslesenSet-FBWifiPresharedKey
: PSK für Wifi-Interface setzen
Speicherfunktionen SMB/FTP
Get-FBStorageConfig
: Status der SMB/FTP Funktionen ausgebenEnable-FBFTPServer
: FTP-Server für LAN/WAN aktivierenDisable-FBFTPServer
: FTP-Server für LAN/WAN deaktivierenEnable-FBSmbServer
: SMB-Server aktivierenDisable-FBSmbServer
: SMB-Server deaktivierenSet-FBftpuserConfig
: Konfiguration des speziellen 'ftpuser' Kontos modifizierenGet-FBOnlineStorage
: Online-Speicher Konfiguration anzeigen (TR-064 Funktion zum Ändern dieser zur Zeit leider nicht funktionsfähig(Firmware-Bug?)
Kindersicherung (WAN-Zugangsfilter)
Get-FBWANAccessByIP
: WAN Zugangsstatus für IP abfragenEnable-FBWANAccessByIP
: WAN Zugang erlaubenDisable-FBWANAccessByIP
: WAN Zugang sperrenSet-FBDiscardAllTickets
: Ein neues Set an Zugangstickets generierenGet-FBTicketIDStatus
: Status eines Tickets abfragenSet-FBMarkTicket
: Ticket als ungültig markieren
Remote-Zugriff / Dynamic-DNS (DDNS) / Zertifikate
Get-FBRemoteAccessUsers
: Liste mit Usern ausgeben die für den Remote-Zugriff aktiviert wurdenEnable-FBRemoteAccess
: Remote-Zugriff per HTTPS aktivierenDisable-FBRemoteAccess
: Remote-Zugriff per HTTPS deaktivierenGet-FBDDNSInfo
: Konfigurationsoptionen für DDNS Dienst anzeigenGet-FBDDNSProviders
: Unterstützte Dynamic-DNS Provider anzeigenSet-FBDDNSConfig
: Dynamic-DNS Konfigurations-Optionen und Dienst an- oder abschaltenUpdate-FBCertificate
: Benutzerdefiniertes Zertifikat (*.pem) in die Fritzbox importieren
TR069 ACS-Management Verwaltung
Get-FBManagementSettings
: Aktuell gesetzte Management-Server Einstellungen abrufenSet-FBManagementSettings
: Sämtliche Management-Server Einstellungen festlegen (ServerURL,ServerCredentials,ConnectionCredentials,FirmwareDownload,ManagementUpgrades,InformIntervalSettings)Reset-FBManagementSettings
Management deaktivieren / zurücksetzen
Smarthome Geräte Verwaltung
Get-FBSmarthomeDeviceInfo
: Informationen von Smarthome-Geräten abfragen (Schalterstatus/Temperatur/Leistung/...)Set-FBSmarthomeSwitch
: Smarte Schaltsteckdosen schalten (ON, OFF, TOGGLE)
2FA Authentifizierung
Get-FB2FAInfo
: Information ob die 2FA Authentifizierung auf der Fritzbox aktiv istGet-FB2FAState
: Status einer 2FA Session abfragenSet-FB2FASession
: Starten oder Stoppen einer 2FA Authentifizierungs-Session. Sie Session kann zur Zeit nur per Button-Press an der Fritzbox oder Eingabe des angezeigten DTMF-Codes an einem angeschlossenen Telefon bestätigt werden. (TOTP Authenticator Support über TR-064 ist zur Zeit von AVM leider noch nicht implementiert)
Erläuterungen zur praktischen Nutzung
Einbinden des Moduls
Um das Modul in einer beliebigen Powershell-Session zu nutzen, muss dieses als erstes importiert werden. Das geschieht mit folgendem Befehl (Parameter -verbose ist optional):
Import-Module "C:\Pfad\zum\Modul\fritzbox_module" -verbose
Alternativ kann man das Modul natürlich wie gehabt auch in die systemweit nutzbaren Modulverzeichnisse kopieren, dann erübrigt sie das manuelle Importieren über
Import-Module
.Die Verzeichnisse in denen man das Modul platzieren kann sind über die Globale Variable
$env:PSModulePath
abrufbar. Der Inhalt des Moduls muss dann nur in einen der aufgeführten Ordner kopiert werden.Die Informationen zur Nutzung des Moduls sind auch in der Zip-Datei des Moduls in der Datei readme.txt enthalten.
Erster Aufruf vor der Nutzung der spezifischen Funktionen
Bevor eine der bereitgestellten CMDLets des Moduls genutzt werden kann muss das CMDLet
Connect-Fritzbox
mit Hostname bzw. FQDN, Benutzername und Passwort als Parametern aufgerufen werden. Dieses initialisiert die Variablen für die folgenden Aufrufe der anderen CMDLets. Wird dies nicht getan werfen die CMDLets aber auch einen Hinweise darauf.Der Aufruf sieht bspw. so aus
Connect-Fritzbox -fqdn 'fritz.box' -username 'maxmuster' -password 'SeCrEt'
Danach lassen sich die nachfolgend aufgeführten CMDLets aufrufen. Diese nutzen dann für die Verbindung alle diese angegebenen Zugangsdaten.
Möchte man sich einen Überblick verschaffen welche CMDLets das Modul bietet führt man dazu folgendes nach dem Import des Moduls aus
Get-Command -Module fritzbox_module
Zu jeder Funktion sind Beispiele und Informationen zur Nutzung in der Synopsis oberhalb jeder Funktion hinterlegt. Diese lassen sich entweder direkt im Modul-Code nachlesen oder man nutzt die Powershell-Eigenen Hilfsfunktionen.
Beispiel um die Hilfe für das CMDLet
Connect-Fritzbox
anzuzeigenGet-Help Connect-Fritzbox -full
Hinweise und Links für Entwickler die die Funktionalität selbst erweitern möchten.
Dokumentation zur TR-064 Schnittstelle
Die Dokumentation zu der TR-064 Schnittstelle und die Dienstbeschreibungen mit den nötigen Parametern findet sich hier:
http://avm.de/service/schnittstellen/
Die XML-Datei welche die SOAP-Servicebeschreibungen der eigenen Fritzbox auflistet kann man auf seiner eigenen Fritzbox unter http://fritz.box:49000/tr64desc.xml abrufen.
Dort finden sich dann Abschnitte mit dem XML-Tag Service.
Beispiel:
<service>
<serviceType>urn:dslforum-org:service:DeviceConfig:1</serviceType>
<serviceId>urn:DeviceConfig-com:serviceId:DeviceConfig1</serviceId>
<controlURL>/upnp/control/deviceconfig</controlURL>
<eventSubURL>/upnp/control/deviceconfig</eventSubURL>
<SCPDURL>/deviceconfigSCPD.xml</SCPDURL>
</service>
Ruft man diese XML-Datei ab, findet man darin die Aktionen die man für diese Kategorie ausführen kann.
Beispiel hier die Aktion zum Zurücksetzen auf die Werkseinstellungen:
<action>
<name>FactoryReset</name>
</action>
New-Request
immer im Parameter -action wenn man sich mal eine der CMDLets im Skript anschaut. Zusätzlich muss der Inhalt des Tags serviceType (also das urn:dslforum-org:......
) beim Aufruf der New-Request
Funktion im Parameter -urn angegeben werden.Je nachdem welche und ob die Funktion Übergabe-Parameter erwartet, steht ebenfalls in den PDF-Dokumentationen zu den jeweiligen Funktionen bei AVM. Muss man Parameter im SOAP-Request mit übergeben sind diese mit [IN] gekennzeichnet. Parameter die mit [OUT] gekennzeichnet sind werden bei der Antwort ausgegeben, diese muss man der Funktion also nicht übergeben.
Mit diesen Informationen ist also nicht sehr schwierig auch andere Funktionen der Fritzbox anzusprechen oder entsprechende Infos abzurufen.
Solltet Ihr Interesse an weiteren spezifischen Funktionen haben kann ich Zug um Zug weitere Funktionen nachreichen und in das Modul einbauen wenn Ihr mir dies mit einer Bitte in die Kommentare schreibt. Ich werde diese dann Zeitnah nachreichen.
Hoffe das hilft dem ein oder anderen bei seinem Projekt.
Wie immer sind alle Angaben ohne Gewähr und die Benutzung geschieht auf eigene Gefahr.
Gruß @colinardo
Changelog
1.2.6 (21.03.2024)
- Kleinere Fixes für das Datumsparsing und Versionserkennung an der Funktion
Get-FBDeviceLog
vorgenommen (Dank an Thomas für den Hinweis.).
- + Wake-On-Lan Funktion
Invoke-FBWakeOnLan
hinzugefügt
- + 2 Funktionen für den Konfigurationsexport der Geräte- und VPN-Konfiguration (IPSEC/Wireguard) hinzugefügt
Export-FBDeviceConfig
,Export-FBVPNConfig
- + 4 Funktionen zum Firmware-Management hinzugefügt
Get-FBFirmwareUpdates
,Get-FBFirmwareUpdateInfo
,Start-FBFirmwareUpdate
,Set-FBFirmwareUpdatePolicy
- + Funktionen
Enable-FBDeviceKeyLock
undDisable-FBDeviceKeyLock
hinzugefügt um die Geräte Tastensperre zu (de-)aktivieren (LUA-Funktion)
- + Funktion
Get-FBDeviceLog
hinzugefügt welche aktuelle Log-Einträge über die LUA-Skripte abruft, da über die TR-064 Funktionen selbst leider kein komplettes Log abrufbar ist und dies nur ältere Einträge liefert.
- + 2FA Authentifizierungs-Funktionen hinzugefügt (Vorbereitung auf zukünftige Funktionen die eine 2FA Authentifizierung zwingend erfordern)
- Fix: Funktion
Get-FBWANDSLSpectrumData
überarbeitet und für FritzOS >=7.50 korrigiert
- + Funktionen
Get-FBDECTDeviceList, Get-FBDECTDeviceInfo, Get-FBDECTDeviceCount, Start-FBDECTDeviceUpdate
für die Verwaltung von DECT-Gerätschaften hinzugefügt.
- Fix: Die Funktionen
Get-FBWPSInfo, Set-FBWPSConfig
im ModulGet-FBWifiWPSInfo, Set-FBWifiWPSConfig
umbenannt.
- Fix: Funktionen
Enable-FBStaticRoute, Disable-FBStaticRoute, Remove-FBStaticRoute
akzeptieren nun mehrere Routen über die Pipeline.
- + Funktion
Get-FBSmarthomeDeviceInfo
zur Abfrage von Smarthome-Geräte-Informationen undSet-FBSmarthomeSwitch
zum Schalten von smarten Schaltsteckdosen hinzugefügt.
- + Funktion
Add-FBPhonebook
undRemove-FBPhonebook
zum Hinzufügen und Entfernen von Telefonbüchern hinzugefügt.
- Fix: Variablenfehler in der Funktion
Get-FBWifiConnectedDevicesAsXML
behoben, FunktionGet-FBWANStatistics
hinzugefügt.
- + Telefonbuch Export-Funktion konsolidiert und umbenannt in
Export-FBPhonebook
, umfasst jetzt den wahlweisen Export in XML oder CSV (Outlook kompatibel) - Fix: Ausgabe-Encoding der Funktion
Get-FBTamMessageList
korrigiert. Die FunktionGet-FBTamMessageList
um eine Script-Methode erweitert die den Download der hinterlassenen Nachrichten als WAV-Datei ermöglicht.
- + 3 Funktionen zur Verwaltung der Telefonbücher hinzugefügt und aktualisiert
- + 3 Funktionen zur Verwaltung der TR069 ACS-Management Einstellungen hinzugefügt
- Fix: SSL-Problem unter Powershell Version 7 behoben
- + Werte der Funktion
Get-FBCallList
optimiert und zwei Ausgabeformate hinzugefügt um Einträge gruppiert nach Monaten und Nummern als Tabelle auszugeben.
- + Funktion um die Live-Daten des DSL-Spektrums abzufragen, hinzugefügt =>
Get-FBWANDSLSpectrumData
.
- + Funktion um ein benutzerdefiniertes Zertifikat in die Fritzbox zu importieren hinzugefügt =>
Update-FBCertificate
.
- + Die Funktion Get-FBHostList um einen zusätzlichen Parameter zur Abfrage der DHCP-Lease Informationen ergänzt.
- + 6 Funktionen für Remote-Zugriff/Dynamic-DNS hinzugefügt.
- Fix: Ausgaben der Portmapping-Funktionen optimiert.
- + 6 Funktionen zur Kindersicherung und WAN Zugangsfilter hinzugefügt
- + 7 Funktionen zum Verwalten von SMB/FTP Server und Online-Speicher hinzugefügt
- + 7 Funktionen zum Verwalten der Anrufbeantworter und deren Nachrichten hinzugefügt
- + 6 Funktionen zum Verwalten der statischen Routen hinzugefügt
- + Kompatibilität mit Fritz!OS 7.29 überprüft
- + Funktion zum Abfragen der Hosts im Netzwerk hinzugefügt
- Fix: 03.11.2021 : Die Portmapping-Funktionen korrigiert damit diese auch andere WAN-Typen unterstützt
- + Umwandlung des Skripts in ein echtes Powershell-Modul zur einfacheren Nutzung
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303474
Url: https://administrator.de/tutorial/powershell-fritzbox-ueber-tr-064-im-netzwerk-konfigurieren-und-auslesen-303474.html
Ausgedruckt am: 23.12.2024 um 05:12 Uhr
158 Kommentare
Neuester Kommentar
Hallo Uwe,
auch ich kenne mich mit Powershell nicht aus, aber dank Deiner ausführlichen Darstellungen läuft Dein Script. Leider hat es keine Funktion, die eine Abfrage an die FB erlaubt, ob ein USB-Gerät (nicht über Fernanschluss) angeschlossen ist bzw. bereits ist. Ist sowas überhaupt machbar? Wenn ja, kann man die Infos in eine Datei schreiben lassen?
auch ich kenne mich mit Powershell nicht aus, aber dank Deiner ausführlichen Darstellungen läuft Dein Script. Leider hat es keine Funktion, die eine Abfrage an die FB erlaubt, ob ein USB-Gerät (nicht über Fernanschluss) angeschlossen ist bzw. bereits ist. Ist sowas überhaupt machbar? Wenn ja, kann man die Infos in eine Datei schreiben lassen?
Vielen Dank für Deine Mühen, leider funktioniert das Script nicht (löst einen Haufen Fehler aus:
wobei ich als URL der FB die IP angegeben habe, weil auch in Firefox der Name nicht mehr aufgelöst wird seit Neuem. Dies klappt auch im ersten Script. Ich nutze die FB 7270 V2 (UI) mit der FW 54.06.06. Ich nehme an es liegt daran, wie Du auch angedeutet hast. Wo muss ich suchen, um den richtigen Code für meine Box zu finden.
Grüße
Selfer
powershell.exe : Invoke-WebRequest : FRITZ!BoxDie angegebene URL wurde nicht gefunden. Sie
In Zeile:1 Zeichen:1
+ powershell.exe -ExecutionPolicy Bypass -File C:\Users\Hubert\Desktop\nw-abfrage. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Invoke-WebReque... gefunden. Sie :String) , RemoteException
+ FullyQualifiedErrorId : NativeCommandError
werden auf die Startseite der FRITZ!Box weitergeleitet.Falls Sie nicht
automatisch auf die Startseite der FRITZ!Box weitergeleitet werden, klicken
Sie hier.
In C:\Users\Hubert\Desktop\nw-abfrage.ps1:25 Zeichen:10
+ $r = Invoke-WebRequest -Uri $url -Body $body -Method Get
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:Htt
pWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShe
ll.Commands.InvokeWebRequestCommand
Fehler beim Aufrufen der Methode, da [System.__ComObject] keine Methode mit
dem Namen "IHTMLDocument2_write" enth„lt.
In C:\Users\Hubert\Desktop\nw-abfrage.ps1:35 Zeichen:1
+ $dom.IHTMLDocument2_write($table)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (IHTMLDocument2_write:String)
, RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
irm : Ungltiger URI: Der Hostname konnte nicht analysiert werden.
In C:\Users\Hubert\Desktop\nw-abfrage.ps1:11 Zeichen:12
+ $xml = irm -Uri "$url/login_sid.lua" -SessionVariable sess -ContentType
"app ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-RestMethod], UriFormat
Exception
+ FullyQualifiedErrorId : System.UriFormatException,Microsoft.PowerShell.C
ommands.InvokeRestMethodCommand
wobei ich als URL der FB die IP angegeben habe, weil auch in Firefox der Name nicht mehr aufgelöst wird seit Neuem. Dies klappt auch im ersten Script. Ich nutze die FB 7270 V2 (UI) mit der FW 54.06.06. Ich nehme an es liegt daran, wie Du auch angedeutet hast. Wo muss ich suchen, um den richtigen Code für meine Box zu finden.
Grüße
Selfer
Zitat von @colinardo:
Bitte habe Verständnis das ich für die out of date Firmwares hier keinen kostenlosen Support bieten kann.
Bitte habe Verständnis das ich für die out of date Firmwares hier keinen kostenlosen Support bieten kann.
Selbst für aktuelle Firmwares kostenlosen Support zu erwarten ist etwas gewagt.
lks
Hallo colinardo
Seit längerer Zeit bin ich auf der Suche nach einer Möglichkeit, mit einem Script auf einem Windows-Rechner einen Telefonbeantworter auf der FritzBox beeinflussen zu können. Scripte im Zusammenhang mit der FritzBox habe ich schon einige gefunden. Bislang scheiterte es daran, dass ich nicht herausgefunden habe, was ich mit diesen wo anstellten sollte.....
Mit Deinem Script und den Tipps konnte ich zumindest bereits eine Reaktion erreichen.
Weisst Du, was ich an Deinem Script anpassen müsste, um die Delay-Zeit des Beantworters 1 beeinflussen zu können? Ich möchte zwischen 0 und 35 Sekunden wechseln können.
Besten Dank für Deinen Ratschlag schon im Voraus und liebe Grüsse aus der Schweiz.
voumi70
Seit längerer Zeit bin ich auf der Suche nach einer Möglichkeit, mit einem Script auf einem Windows-Rechner einen Telefonbeantworter auf der FritzBox beeinflussen zu können. Scripte im Zusammenhang mit der FritzBox habe ich schon einige gefunden. Bislang scheiterte es daran, dass ich nicht herausgefunden habe, was ich mit diesen wo anstellten sollte.....
Mit Deinem Script und den Tipps konnte ich zumindest bereits eine Reaktion erreichen.
Weisst Du, was ich an Deinem Script anpassen müsste, um die Delay-Zeit des Beantworters 1 beeinflussen zu können? Ich möchte zwischen 0 und 35 Sekunden wechseln können.
Besten Dank für Deinen Ratschlag schon im Voraus und liebe Grüsse aus der Schweiz.
voumi70
Sehr geiler Beitrag, ab neueren OS geht ja telnet so ohne weiteres nicht mehr, brauchte was um WLAN einzuschalten.
Ich habe den Aufruf etwas vereinfacht, so ist es m.E. einfacher mit der XML-Beschreibung von http://fritz.box:49000/tr64desc.xml bzw Unterseiten klarzukommen.
Die urn wird übergeben, die Action und die Argumente der Action als Hashtable.
Unten sind Beispiele für WLAN ein, WLAN aus und GetInfo
Bis die WLAN Befehle im UI sichtbar sind dauert es immer etwas (max 20 Sekunden).
Habe es mit der 7412 getestet.
Kann sein, dass es nicht mit allen Actions geht, habe nur die zwei getestet.
Ich habe den Aufruf etwas vereinfacht, so ist es m.E. einfacher mit der XML-Beschreibung von http://fritz.box:49000/tr64desc.xml bzw Unterseiten klarzukommen.
Die urn wird übergeben, die Action und die Argumente der Action als Hashtable.
Unten sind Beispiele für WLAN ein, WLAN aus und GetInfo
Bis die WLAN Befehle im UI sichtbar sind dauert es immer etwas (max 20 Sekunden).
Habe es mit der 7412 getestet.
Kann sein, dass es nicht mit allen Actions geht, habe nur die zwei getestet.
function Get-Soaprequest {
Param ($urn,$action,$arguments = @{})
# Service auslesen
$service = $serviceinfo.SelectNodes('//ns:service',$ns)| ? {$_.ServiceType -eq $urn}
# passenden Body Request-Tag ins XML einfügen
$actiontag = $script:request.CreateElement('u',$action,$service.serviceType)
foreach ($key in $arguments.keys) {
$parameter = $script:request.CreateElement($key)
$parameter.innerText = $arguments.$key
$actiontag.AppendChild($parameter) | out-null
}
$script:request.GetElementsByTagName('s:Body').AppendChild($actiontag) | out-null
# Initialer Request
$resp = Execute-SOAPRequest $script:request "$($service.serviceType)#$($action)" "$($FB_URL):49000$($service.controlURL)"
# Authentifizierungsdaten setzen
SetAuthInfo $resp
# Request mit Authentifizierung abschicken
$resp = Execute-SOAPRequest $script:request "$($service.serviceType)#$($action)" "$($FB_URL):49000$($service.controlURL)"
return $resp.Envelope.Body
}
#$resp = Get-Soaprequest "urn:dslforum-org:service:WLANConfiguration:1" "SetEnable" @{NewEnable = 1}
$resp = Get-Soaprequest "urn:dslforum-org:service:WLANConfiguration:1" "SetEnable" @{NewEnable = 0}
#$resp = Get-Soaprequest "urn:dslforum-org:service:DeviceInfo:1" "GetInfo"
$resp
$resp.GetInfoResponse
Hallo Colinardo,
vielen Dank für das umfangreiche Script und Deine Arbeit.
Ich möchte die Anrufliste aus der Fritzbox auslesen und alle Einträge dabei bekommen
(nicht die üblichen 400).
Obwohl in Deinem Script die erforderlichen Parameter stehen, kommen als Antwort immer
nur die letzten 400 Anrufe.
In der xml-Datei steht der Parameter calls:400. Wenn ich das als zusätzlichen Parameter
einfüge ändert sich nichts.
Weißt Du ob das das hart codiert ist oder wie man das ändern kann?
Danke
vielen Dank für das umfangreiche Script und Deine Arbeit.
Ich möchte die Anrufliste aus der Fritzbox auslesen und alle Einträge dabei bekommen
(nicht die üblichen 400).
Obwohl in Deinem Script die erforderlichen Parameter stehen, kommen als Antwort immer
nur die letzten 400 Anrufe.
In der xml-Datei steht der Parameter calls:400. Wenn ich das als zusätzlichen Parameter
einfüge ändert sich nichts.
Weißt Du ob das das hart codiert ist oder wie man das ändern kann?
Danke
Hallo,
Bau mehr RAM ein und erweiter die Firmware dann kannst du die 1200000 getätigten Anrufe auch im LOG sehen Oder AVM fragen warum die immer nur von max. 400 Einträge sprechen...
Gruß,
Peter
Bau mehr RAM ein und erweiter die Firmware dann kannst du die 1200000 getätigten Anrufe auch im LOG sehen Oder AVM fragen warum die immer nur von max. 400 Einträge sprechen...
Gruß,
Peter
Hallo colinardo,
schönes Script. Danke.
Ich würde gerne mit dem Script eine Portweiterleitung einrichten. Leider waren wir bisher nicht erfolgreich.
Ich kann bei der Fritzbox 6490 (Cable) alles auslesen, aber nichts schreiben.
Es kommt immer die FM "Invalid Args"
Was mache ich falsch?
PS:
Um das Script bequem mehrfach hintereinander aus der Powershell ISE ausführen zu können, habe ich die Funktion InitRequest() eingebaut und rufe sie vor jedem Kommando auf.
Gruß CAREOLINE
schönes Script. Danke.
Ich würde gerne mit dem Script eine Portweiterleitung einrichten. Leider waren wir bisher nicht erfolgreich.
Ich kann bei der Fritzbox 6490 (Cable) alles auslesen, aber nichts schreiben.
Es kommt immer die FM "Invalid Args"
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
Was mache ich falsch?
PS:
Um das Script bequem mehrfach hintereinander aus der Powershell ISE ausführen zu können, habe ich die Funktion InitRequest() eingebaut und rufe sie vor jedem Kommando auf.
# Request XML vorbereiten
function InitRequest(){
[xml]$script:request = @"
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Header>
<h:ClientAuth xmlns:h="http://soap-authentication.org/digest/2001/10/" s:mustUnderstand="1">
<Nonce></Nonce>
<Auth></Auth>
<UserID></UserID>
<Realm></Realm>
</h:ClientAuth>
</s:Header>
<s:Body>
</s:Body>
</s:Envelope>
"@
}
Gruß CAREOLINE
Hi,
gibt es das auch als bash script? Oder zumindest die Portfreigabe?
Ich hätte gerne ein Script das ich auf meiner NAS ausführen kann und einen Port öffnet bzw. wieder löscht. Habe leider nur das HIER gefunden aber das ist nur für einen reboot der Box und ich weiß nicht wie die Parameter angepasst werden müssten. Jemand eine Idee?
gibt es das auch als bash script? Oder zumindest die Portfreigabe?
Ich hätte gerne ein Script das ich auf meiner NAS ausführen kann und einen Port öffnet bzw. wieder löscht. Habe leider nur das HIER gefunden aber das ist nur für einen reboot der Box und ich weiß nicht wie die Parameter angepasst werden müssten. Jemand eine Idee?
Hi,
danke. Und die Parameter habe ich gesehen und ich habe mir auch die Doku von AVM angeguckt aber nie ist irgendwo mal ein kompletter Link zur Portfreigabe zu finden. Wie hänge ich denn die einzelnen Parameter an den Link? Ich habe das Script schonmal angepasst, aber irgendwo muss ich ja jetzt die Parameter inzufügen mit tüttelchen und so^^
danke. Und die Parameter habe ich gesehen und ich habe mir auch die Doku von AVM angeguckt aber nie ist irgendwo mal ein kompletter Link zur Portfreigabe zu finden. Wie hänge ich denn die einzelnen Parameter an den Link? Ich habe das Script schonmal angepasst, aber irgendwo muss ich ja jetzt die Parameter inzufügen mit tüttelchen und so^^
###=======###
# Variablen #
###=======###
IPS="192.168.178.1"
FRITZUSER=""
FRITZPW="geheim"
###====###
# Skript #
###====###
location="/upnp/control/wanpppconn1"
uri="dslforum-org:service:WANPPPConnection:1"
action='AddPortMapping'
for IP in ${IPS}; do
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" http://$IP:49000$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'></u:$action></s:Body></s:Envelope>" -s > /dev/null
done
Super danke, allerdings bekomme ich diese Fehlermeldung:
Dachte es liegt an dem von dir beschriebenen Problem mit den Portfreigaben aber die Fehlermeldung ist anders als die weiter oben und es funktioniert auch nach 10-15 mal nicht. Das Standard Script mit dem Reboot funktioniert, also der Zugang funktioniert auf jeden Fall.
Hier das komplette script:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>401</errorCode>
<errorDescription>Invalid Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
Dachte es liegt an dem von dir beschriebenen Problem mit den Portfreigaben aber die Fehlermeldung ist anders als die weiter oben und es funktioniert auch nach 10-15 mal nicht. Das Standard Script mit dem Reboot funktioniert, also der Zugang funktioniert auf jeden Fall.
Hier das komplette script:
###=======###
# Variablen #
###=======###
IPS="192.168.178.1"
FRITZUSER=""
FRITZPW="geheim"
###====###
# Skript #
###====###
location="/upnp/control/wanpppconn1"
uri="dslforum-org:service:WANPPPConnection:1"
action='AddPortMapping'
for IP in ${IPS}; do
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" http://$IP:49000$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'><NewRemoteHost>0.0.0.0</NewRemoteHost><NewLeaseDuration>0</NewLeaseDuration><NewEnabled>1</NewEnabled><NewInternalClient>192.168.178.100</NewInternalClient><NewExternalPort>54321</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>54321</NewInternalPort><NewPortMappingDescription>Testmapping</NewPortMappingDescription></u:$action></s:Body></s:Envelope>" -s
done
Hi,
kleiner Fehler in Zeile 134.
besser:
Ansonsten funktioniert das Script mit einer 7412 (1&1, FRITZ!OS 06.85) gut, Add-FBPortMapping funktioniert beim ersten Aufruf.
Gruß
Sam
kleiner Fehler in Zeile 134.
$resp = New-Request -urn 'urn:dslforum-org:service:WANPPPConnection:1' -action 'GetPortMappingNumberOfEntries'
[int]$cnt = $result.Envelope.Body.GetPortMappingNumberOfEntriesResponse.NewPortMappingNumberOfEntries
besser:
$result = New-Request -urn 'urn:dslforum-org:service:WANPPPConnection:1' -action 'GetPortMappingNumberOfEntries'
[int]$cnt = $result.Envelope.Body.GetPortMappingNumberOfEntriesResponse.NewPortMappingNumberOfEntries
Ansonsten funktioniert das Script mit einer 7412 (1&1, FRITZ!OS 06.85) gut, Add-FBPortMapping funktioniert beim ersten Aufruf.
Gruß
Sam
Moin
Ist ja schön das hier in den Kommentaren immer noch so viel Aktivität ist, und das der Autor noch aktiv antwortet. Danke mal für das grundsätzliche Skript.
Ich wollte mal versuchen das ganze ein wenig für meine Fälle zu erweitern, habe aber ein syntaktisches Problem bei einem AVM spezifischen Value aus dem URN.
Rufe ich die http://fritz.box:49000//hostsSCPD.xml für die URN urn:dslforum-org:service:Hosts:1 ab, so kann ich z.B. die action X_AVM-DE_GetMeshListPath abfragen.
Blöderweise motzt mir das Skript dann rum wenn ich folgenden Request absetzen will:
Schon der Syntax von
wird mir in der IDE nicht korrekt angezeigt und das Skript bringt auch prompt einen Fehler.
Syntaktisch ist der Bindestrich wahrscheinlich eher der Powershell zuzurechnen, weswegen auch der Fehler kommt, aber wie könnte ich das beheben? in der Funktion New-Request sehe ich dafür auf die schnelle keine Möglichkeit.
Wäre cool, wenn da jemand einen Tipp dazu hätte.
Grüße
Daimonion
Ist ja schön das hier in den Kommentaren immer noch so viel Aktivität ist, und das der Autor noch aktiv antwortet. Danke mal für das grundsätzliche Skript.
Ich wollte mal versuchen das ganze ein wenig für meine Fälle zu erweitern, habe aber ein syntaktisches Problem bei einem AVM spezifischen Value aus dem URN.
Rufe ich die http://fritz.box:49000//hostsSCPD.xml für die URN urn:dslforum-org:service:Hosts:1 ab, so kann ich z.B. die action X_AVM-DE_GetMeshListPath abfragen.
Blöderweise motzt mir das Skript dann rum wenn ich folgenden Request absetzen will:
function Get-FBLanMesh(){
$resp = New-Request -urn 'urn:dslforum-org:service:Hosts:1' -action 'X_AVM-DE_GetMeshListPath'
return $resp.Envelope.body.X_AVM-DE_GetMeshListPathResponse
}
Schon der Syntax von
return $resp.Envelope.body.X_AVM-DE_GetMeshListPathResponse
wird mir in der IDE nicht korrekt angezeigt und das Skript bringt auch prompt einen Fehler.
In D:\Skripte_Programmierung\FB_Powershellzugriff.ps1:209 Zeichen:37
+ return $resp.Envelope.body.X_AVM-DE_GetMeshListPathResponse
+ ~~~
Unerwartetes Token "-DE" in Ausdruck oder Anweisung.
In D:\Skripte_Programmierung\FB_Powershellzugriff.ps1:209 Zeichen:40
+ return $resp.Envelope.body.X_AVM-DE_GetMeshListPathResponse
+ ~~~~~~~~~~~~~~~~~~~~~~~~
Unerwartetes Token "_GetMeshListPathResponse" in Ausdruck oder Anweisung.
+ CategoryInfo : ParserError: (:) , ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Syntaktisch ist der Bindestrich wahrscheinlich eher der Powershell zuzurechnen, weswegen auch der Fehler kommt, aber wie könnte ich das beheben? in der Funktion New-Request sehe ich dafür auf die schnelle keine Möglichkeit.
Wäre cool, wenn da jemand einen Tipp dazu hätte.
Grüße
Daimonion
Hi,
hat sich für Linux auch etwas geändert? Ich habe mittlerweile eine 7590 und habe dieses Script:
Aber sowohl bei diesem als auch bei dem oberen bei dem das Script auf eine seperate xml Datei zugreift kommt immer diese Fehlermeldung:
Hast du da eine Idee? Auch den Befehl 10-15 mal auszuführen ändert nichts.
hat sich für Linux auch etwas geändert? Ich habe mittlerweile eine 7590 und habe dieses Script:
IP="192.168.178.1"
FRITZUSER="admin"
FRITZPW="geheim"
location="/upnp/control/wanpppconn1"
uri="urn:dslforum-org:service:WANPPPConnection:1"
action='AddPortMapping'
SoapParamString="<NewRemoteHost>0.0.0.0</NewRemoteHost>
<NewExternalPort>54321</NewExternalPort>
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>54321</NewInternalPort>
<NewInternalClient>192.168.178.100</NewInternalClient>
<NewEnabled>1</NewEnabled>
<NewPortMappingDescription>HTTP-Server</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration>"
curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" https://$IP:49443$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'>$SoapParamString</u:$action></s:Body></s:Envelope>" -s
Aber sowohl bei diesem als auch bei dem oberen bei dem das Script auf eine seperate xml Datei zugreift kommt immer diese Fehlermeldung:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
Hast du da eine Idee? Auch den Befehl 10-15 mal auszuführen ändert nichts.
Du hast vermutlich als Kind auch das eckige ins runde mit Gewalt stecken wollen?
Es erschließt sich mir der Sinn nicht wie das was helfen soll, mit "Gewalt" über ein Dutzend mal zu probieren, wenn die Fehlermeldung sich nicht ändert.
Wenn man nach upnp error 402 fritzbox googelt, bekommt man z.B. das und andere, die einem der Lösung näherbringen könnten.
lks
Hallo Uwe,
ich habe nochmal alles kontrolliert und mit Powershell getestet. Damit hat es zuerst auch nicht funktioniert. Allerdings ist die Box jetzt auch über den WAN Anschluss angeschlossen und nicht wie vorher über Port1. Mit WANIP hat es dann mit deinem Script funktioniert.
Unter Linux zuerst leider immer noch nicht bis ich es ein paar mal öfter ausgeführt habe und siehe da, manchmal muss das eckige in das runde halt mit Gewalt gesteckt werden.
Was mir beim testen aufgefallen ist: Wenn man die Portfreigabe über das Script hinzufügt und über die Weboberfläche entfernt muss man das Script beim nächsten Test immer ein weiteres mal als zuvor ausführen. Sehr kurioses Verhalten wie ich finde.^^ Nach einem Box neustart und dem hinzufügen sowie löschen über das script funktioniert aber alles beim ersten mal.
Also vielen Dank für die Hilfe
ich habe nochmal alles kontrolliert und mit Powershell getestet. Damit hat es zuerst auch nicht funktioniert. Allerdings ist die Box jetzt auch über den WAN Anschluss angeschlossen und nicht wie vorher über Port1. Mit WANIP hat es dann mit deinem Script funktioniert.
Unter Linux zuerst leider immer noch nicht bis ich es ein paar mal öfter ausgeführt habe und siehe da, manchmal muss das eckige in das runde halt mit Gewalt gesteckt werden.
Was mir beim testen aufgefallen ist: Wenn man die Portfreigabe über das Script hinzufügt und über die Weboberfläche entfernt muss man das Script beim nächsten Test immer ein weiteres mal als zuvor ausführen. Sehr kurioses Verhalten wie ich finde.^^ Nach einem Box neustart und dem hinzufügen sowie löschen über das script funktioniert aber alles beim ersten mal.
Also vielen Dank für die Hilfe
Hallo,
ich möchte die Dial-FBNumber nutzen. Gibt es eine Möglichkeit per Befehl ein Telefon auszuwählen, von welchem die gewünschte Rufnummer gewählt wird?
Ich programmiere gerade eine Datenbank aus der ich heraus Rufnummern wählen möchte. Da aber jeder User sein eigenes Telefon hat, würde ich gerne per Befehl festlegen von welchem Telefon angerufen wird. Oder ist es möglich das rufende Telefon innerhalb des Scriptes festzulegen? Man könnte dann für jeden User ein eigenes Script ablegen.
Vielen Dank schon einmal im voraus.
Gruß
Dieterlem
ich möchte die Dial-FBNumber nutzen. Gibt es eine Möglichkeit per Befehl ein Telefon auszuwählen, von welchem die gewünschte Rufnummer gewählt wird?
Ich programmiere gerade eine Datenbank aus der ich heraus Rufnummern wählen möchte. Da aber jeder User sein eigenes Telefon hat, würde ich gerne per Befehl festlegen von welchem Telefon angerufen wird. Oder ist es möglich das rufende Telefon innerhalb des Scriptes festzulegen? Man könnte dann für jeden User ein eigenes Script ablegen.
Vielen Dank schon einmal im voraus.
Gruß
Dieterlem
Hallo colinardo,
ich nutze deinen Skript um das Adressbuch auszulesen und auch neue Einträge zu erstellen.
Zunächst einmal Respekt für deine tolle Arbeit, das hat mir sehr weitergeholfen!
Nun habe ich allerdings ein kleines Problem:
Wenn ich neue Kontakte mit deutschen Umlauten anlegen will, werden die Umlaute im Fritz-Adressbuch nicht richtig dargestellt (z.B. Ã? bei ß usw.), also das encoden funktioniert dort nicht richtig.
Mein Skript sieht folgendermaßen aus (ich stringe mehr oder weniger nur das xml-Konstrukt zusammen, kann man ja schon in der ersten Zeile ganz gut erkennen) - hier habe ich die eigentliche Variable mal durch einen Klartext ersetzt:
Im letzten Teil rufe ich dann eben mit den zuvor definierten Parametern deine Funktion New-Request auf. Bis dahin werden die Umlaute im String noch korrekt dargestellt. Die Funktion wird auch ohne Fehler aufgerufen, aber wie oben beschrieben werden die Umlaute dann falsch kodiert im Fritz-Adressbuch dargestellt.
Hast du eine Ahnung wie man das korrekt stellen könnte (ich dachte an das charset im XML, aber ehrlich gesagt keine Ahnung wie dort was zusammenläuft)?
ich nutze deinen Skript um das Adressbuch auszulesen und auch neue Einträge zu erstellen.
Zunächst einmal Respekt für deine tolle Arbeit, das hat mir sehr weitergeholfen!
Nun habe ich allerdings ein kleines Problem:
Wenn ich neue Kontakte mit deutschen Umlauten anlegen will, werden die Umlaute im Fritz-Adressbuch nicht richtig dargestellt (z.B. Ã? bei ß usw.), also das encoden funktioniert dort nicht richtig.
Mein Skript sieht folgendermaßen aus (ich stringe mehr oder weniger nur das xml-Konstrukt zusammen, kann man ja schon in der ersten Zeile ganz gut erkennen) - hier habe ich die eigentliche Variable mal durch einen Klartext ersetzt:
$ContactData = '<contact><category>0</category><person><realName>'+ "Groß" +'</realName></person><telephony nid="' + $AnzahlNR + '">'
for($i=1;$i -le $AnzahlNR;$i++)
{
if($newContact.('Typ'+$i) -eq "Privat") {$newContact.('Typ'+$i) = "home"}
if($newContact.('Typ'+$i) -eq "Mobil") {$newContact.('Typ'+$i) = "mobile"}
if($newContact.('Typ'+$i) -eq "Geschäftlich") {$newContact.('Typ'+$i) = "work"}
if($newContact.('Typ'+$i) -eq "Fax") {$newContact.('Typ'+$i) = "fax_work"}
$ContactData = $ContactData + '<number type="' + $newContact.('Typ'+$i) + '" prio="0" id="' + ($i-1) + '">' + $newContact.('Nummer'+$i) + '</number>'
}
$ContactData = $ContactData + '</telephony></contact>'
$parameter = [ordered] @{
NewPhonebookID = 0
#NewPhonebookEntryID = 0
NewPhonebookEntryData = $ContactData}
New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_OnTel:1' -action 'SetPhonebookEntryUID' -parameter $parameter
Im letzten Teil rufe ich dann eben mit den zuvor definierten Parametern deine Funktion New-Request auf. Bis dahin werden die Umlaute im String noch korrekt dargestellt. Die Funktion wird auch ohne Fehler aufgerufen, aber wie oben beschrieben werden die Umlaute dann falsch kodiert im Fritz-Adressbuch dargestellt.
Hast du eine Ahnung wie man das korrekt stellen könnte (ich dachte an das charset im XML, aber ehrlich gesagt keine Ahnung wie dort was zusammenläuft)?
Hi Uwe,
genial, vielen Dank! Es hat funktioniert.
Komischerweise hatte ich auch mal versucht, utf-8 und einen XML-Header dem Request hinzuzufügen, damals hat es aber aus welchen Gründen auch immer dann nicht funktioniert (wahrscheinlich falscher Syntax meinerseits).
Wie auch immer, jetzt funktioniert alles wie es soll, vielen Dank!
Grüße
genial, vielen Dank! Es hat funktioniert.
Komischerweise hatte ich auch mal versucht, utf-8 und einen XML-Header dem Request hinzuzufügen, damals hat es aber aus welchen Gründen auch immer dann nicht funktioniert (wahrscheinlich falscher Syntax meinerseits).
Wie auch immer, jetzt funktioniert alles wie es soll, vielen Dank!
Grüße
Hallo @colinardo, du bist ja mal krass schnell unterwegs Hab es eben getestet und es funktioniert super! Vielen DANK! Ich bin begeistert
Hallo Zusammen,
bin auf diesen exzellenten Post gestoßen, da ich in England versuche meine Fritz Box 7590 an das UK SKY Broadband anzuschließen.
Ich muss meine 7590 Box in England auf Sky BSkyB VDSL2 Broadband einstellen. Sky verwendet das Protokoll MER/DHCP 61.
Dank TR-064 bin ich schon auf der Box und konnte u.A. LinkType .
Allerdings fehlen mir die relevanten Einträge unter: urn:dslforum-org:service:WANDSLInterfaceConfig:1.
In der 7590 Box unter ../wandsllinkconfigSCPD.xml laesst es nicht den Wert "IPoA" oder "CIP" zu, as per Kopie unten.
<name>LinkType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>EoA</allowedValue>
<allowedValue>PPPoA</allowedValue>
<allowedValue>PPPoE</allowedValue>
<allowedValue>Unconfigured</allowedValue>
</allowedValueList>
Kurze Frage, wie bekomme ich die "wandsllinkconfigSCPD.xml" geaendert (re-importiert), so dass ich wie folgt die Werte definiere:
Modulation Type existiert gar nicht in der AVM "wandsllinkconfigSCPD.xml" Datei
As per Standard "UPnP-gw-WANDSLLinkConfig-v1-Service.pdf"
Mein Abänderung-Wunsch:
<stateVariable sendEvents="no">
<name>LinkType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>EoA</allowedValue>
<allowedValue>IPoA</allowedValue>
<allowedValue>PPPoA</allowedValue>
<allowedValue>PPPoE</allowedValue>
<allowedValue>CIP</allowedValue>
<allowedValue>Unconfigured</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>ModulationType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>ADSL_G.dmt</allowedValue>
<allowedValue>ADSL_G.lite</allowedValue>
<allowedValue>G.shdsl</allowedValue>
<allowedValue>IDSL</allowedValue>
<allowedValue>HDSL</allowedValue>
<allowedValue>SDSL</allowedValue>
<allowedValue>VDSL</allowedValue>
</allowedValueList>
</stateVariable>
PS: Ich weiß allerdings nicht, ob ich zusätzlich auch noch per TR-069 den SKY ISP DHCP Option 60/61 konfigurieren muss.
Alles Gute aus England erstmal.
bin auf diesen exzellenten Post gestoßen, da ich in England versuche meine Fritz Box 7590 an das UK SKY Broadband anzuschließen.
Ich muss meine 7590 Box in England auf Sky BSkyB VDSL2 Broadband einstellen. Sky verwendet das Protokoll MER/DHCP 61.
Dank TR-064 bin ich schon auf der Box und konnte u.A. LinkType .
Allerdings fehlen mir die relevanten Einträge unter: urn:dslforum-org:service:WANDSLInterfaceConfig:1.
In der 7590 Box unter ../wandsllinkconfigSCPD.xml laesst es nicht den Wert "IPoA" oder "CIP" zu, as per Kopie unten.
<name>LinkType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>EoA</allowedValue>
<allowedValue>PPPoA</allowedValue>
<allowedValue>PPPoE</allowedValue>
<allowedValue>Unconfigured</allowedValue>
</allowedValueList>
Kurze Frage, wie bekomme ich die "wandsllinkconfigSCPD.xml" geaendert (re-importiert), so dass ich wie folgt die Werte definiere:
Modulation Type existiert gar nicht in der AVM "wandsllinkconfigSCPD.xml" Datei
As per Standard "UPnP-gw-WANDSLLinkConfig-v1-Service.pdf"
Mein Abänderung-Wunsch:
<stateVariable sendEvents="no">
<name>LinkType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>EoA</allowedValue>
<allowedValue>IPoA</allowedValue>
<allowedValue>PPPoA</allowedValue>
<allowedValue>PPPoE</allowedValue>
<allowedValue>CIP</allowedValue>
<allowedValue>Unconfigured</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>ModulationType</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>ADSL_G.dmt</allowedValue>
<allowedValue>ADSL_G.lite</allowedValue>
<allowedValue>G.shdsl</allowedValue>
<allowedValue>IDSL</allowedValue>
<allowedValue>HDSL</allowedValue>
<allowedValue>SDSL</allowedValue>
<allowedValue>VDSL</allowedValue>
</allowedValueList>
</stateVariable>
PS: Ich weiß allerdings nicht, ob ich zusätzlich auch noch per TR-069 den SKY ISP DHCP Option 60/61 konfigurieren muss.
Alles Gute aus England erstmal.
Auch ich bin total begeistert von der Arbeit von colinardo! Seit einem Jahr suche ich nach einem Code als Wahlhilfe in der FB. Eigentlich bin ich mehr in .Net unterwegs (da gibt es leider noch nichts zu dem Problem). Aber die PowerShell wird's auch richten können. Das Script funktioniert auf Anhieb, auch auf unserer 7270, die nur zum Telefonieren über die Telekom (unser "altes" ISDN) genutzt wird. Eine zweite Leitung mit 100er DSL haben wir bei der Thüringer Netcom über eine 7590.
Ich benötige im Script nur die Wahlhilfe. Damit ist es möglich, mit Doppelklick auf eine Telefonnummer in der Patientenakte sofort einen Anruf zu tätigen. Problem ist jetzt nur noch folgendes:
Hinter der 7270 (wird in Kürze durch eine 7590 ersetzt) hängt über S0 eine TK ELMEG ICT 880 mit vielen Telefonen und zwei Faxgeräten. Wenn das Script gewählt hat, tut sich erstmal weit und breit nix. Erst wenn der Angerufene abhebt, klingelt eins unserer Telefone. Gibt es eine Funktion, die es ermöglicht, schon vorher auf die Leitung zu kommen, so dass man das Anwählen (Rufton) schon mitbekommen kann?
Viele Grüße
Norbert
Ich benötige im Script nur die Wahlhilfe. Damit ist es möglich, mit Doppelklick auf eine Telefonnummer in der Patientenakte sofort einen Anruf zu tätigen. Problem ist jetzt nur noch folgendes:
Hinter der 7270 (wird in Kürze durch eine 7590 ersetzt) hängt über S0 eine TK ELMEG ICT 880 mit vielen Telefonen und zwei Faxgeräten. Wenn das Script gewählt hat, tut sich erstmal weit und breit nix. Erst wenn der Angerufene abhebt, klingelt eins unserer Telefone. Gibt es eine Funktion, die es ermöglicht, schon vorher auf die Leitung zu kommen, so dass man das Anwählen (Rufton) schon mitbekommen kann?
Viele Grüße
Norbert
wenn das Telefon direkt an der FB hängt oder damit verbunden ist (DECT/TAE/IP).
Schade, dann wird es wohl nichts. Ich könnte ein analoges Telefon am Tresen nur für das Calling einrichten, brauche es im Schaltschrank nur umzustecken auf FON1 der FB. Aber dann ist es als Teilnehmer in der TK verloren (Gespräche von draussen könnte es zwar entgegennehmen, aber Weiterverbinden ist dann unmöglich). Gibts auch kein Event? Ich habe unseren CallMonitor in Vb.net programmiert. Da fange ich RING, CALL, CONNECT und DISCONNECT ab (TCP Client). Mehr aber auch nicht. Anrufen kann ich von diesem Teil nicht. Und wahrscheinlich auch nicht die Leitung überwachen.
Von der TK gehen 8 analoge und 8 ISDN ins gesamte Gebäude. Ist seit 30 Jahren so. Muss mal drüber schlafen, ob ich da mit einer Weiche was abbeissen kann. Kann man wenigstens mit einer Funktion abfragen, ob der gerufene Teilnehmer besetzt ist? Das würde schon eine erhebliche Erleichterung bedeuten, denn man müsste auf Verdacht nicht ellenlang warten, ob das Telefon klingelt oder nicht.
@colinardo: Es ist höchst bewundernswert und ich habe die größte Hochachtung davor, dass Du nach all den Jahren noch immer da bist für Hilfe und Unterstützung! Ich danke Dir ganz herzlich.
Viele Grüße
Norbert
Schade, dann wird es wohl nichts. Ich könnte ein analoges Telefon am Tresen nur für das Calling einrichten, brauche es im Schaltschrank nur umzustecken auf FON1 der FB. Aber dann ist es als Teilnehmer in der TK verloren (Gespräche von draussen könnte es zwar entgegennehmen, aber Weiterverbinden ist dann unmöglich). Gibts auch kein Event? Ich habe unseren CallMonitor in Vb.net programmiert. Da fange ich RING, CALL, CONNECT und DISCONNECT ab (TCP Client). Mehr aber auch nicht. Anrufen kann ich von diesem Teil nicht. Und wahrscheinlich auch nicht die Leitung überwachen.
Von der TK gehen 8 analoge und 8 ISDN ins gesamte Gebäude. Ist seit 30 Jahren so. Muss mal drüber schlafen, ob ich da mit einer Weiche was abbeissen kann. Kann man wenigstens mit einer Funktion abfragen, ob der gerufene Teilnehmer besetzt ist? Das würde schon eine erhebliche Erleichterung bedeuten, denn man müsste auf Verdacht nicht ellenlang warten, ob das Telefon klingelt oder nicht.
@colinardo: Es ist höchst bewundernswert und ich habe die größte Hochachtung davor, dass Du nach all den Jahren noch immer da bist für Hilfe und Unterstützung! Ich danke Dir ganz herzlich.
Viele Grüße
Norbert
Um TAPI hab ich bis jetzt immer einen großen Bogen gemacht. Stand auf der ellenlangen Liste ganz hinten. Meine ELMEG (s.o.) ist eigentlich eine gute und nicht billige Anlage. Und ich glaube, es gibt auch einen TAPI-Treiber dazu. Mehr weiss ich aber darüber nicht. Heute will ich erstmal den Monitor und den Caller fertigbekommen (ini-Dateien und Parameterübergabe). Dank Deinem Code bin ich dabei schon fast am Ziel.
Schöne Grüße
Norbert
Schöne Grüße
Norbert
Hallo zusammen,
erstmal vielen Dank für dein tolles Skript colinardo!
War wirklich froh als ich darauf gestoßen bin, als ich nach einer Möglichkeit gesucht habe eine Portfreigabe in meiner Fritzbox einzurichten, ohne mich an der Oberfläche der Fritzbox anmelden zu müssen.
Leider ist das genau die eine Aktion des Skriptes, die einfach nicht funktionieren möchte.
Ich erhalte leider immer die folgende Fehlermeldung:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In C:\temp\FritzboxRemote.ps1:51 Zeichen:13
throw ([System.IO.StreamReader]($_.Exception.InnerExcepti ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : OperationStopped: (<?xml version="...>
</s:Envelope>:String) , RuntimeException
FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Ich habe eine Fritzbox 7530 mit der OS-Version 07.27.
Die Option “Zugriff für Anwendungen zulassen” ist aktiviert.
Für die Anmeldung über das Skript an der Fritzbox habe ich einen separaten Benutzer mit den Berechtigungen “Fritz!BoxEinstellungen”, “Sprachnachrichten...” und “Smart Home” angelegt.
Der Rechner von welchem ich das Skript ausführe ist auch im selben Netzwerk und ich versuche auch nur für den Rechner eine Freigabe einzurichten, von dem ich auch das Skript ausführe.
Folgende Daten habe ich an das Skript übergeben:
ExternalPort: 8088
Protocol: TCP
InternalClient: 192.168.160.9
InternalPort: 8088
Description: Test
Ich habe auch schon versucht den AVM-Support zu kontaktieren, aber deren Antworten waren leider nur bedingt bis gar nicht zu gebrauchen.
1. Antwort:
..."Leider klappt hier die Erstellung von Portfreigaben per Powershell-Skript nicht und wird mit entsprechenden Fehlermeldungen quittiert.
Diese Vorgehensweise wird von der FRITZ!Box nicht unterstützt.
Weshalb das so ist, entzieht sich allerdings meiner Kenntnis.
https://avm.de/service/fritzbox/fritzbox-7530/wissensdatenbank/publicati ...;
...
Damit wollte ich mich nicht zufrieden geben und habe nochmal nachgehakt und dann kam die 2. Antwort:
..."Informationen zu FRITZ!Box-Schnittstellen und -Protokollen, die Sie für die Realisierung eigener Entwicklungs-Projekte benötigen, finden Sie auf unserer Internetseite für Entwicklungssupport (https://avm.de/service/schnittstellen/).
Ihre Hinweise zu der dort bereitgestellten Dokumentation nehmen wir gerne per E-Mail unter entwicklungssupport@avm.de entgegen.
Ich hoffe, Ihnen damit weitergeholfen zu haben"...
Und aufgrund dieser Antworten bin ich leider noch nicht wirklich einen Schritt weitergekommen.
Vielleicht hat hier jemand eine Idee, woran es liegen könnte oder weiß sogar was genau das Problem ist. Bin für jeden Rat dankbar!
Viele Grüße
Dennis
erstmal vielen Dank für dein tolles Skript colinardo!
War wirklich froh als ich darauf gestoßen bin, als ich nach einer Möglichkeit gesucht habe eine Portfreigabe in meiner Fritzbox einzurichten, ohne mich an der Oberfläche der Fritzbox anmelden zu müssen.
Leider ist das genau die eine Aktion des Skriptes, die einfach nicht funktionieren möchte.
Ich erhalte leider immer die folgende Fehlermeldung:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In C:\temp\FritzboxRemote.ps1:51 Zeichen:13
throw ([System.IO.StreamReader]($_.Exception.InnerExcepti ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : OperationStopped: (<?xml version="...>
</s:Envelope>:String) , RuntimeException
FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Ich habe eine Fritzbox 7530 mit der OS-Version 07.27.
Die Option “Zugriff für Anwendungen zulassen” ist aktiviert.
Für die Anmeldung über das Skript an der Fritzbox habe ich einen separaten Benutzer mit den Berechtigungen “Fritz!BoxEinstellungen”, “Sprachnachrichten...” und “Smart Home” angelegt.
Der Rechner von welchem ich das Skript ausführe ist auch im selben Netzwerk und ich versuche auch nur für den Rechner eine Freigabe einzurichten, von dem ich auch das Skript ausführe.
Folgende Daten habe ich an das Skript übergeben:
ExternalPort: 8088
Protocol: TCP
InternalClient: 192.168.160.9
InternalPort: 8088
Description: Test
Ich habe auch schon versucht den AVM-Support zu kontaktieren, aber deren Antworten waren leider nur bedingt bis gar nicht zu gebrauchen.
1. Antwort:
..."Leider klappt hier die Erstellung von Portfreigaben per Powershell-Skript nicht und wird mit entsprechenden Fehlermeldungen quittiert.
Diese Vorgehensweise wird von der FRITZ!Box nicht unterstützt.
Weshalb das so ist, entzieht sich allerdings meiner Kenntnis.
https://avm.de/service/fritzbox/fritzbox-7530/wissensdatenbank/publicati ...;
...
Damit wollte ich mich nicht zufrieden geben und habe nochmal nachgehakt und dann kam die 2. Antwort:
..."Informationen zu FRITZ!Box-Schnittstellen und -Protokollen, die Sie für die Realisierung eigener Entwicklungs-Projekte benötigen, finden Sie auf unserer Internetseite für Entwicklungssupport (https://avm.de/service/schnittstellen/).
Ihre Hinweise zu der dort bereitgestellten Dokumentation nehmen wir gerne per E-Mail unter entwicklungssupport@avm.de entgegen.
Ich hoffe, Ihnen damit weitergeholfen zu haben"...
Und aufgrund dieser Antworten bin ich leider noch nicht wirklich einen Schritt weitergekommen.
Vielleicht hat hier jemand eine Idee, woran es liegen könnte oder weiß sogar was genau das Problem ist. Bin für jeden Rat dankbar!
Viele Grüße
Dennis
Hi Uwe,
danke dir für deine schnelle Rückmeldung!
Tja, so einfach kann es manchmal sein ! Das Abschalten der 2-Faktor-Bestätigung war scheinbar der ausschlaggebende Tipp!
Danach konnte ich die Freigabe per Skript erstellen. Zwar hatte ich auch zwischendurch das Problem, dass ich einen Befehl mehrmals absenden musste, damit die Freigabe angelegt wird, aber immerhin hat es überhaupt mal funktioniert.
Gefühlt hat es besser funktioniert, wenn ich eine Freigabe erstellt hatte und dann immer wieder den gleichen Request abgesetzt habe, eben dann nur mit dem Flag Enabled auf true oder false. Wollte das Skript nämlich eigentlich für eine Automatisierung nutzen und wenn man sich nicht darauf verlassen kann, dass die Fritzbox die Freigabe annimmt, ist das leider schon etwas ungünstig.
Vielen Dank für deine Hilfe!
Viele Grüße
Dennis
danke dir für deine schnelle Rückmeldung!
Tja, so einfach kann es manchmal sein ! Das Abschalten der 2-Faktor-Bestätigung war scheinbar der ausschlaggebende Tipp!
Danach konnte ich die Freigabe per Skript erstellen. Zwar hatte ich auch zwischendurch das Problem, dass ich einen Befehl mehrmals absenden musste, damit die Freigabe angelegt wird, aber immerhin hat es überhaupt mal funktioniert.
Gefühlt hat es besser funktioniert, wenn ich eine Freigabe erstellt hatte und dann immer wieder den gleichen Request abgesetzt habe, eben dann nur mit dem Flag Enabled auf true oder false. Wollte das Skript nämlich eigentlich für eine Automatisierung nutzen und wenn man sich nicht darauf verlassen kann, dass die Fritzbox die Freigabe annimmt, ist das leider schon etwas ungünstig.
Vielen Dank für deine Hilfe!
Viele Grüße
Dennis
Hey colinardo,
auch ich schließe mich den Kollegen von oben an und bekunde meinen aufrichtigsten Respekt für deine Arbeit.
Skript kopiert und funktioniert auf Anhieb.
Ich habe allerdings keine Frage, sondern eher eine neue Funktion für dich zum Einbauen:
Sicherlich kannst du dieses auch für deine Funktionssammlung nutzen, verbessern und einbauen, wenn du es möchtest. Evtl. folgt noch bei Zeiten eine Funktion Update-FBPhoneBookEntry.
Ein Frage habe ich aber trotzdem noch:
Erwägst du evtl. irgendwann dieses Skript als Modul auf GitHub hochzuladen und via PowerShell-Gallery verfügbar zu machen?
Vielen Dank und schöne Grüße
auch ich schließe mich den Kollegen von oben an und bekunde meinen aufrichtigsten Respekt für deine Arbeit.
Skript kopiert und funktioniert auf Anhieb.
Ich habe allerdings keine Frage, sondern eher eine neue Funktion für dich zum Einbauen:
# Telefonbucheinträge abrufen
function Get-FBPhoneBookList(){
param(
[int]$maxentries = 999,
[int]$days = 999,
[Parameter(mandatory=$false)][ValidateNotNullOrEmpty()]$phonebookname = "Telefonbuch"
)
# Telefonbücher auslesen Id, Name
$phonebooks = (New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_OnTel:1' -action 'GetPhonebookList').Envelope.Body.GetPhonebookListResponse.NewPhonebookList.split(",") | select @{n='Id';e={$_}},@{n='Name';e={(New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_OnTel:1' -action 'GetPhonebook' -parameter @{NewPhonebookID = $_}).Envelope.Body.GetPhonebookResponse.NewPhonebookName}}
# id des gewünschten Telefonbuchs ermitteln
$pbid = $phonebooks | ?{$_.Name -eq $phonebookname} | select -Expand Id
# wenn Telefonbuch mit dem Namen nicht gefunden wurde werfe Fehler und verlasse Funktion
if($pbid.Count -eq 0){
Write-Error -Message "Das Telefonbuch mit dem Namen '$phonebookname' existiert nicht!" -Category InvalidArgument
return
}
$resp = New-Request -urn 'urn:dslforum-org:service:X_AVM-DE_OnTel:1' -action 'GetPhoneBook' -parameter ([ordered]@{NewPhoneBookID = $pbid})
$wc = new-object System.Net.WebClient
$wc.Encoding = [System.Text.Encoding]::UTF8
$list = ([xml]$wc.DownloadString("$($resp.Envelope.Body.GetPhonebookResponse.NewPhonebookURL)&max=$maxentries&days=$days")).phonebooks.phonebook.contact
$Phonebooklist = @()
foreach($entry in $list){
$name = $entry.person.realName
$uid = $entry.uniqueid
$cat = $entry.category # 1 (wichtige Person (Anrufe von diesen Rufnummern klingeln auch bei aktiver Klingelsperre))
foreach($number in $entry.telephony.number){
$type = $number.type
$qDial = $number.quickdial
$vanity = $number.vanity
$prio = $number.prio
$text = $number."#text"
$a = New-Object -TypeName PSObject
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Name' -Value $name
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'ID' -Value $uid
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Caterory' -Value $cat
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Type' -Value $type
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Quickdial' -Value $qDial
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Vanity' -Value $vanity
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Priority' -Value $prio
Add-Member -InputObject $a -MemberType 'NoteProperty' -Name 'Text' -Value $text
$Phonebooklist += $a
}
}
return $Phonebooklist
}
Sicherlich kannst du dieses auch für deine Funktionssammlung nutzen, verbessern und einbauen, wenn du es möchtest. Evtl. folgt noch bei Zeiten eine Funktion Update-FBPhoneBookEntry.
Ein Frage habe ich aber trotzdem noch:
Erwägst du evtl. irgendwann dieses Skript als Modul auf GitHub hochzuladen und via PowerShell-Gallery verfügbar zu machen?
Vielen Dank und schöne Grüße
Ich komme gerade mit einem Problem nicht weiter. Ab und an öffne ich mit dem Script einen Port auf der FritzBox (Add-FBPortmapping -ExternalPort 80 -InternalClient '192.168.100.100' -InternalPort 8080 -Protocol TCP -Description 'Server'), was einwandfrei funktioniert. Der Versuch den Port wieder zu schließen (Delete-FBPortMapping -ExternalPort 80 -InternalClient '192.168.100.100' -InternalPort 8080 -Protocol TCP -Description 'Server'), endet jedoch mit folgender Fehlermeldung .
Der geöffnete Port sieht aus, wie auf dem Screenshot.
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>714</errorCode>
<errorDescription>NoSuchEntryInArray</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In C:\System\LE\ClosePort.ps1:54 Zeichen:13
+ throw ([System.IO.StreamReader]($_.Exception.InnerExcepti ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (<?xml version="...>
</s:Envelope>:String) , RuntimeException
+ FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/
encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>714</errorCode>
<errorDescription>NoSuchEntryInArray</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Der geöffnete Port sieht aus, wie auf dem Screenshot.
Für meinen Zweck habe ich jetzt den Workaround gefunden, die bestehende Freigabe mit Add-FBPortmapping zu Enablen bzw. zu Disablen. Das funktioniert zum Glück noch. Mit der TR-064 Schnittstelle gab es meines Wissens ja schon öfters Probleme nach neue Fritz!OS Versionen. Schade, dass hier offenbar das Testing bei AVM nicht so recht greift...
Zitat von @colinardo:
habe dir gerade eine neue Funktion dafür zum Skript oben hinzugefügt. Sie lautet Update-FBPhonebook. Diese rufst du mit dem Namen des Telefonbuches als Parameter bspw. so auf
Die Funktion triggert die Aktualisierung per AVM Default für alle hinzugefügten Online-Telefonbücher. Der Parameter mit den Namen des Telefonbuches bestimmt hier vornehmlich auf welchen Sync-Abschluss die Funktion hier warten soll. Die Funktion fragt dazu periodisch den Status der Synchronisierung des jeweiligen Telefonbuches ab und bei Erfolg liefert es alle Status-Variablen des Telefonbuchs inkl. Datum der letzten Aktualisierung zurück. Ohne den Parameter -wait wartet die Funktion nicht auf den Abschluss der Synchronisierung.
Hier eine Beispielausgabe der Funktion:
Viel Spaß damit
Grüße Uwe
Zitat von @Marco8383:
Gibt es irgendeine Möglichkeit ein "Online Telefonbuch" automatisch zu aktualisieren. Also zum Beispiel einmal in der Stunde? Im Moment wird das ja nur über Nacht einmal aktualisiert...
Hallo @Marco8383,Gibt es irgendeine Möglichkeit ein "Online Telefonbuch" automatisch zu aktualisieren. Also zum Beispiel einmal in der Stunde? Im Moment wird das ja nur über Nacht einmal aktualisiert...
habe dir gerade eine neue Funktion dafür zum Skript oben hinzugefügt. Sie lautet Update-FBPhonebook. Diese rufst du mit dem Namen des Telefonbuches als Parameter bspw. so auf
> Update-FBPhonebook -name "MeinOnlineTelefonbuch" -wait
>
Hier eine Beispielausgabe der Funktion:
Viel Spaß damit
Grüße Uwe
Hallo @colinardo,
ich habe mit dem Script bzw. der Funktion "Update-FBPhonebook" seit dem Update auf die Version 7.28 (FritzBox 6660 Cable) Probleme. Das Script läuft zwar ganz normal durch (ohne Fehlermeldung). Das hier ist das Ergebnis:
Update in progress please wait ...
Update in progress please wait ...
u : urn:dslforum-org:service:X_AVM-DE_OnTel:1
NewEnable : 1
NewStatus : 0
NewLastConnect : 2021-10-07T11:48:14+02:00
NewUrl : https://www.google.com/accounts/ClientLogin
NewServiceId : cp
NewUsername :
NewName : Google
Das Problem ist, wenn ich ein Gespräche führe und das Script am Ende ist, bricht die Telefonverbindung ab. Hab das jetzt ein paar mal getestet.
Hast du eine Idee an was das liegt?
Servus @Marco8383 .
Das Skript benutzt nur die regulär verfügbaren TR-064 Funktionen der Box nicht mehr und nicht weniger.
Ich würde aber trotzdem empfehlen das Update nicht durchzuführen wenn User aktiv sind, denn das Skript deaktiviert und aktiviert das Telefonbuch temporär ganz schnell hintereinander, um das Update des Telefonbuchs mit der Remote-Quelle auf der Box zu triggern und das könnte durchaus dazu führen das die Box hier allergisch drauf reagiert wenn gerade ein Gespräch läuft. Eine native Funktion zum Updaten der CardDAV Telefonbücher gibt es nämlich noch nicht im TR-064 Protokoll der Box. Diese Funktion wurde also aktuell als Workaround implementiert der es überhaupt ermöglicht dies automatisiert zu tun.
Grüße Uwe
Das Problem ist, wenn ich ein Gespräche führe und das Script am Ende ist, bricht die Telefonverbindung ab. Hab das jetzt ein paar mal getestet.
Hast du eine Idee an was das liegt?
Deshalb hat AVM den per Default vorhandenen Update-Task wohl auch immer in die sehr späte Nacht gelegt. Das liegt wohl aber eher an der Implementierung von AVM beim Update des Telefonbuchs an sich. Benutzt du ein Fritz!Fon? Wenn ja wird das wohl deswegen während des Gesprächs versuchen ein Update des telefoneignen Telefonbuchs durchzuführen was dann zu einer Überlastung und Abbruch des laufenden Gesprächs führt.Hast du eine Idee an was das liegt?
Das Skript benutzt nur die regulär verfügbaren TR-064 Funktionen der Box nicht mehr und nicht weniger.
Ich würde aber trotzdem empfehlen das Update nicht durchzuführen wenn User aktiv sind, denn das Skript deaktiviert und aktiviert das Telefonbuch temporär ganz schnell hintereinander, um das Update des Telefonbuchs mit der Remote-Quelle auf der Box zu triggern und das könnte durchaus dazu führen das die Box hier allergisch drauf reagiert wenn gerade ein Gespräch läuft. Eine native Funktion zum Updaten der CardDAV Telefonbücher gibt es nämlich noch nicht im TR-064 Protokoll der Box. Diese Funktion wurde also aktuell als Workaround implementiert der es überhaupt ermöglicht dies automatisiert zu tun.
Grüße Uwe
Hallo @colinardo,
danke für die schnelle Antwort. Das hört sich so an als könnte man da nicht viel machen. Hab den Support mal darauf hingewiesen, aber eine Hoffnung dass hier was gemacht wird habe ich nicht. Da kam dann nur als Antwort "Warum machen Sie das mit einem Skript, die FritzBox aktualisiert doch jede Nacht automatisch".
Ist es möglich mit dem Skript eine PPPoE Konfiguration zu manipulieren/erstellen? Rufnummern hinzuzufügen und SIP-Kennungen einzugeben?
Die Portforwarding Commands funktionieren alle nicht auf meiner FB 6591 Cable mit FW 07.28.
Get-FBPortMappings
Get-FBPortMappings
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In C:\Program Files\WindowsPowerShell\Modules\fritzbox_module\fritzbox_module.psm1:53 Zeichen:13
+ throw ([System.IO.StreamReader]($_.Exception.InnerExcepti ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (<?xml version="...>
</s:Envelope>:String) , RuntimeException
+ FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/
encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>402</errorCode>
<errorDescription>Invalid Args</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Im Abschnitt "Dokumentation zur TR-064 Schnittstelle" (hier) lese ich:
"die Dienstbeschreibungen mit den nötigen Parametern findet sich hier:
http://avm.de/service/schnittstellen/;
Ich klappe dort "Apps / TR-064" und erhalte ein paar Abschnitte mit Links auf pdf Dokumente.
Nirgends gibt es einen Unterpunkt für Portforwarding. Es gibt "Heimnnetz"; das pdf dazu liestet irgendetwas auf, was ic nicht verstehe. Ich weiß ja auch nicht, wonach ich suche.
" welche Aktionen es darin gibt lässt sich der oben verlinkten Dokumentation bei AVM entnehmen." AKtionen soll ich also finden. Ich finde aber keine.
Ich habe mal aus der tr64desc.xml "/layer3forwardingSCPD.xml" herausgepickt. Das war das einzige mit dem Substring "forward".
In dieser Datei gibt es einige Einträge mit "Get..." und "New..." beginnend, aber woher soll ich wissen, welche <action> darin das Powershell Command 'Get-FBPortMappings' benötigt???
"GetForwardNumberOfEntries"? Dem Namen nach liefert das nur eine Anzahl...
Ich verstehe den Zusammenhang dieses Gefummels überhaupt nicht.
Ich soll nun in das Script (welches "Script"? Ich habe nur zwei Moduldateien. Welche?") hineinschauen und eine $action Variable im New-Request "anschauen" - oder editieren?
Soll ich das Modul editieren?
Wo werden die Argumente -URN und -action übergeben? Und wem?
Ich möchte einfach nur "Get-FBPortMappings" ausführen.
Welcher Servicetyp und blabla ist doch eindeutig, oder nicht?
Ich verstehe nihct, warum ich an dieser Funktion noch etwas editieren soll und vor allem wie.
Müssen die Moduldateien geändert werden?
"die Dienstbeschreibungen mit den nötigen Parametern findet sich hier:
http://avm.de/service/schnittstellen/;
Ich klappe dort "Apps / TR-064" und erhalte ein paar Abschnitte mit Links auf pdf Dokumente.
Nirgends gibt es einen Unterpunkt für Portforwarding. Es gibt "Heimnnetz"; das pdf dazu liestet irgendetwas auf, was ic nicht verstehe. Ich weiß ja auch nicht, wonach ich suche.
" welche Aktionen es darin gibt lässt sich der oben verlinkten Dokumentation bei AVM entnehmen." AKtionen soll ich also finden. Ich finde aber keine.
Ich habe mal aus der tr64desc.xml "/layer3forwardingSCPD.xml" herausgepickt. Das war das einzige mit dem Substring "forward".
In dieser Datei gibt es einige Einträge mit "Get..." und "New..." beginnend, aber woher soll ich wissen, welche <action> darin das Powershell Command 'Get-FBPortMappings' benötigt???
"GetForwardNumberOfEntries"? Dem Namen nach liefert das nur eine Anzahl...
Ich verstehe den Zusammenhang dieses Gefummels überhaupt nicht.
Ich soll nun in das Script (welches "Script"? Ich habe nur zwei Moduldateien. Welche?") hineinschauen und eine $action Variable im New-Request "anschauen" - oder editieren?
Soll ich das Modul editieren?
Wo werden die Argumente -URN und -action übergeben? Und wem?
Ich möchte einfach nur "Get-FBPortMappings" ausführen.
Welcher Servicetyp und blabla ist doch eindeutig, oder nicht?
Ich verstehe nihct, warum ich an dieser Funktion noch etwas editieren soll und vor allem wie.
Müssen die Moduldateien geändert werden?
Funktioniert bei mir leider nicht... NewAddressSource wird nicht angezeigt...? module-version 1.0.4, heute morgen installiert...
HW:
NewModelName : FRITZ!Box 7590
NewDescription : FRITZ!Box 7590 154.07.28
HW:
NewModelName : FRITZ!Box 7590
NewDescription : FRITZ!Box 7590 154.07.28
Zitat von @colinardo:
Servus,
die Funktion ist schon im Skript vorhanden. Mit dem CMDLet Get-FBHostlist und dem Parameter -IncludeDHCPLeaseInfo lassen sich alle Hosts an der Fritzbox inkl ihren DHCP-Eigenschaften auslesen.
Hier ein Beispiel der Ausgabe:
Grüße Uwe
Zitat von @amdinistrator:
hi! Gibt es einen Weg, DHCP Reservierungen auszulesen? Etwas mühsam, bei jedem Host reinzuklicken und den Haken zu suchen... Finde leider keine Funktion dazu, bin aber auch etwas unerfahren...
hi! Gibt es einen Weg, DHCP Reservierungen auszulesen? Etwas mühsam, bei jedem Host reinzuklicken und den Haken zu suchen... Finde leider keine Funktion dazu, bin aber auch etwas unerfahren...
Servus,
die Funktion ist schon im Skript vorhanden. Mit dem CMDLet Get-FBHostlist und dem Parameter -IncludeDHCPLeaseInfo lassen sich alle Hosts an der Fritzbox inkl ihren DHCP-Eigenschaften auslesen.
Get-FBHostList -IncludeDHCPLeaseInfo | format-table HostName,IPAddress,MACAddress,NewAddressSource,NewLeaseTimeRemaining -AutoSize -Wrap
Hier ein Beispiel der Ausgabe:
Grüße Uwe
Zitat von @colinardo:
Funktioniert bei mir leider nicht... NewAddressSource wird nicht angezeigt...? module-version 1.0.4, heute morgen installiert...
Die Funktion habe ich vorhin erst in v1.0.5 um den Parameter ergänzt, lade es dir nochmal über den bereits erhaltenen Link herunter.ok, funktioniert jetzt, tut aber nicht ganz, was ich suche: Es zeigt zwar an, welcher Host per DHCP eine Adresse bekommen hat, aber nicht, ob das eine an den Host gebundene DHCP-Reservierung ist ("Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen"). Any Chance?
Aber schon mal Danke für das rasche Update.
Zitat von @colinardo:
Zitat von @amdinistrator:
ok, funktioniert jetzt, tut aber nicht ganz, was ich suche: Es zeigt zwar an, welcher Host per DHCP eine Adresse bekommen hat, aber nicht, ob das eine an den Host gebundene DHCP-Reservierung ist ("Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen"). Any Chance?
Das ist die Info die die Fritzbox herausgibt, die LeaseTime sollte bei solchen Clients immer auf dem maximal konfigurierten Wert stehen (daran solltest du sie erkennen können), kann ich aber gerade nicht testen.ok, funktioniert jetzt, tut aber nicht ganz, was ich suche: Es zeigt zwar an, welcher Host per DHCP eine Adresse bekommen hat, aber nicht, ob das eine an den Host gebundene DHCP-Reservierung ist ("Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen"). Any Chance?
Leider nicht. Ich sehe keinen Unterschied zwischen einem Eintrag mit Reservierung und einem ohne. Es scheint, ich muss verschiedene Bereiche wählen, also 20-30 für Reservierungen und 31-x für sonstige. Schade. Irgendwo muss die Info doch sein, die Box zeigt die Info im UI ja auch an...
@colinardo
Hi Uwe,
beim ersten Überfliegen, fehlt da nicht ein $ in Zeile 13 (ja, ich bin ein Pingelkopp)?
$xml = irm -Uri "$url/login_sid.lua" -SessionVariable $ws -ContentType "application/xml"
Ich bin dabei, mir nach einer Linux-Skriptvorlage etwas zu schreiben, um ein Zertifikat hochzuladen. Aber ich sehe, du bist da schon viel weiter (tolle Arbeit übrigens!). Bei mir funktioniert das ohne SessionVariable, fehlte in der Vorlage. Würde dir demnächst gern ein paar Fragen stellen, wenn ich darf.
Gruß Sam
edit: Wow, wollte mir gerade das zip-File herunterladen, man hat sich das Leben verändert. Ich 'abe gar kein PayPal (Ja, so etwas gibt es noch, ähm, so jemanden). Schade.
Hi Uwe,
beim ersten Überfliegen, fehlt da nicht ein $ in Zeile 13 (ja, ich bin ein Pingelkopp)?
$xml = irm -Uri "$url/login_sid.lua" -SessionVariable $ws -ContentType "application/xml"
Ich bin dabei, mir nach einer Linux-Skriptvorlage etwas zu schreiben, um ein Zertifikat hochzuladen. Aber ich sehe, du bist da schon viel weiter (tolle Arbeit übrigens!). Bei mir funktioniert das ohne SessionVariable, fehlte in der Vorlage. Würde dir demnächst gern ein paar Fragen stellen, wenn ich darf.
Gruß Sam
edit: Wow, wollte mir gerade das zip-File herunterladen, man hat sich das Leben verändert. Ich 'abe gar kein PayPal (Ja, so etwas gibt es noch, ähm, so jemanden). Schade.
Schöne Library - kompliment!
Wäre es noch möglich den Management-Server (ACS) konfigurierbar zu machen (urn:ManagementServer-com:serviceId:ManagementServer1)? Details siehe https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/mgmsr ...
Gruß,
Chris
Wäre es noch möglich den Management-Server (ACS) konfigurierbar zu machen (urn:ManagementServer-com:serviceId:ManagementServer1)? Details siehe https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/mgmsr ...
Gruß,
Chris
Hi Uwe,
ich habe noch eine Frage: Kann es sein, dass etwas mit dem Encoding nicht stimmt? Wenn ich ein Get-FBTAMMessageList -TAMIndex 1 starte, dann werden Namen mit Umlauten unschön zurückgegeben.
Z.B.: "örin"
Ich hatte das Problem beim Importieren von CSVs, da habe ich diesen Schalter angewandt: -Encoding UTF7.
Gruß
Jürgen
ich habe noch eine Frage: Kann es sein, dass etwas mit dem Encoding nicht stimmt? Wenn ich ein Get-FBTAMMessageList -TAMIndex 1 starte, dann werden Namen mit Umlauten unschön zurückgegeben.
Z.B.: "örin"
Ich hatte das Problem beim Importieren von CSVs, da habe ich diesen Schalter angewandt: -Encoding UTF7.
Gruß
Jürgen
Hallo Colinardo,
ich bin erstmal begeistert!
Aber ich hätte da noch einen Wunsch:
Ähnlich wie hier beschrieben:
https://www.msxfaq.de/tools/prtg/fritzbox_monitoring.htm#upnp_und_soap
würde ich gerne den aktuellen Datendurchsatz der Fritzbox mitloggen und weiterverarbeiten. Dazu müssten die Werte im Bereich WANCommonInterfaceConfig:1#GetAdd-onInfos ausgelesen werden, insbesondere wären NewX_AVM_DE_TotalBytesSent64 und NewX_AVM_DE_TotalBytesReceived64 interessant.
Wäre das noch was, das du in die Wunschliste aufnehmen würdest?
Vorab besten Dank,
Markus
PS: Get-FBWifiConnectedDevicesAsXML wirft bei meiner 7590 einen Fehler:
Ausnahme beim Aufrufen von "DownloadString" mit 1 Argument(en): "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht
gefunden."
In C:\Scripts\fritzbox_module\fritzbox_module.psm1:1187 Zeichen:156
... pt:secport$($resp.Envelope.Body.'X_AVM-DE_GetWLANDeviceListPathRespon ...
+ FullyQualifiedErrorId : WebException
ich bin erstmal begeistert!
Aber ich hätte da noch einen Wunsch:
Ähnlich wie hier beschrieben:
https://www.msxfaq.de/tools/prtg/fritzbox_monitoring.htm#upnp_und_soap
würde ich gerne den aktuellen Datendurchsatz der Fritzbox mitloggen und weiterverarbeiten. Dazu müssten die Werte im Bereich WANCommonInterfaceConfig:1#GetAdd-onInfos ausgelesen werden, insbesondere wären NewX_AVM_DE_TotalBytesSent64 und NewX_AVM_DE_TotalBytesReceived64 interessant.
Wäre das noch was, das du in die Wunschliste aufnehmen würdest?
Vorab besten Dank,
Markus
PS: Get-FBWifiConnectedDevicesAsXML wirft bei meiner 7590 einen Fehler:
Ausnahme beim Aufrufen von "DownloadString" mit 1 Argument(en): "Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht
gefunden."
In C:\Scripts\fritzbox_module\fritzbox_module.psm1:1187 Zeichen:156
... pt:secport$($resp.Envelope.Body.'X_AVM-DE_GetWLANDeviceListPathRespon ...
+ CategoryInfo : NotSpecified: ( , MethodInvocationException
+ FullyQualifiedErrorId : WebException
Zitat von @colinardo:
Servus LKS,
Servus LKS,
Zitat von @Lochkartenstanzer:
rein der der Interesse halber. Hast Du das Modul auch unter der Powershell für Linux mal getestet?
Ja, läuft hier auf einer derzeit aktuellen PS Version 7.2.2 Core bspw. unter Ubuntu problemlos.rein der der Interesse halber. Hast Du das Modul auch unter der Powershell für Linux mal getestet?
Dann muß ich das mal bei Gelegenheit ausprobieren.
lks
Hallo Uwe,
Frage: Ist bei connect-fritzbox eine Rückmeldung über Erfolg/Misserfolg verfügbar, aufgrund der ich dann meine weiteren Schritte starten oder überspringen kann?
Also sowas wie:
if (Connect-Fritzbox -fqdn $fbox.FBAddress -username $fbox.FBUser -password $fbox.FBPass)
{
bla
}
Hintergrund: ich monitore eine Fritzbox, die über eine eher unzuverlässige VPN-Verbindung erreicht wird. Falls der connect misslingt, werden 0-Werte in meine Datenbank eingetragen. Bisher vermeide ich das, indem ich die FB vor dem connect anpinge und nur bei Erfolg das Weitere ausführe. Geht auch, obiges wäre halt eleganter...
Danke,
Markus
Frage: Ist bei connect-fritzbox eine Rückmeldung über Erfolg/Misserfolg verfügbar, aufgrund der ich dann meine weiteren Schritte starten oder überspringen kann?
Also sowas wie:
if (Connect-Fritzbox -fqdn $fbox.FBAddress -username $fbox.FBUser -password $fbox.FBPass)
{
bla
}
Hintergrund: ich monitore eine Fritzbox, die über eine eher unzuverlässige VPN-Verbindung erreicht wird. Falls der connect misslingt, werden 0-Werte in meine Datenbank eingetragen. Bisher vermeide ich das, indem ich die FB vor dem connect anpinge und nur bei Erfolg das Weitere ausführe. Geht auch, obiges wäre halt eleganter...
Danke,
Markus
Hallo Uwe,
Das ging aber fix. Gleich probiert.
Danke für deine Arbeit!
Ich hoffe, dass mir die Fritzbox das tägliche löschen und wieder befüllen nicht übel nimmt. Wenn ja werde ich berichten.
Grüße Veit
Das ging aber fix. Gleich probiert.
Danke für deine Arbeit!
Ich hoffe, dass mir die Fritzbox das tägliche löschen und wieder befüllen nicht übel nimmt. Wenn ja werde ich berichten.
Grüße Veit
Hallo Uwe,
ich bin auf der Suche nach einer automatisierten Abfrage einer schaltbaren Steckdose Fritz!Dect 210 auf diese Seite gestoßen und begeistert von deiner Arbeit. Vielen Dank dafür!
Leider habe ich mit Powershell keine Erfahrungen, dank der super Erklärungen haben das Einbinden des Modules und die Abfrage z.B. mit Get FBCalllist aber auf Anhieb funktioniert.
Wie kann ich aktuelle Werte (Leistung, Temperatur) der smarten Steckdose mit einem PS-Script abfragen? Ich finde keine passende Funktion in der obigen Liste...
Viele Grüße, Raimo
ich bin auf der Suche nach einer automatisierten Abfrage einer schaltbaren Steckdose Fritz!Dect 210 auf diese Seite gestoßen und begeistert von deiner Arbeit. Vielen Dank dafür!
Leider habe ich mit Powershell keine Erfahrungen, dank der super Erklärungen haben das Einbinden des Modules und die Abfrage z.B. mit Get FBCalllist aber auf Anhieb funktioniert.
Wie kann ich aktuelle Werte (Leistung, Temperatur) der smarten Steckdose mit einem PS-Script abfragen? Ich finde keine passende Funktion in der obigen Liste...
Viele Grüße, Raimo
Hallo Community,
ich würde mir wünschen, dass man einen Mesh Repeater ohne manuellen Knopfdruck remote beim Master anmelden kann z.B. mit Skript oder Klick.. .
Ich habe das schon mit der Set-FBWPSConfig versucht bzw. die TR064 Doku durchgesehen (...) aber keine Möglichkeit gefunden.
Vielleicht gibt es dazu Erkenntnisse.
Danke
Gruß
Hannes
ich würde mir wünschen, dass man einen Mesh Repeater ohne manuellen Knopfdruck remote beim Master anmelden kann z.B. mit Skript oder Klick.. .
Ich habe das schon mit der Set-FBWPSConfig versucht bzw. die TR064 Doku durchgesehen (...) aber keine Möglichkeit gefunden.
Vielleicht gibt es dazu Erkenntnisse.
Danke
Gruß
Hannes
Hallo,
ich habe soeben dieses tolle Paket erworben. Ich würde gerne automatisiert die VDSL Werte auslesen lassen und mit Name und Datum versehen abspeichern. Nachdem ich seit Monaten von Verbindungsproblemen geplagt werde und dies meist in den Abendstunden auftritt, würde ich gerne den Telekom-Techniker die Werte präsentieren.
Die folgende Meldung erhalte ich leider. Gibt es hier schon einen Fix? Ich konnte leider nichts finden
Vielen Dank im Voraus für die Mühe
ich habe soeben dieses tolle Paket erworben. Ich würde gerne automatisiert die VDSL Werte auslesen lassen und mit Name und Datum versehen abspeichern. Nachdem ich seit Monaten von Verbindungsproblemen geplagt werde und dies meist in den Abendstunden auftritt, würde ich gerne den Telekom-Techniker die Werte präsentieren.
Die folgende Meldung erhalte ich leider. Gibt es hier schon einen Fix? Ich konnte leider nichts finden
Get-FBWANDSLSpectrumData
irm :
FRITZ!Box
FRITZ!Box
FRITZ!Box
Die angegebene URL wurde nicht gefunden. Sie werden auf die Startseite der FRITZ!Box weitergeleitet.
Falls Sie nicht automatisch auf die Startseite der FRITZ!Box weitergeleitet werden, klicken Sie hier.
window.setTimeout(function () {
window.location.href = "/";
}, 10000);
In C:\FritzBoxTools\fritzbox_module\fritzbox_module.psm1:357 Zeichen:15
+ ... $result = irm "http://$SCRIPT:FB_FQDN/internet/dsl_spectrum.lua?sid ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Vielen Dank im Voraus für die Mühe
Hallo colinardo,
erstmal danke für Deine super Sammlung.
Habe seit 2 Wochen Glasfaser und habe mir eine Fritz 5590 zugelegt.
Bin mal angefangen, mich mit den Möglichkeiten der Fritz-Box 5590 SW 7.30 auseinanderzusetzen und habe Deine Funktionen ausprobiert.
## http://fritz.box:49000/tr64desc.xml
##
## urn:dslforum-org:service:DeviceConfig:1
## http://fritz.box:49000/deviceconfigSCPD.xml
## urn:dslforum-org:service:Layer3Forwarding:1
## http://fritz.box:49000/layer3forwardingSCPD.xml
## urn:dslforum-org:service:LANConfigSecurity:1
## http://fritz.box:49000/lanconfigsecuritySCPD.xml
## urn:dslforum-org:service:ManagementServer:1
## http://fritz.box:49000/mgmsrvSCPD.xml
## urn:dslforum-org:service:Time:1
## http://fritz.box:49000/timeSCPD.xml
## urn:dslforum-org:service:UserInterface:1
## http://fritz.box:49000/userifSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Storage:1
## http://fritz.box:49000/x_storageSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_WebDAVClient:1
## http://fritz.box:49000/x_webdavSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_UPnP:1
## http://fritz.box:49000/x_upnpSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Speedtest:1
## http://fritz.box:49000/x_speedtestSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1
## http://fritz.box:49000/x_remoteSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_MyFritz:1
## http://fritz.box:49000/x_myfritzSCPD.xml
## urn:dslforum-org:service:X_VoIP:1
## http://fritz.box:49000/x_voipSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_OnTel:1
## http://fritz.box:49000/x_contactSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Dect:1
## http://fritz.box:49000/x_dectSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_TAM:1
## http://fritz.box:49000/x_tamSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_AppSetup:1
## http://fritz.box:49000/x_appsetupSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Homeauto:1
## http://fritz.box:49000/x_homeautoSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Homeplug:1
## http://fritz.box:49000/x_homeplugSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Filelinks:1
## http://fritz.box:49000/x_filelinksSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Auth:1
## http://fritz.box:49000/x_authSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_HostFilter:1
## http://fritz.box:49000/x_hostfilterSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:1
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:2
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:3
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:Hosts:1
## http://fritz.box:49000/hostsSCPD.xml
## urn:dslforum-org:service:LANEthernetInterfaceConfig:1
## http://fritz.box:49000/ethifconfigSCPD.xml
## urn:dslforum-org:service:LANHostConfigManagement:1
## http://fritz.box:49000/lanhostconfigmgmSCPD.xml
## urn:dslforum-org:service:WANCommonInterfaceConfig:1
## http://fritz.box:49000/wancommonifconfigSCPD.xml
## urn:dslforum-org:service:WANDSLInterfaceConfig:1
## http://fritz.box:49000/wandslifconfigSCPD.xml
## urn:dslforum-org:service:WANDSLLinkConfig:1
## http://fritz.box:49000/wandsllinkconfigSCPD.xml
## urn:dslforum-org:service:WANEthernetLinkConfig:1
## http://fritz.box:49000/wanethlinkconfigSCPD.xml
## urn:dslforum-org:service:WANPPPConnection:1
## http://fritz.box:49000/wanpppconnSCPD.xml
## urn:dslforum-org:service:WANIPConnection:1
## http://fritz.box:49000/wanipconnSCPD.xml
Bei Get-FBWANDSLInterfaceConfig bekomme ich aber einen Fehler 820, der Service wird unterstützt, und habe mir das XML-File angesehen, es gibt die Action "GetInfo". Hast Du eine Idee, woher der Fehler 820 kommt?
Get-FBWANDSLInterfaceConfig
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>820</errorCode>
<errorDescription>Internal Error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In D:\Daten\Software\fritz\Programmer-Doku\fritzbox_module\fritzbox_module.psm1:51 Zeichen:13
</s:Envelope>:String) [], RuntimeException
+ FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>820</errorCode>
<errorDescription>Internal Error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
erstmal danke für Deine super Sammlung.
Habe seit 2 Wochen Glasfaser und habe mir eine Fritz 5590 zugelegt.
Bin mal angefangen, mich mit den Möglichkeiten der Fritz-Box 5590 SW 7.30 auseinanderzusetzen und habe Deine Funktionen ausprobiert.
## http://fritz.box:49000/tr64desc.xml
##
## urn:dslforum-org:service:DeviceConfig:1
## http://fritz.box:49000/deviceconfigSCPD.xml
## urn:dslforum-org:service:Layer3Forwarding:1
## http://fritz.box:49000/layer3forwardingSCPD.xml
## urn:dslforum-org:service:LANConfigSecurity:1
## http://fritz.box:49000/lanconfigsecuritySCPD.xml
## urn:dslforum-org:service:ManagementServer:1
## http://fritz.box:49000/mgmsrvSCPD.xml
## urn:dslforum-org:service:Time:1
## http://fritz.box:49000/timeSCPD.xml
## urn:dslforum-org:service:UserInterface:1
## http://fritz.box:49000/userifSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Storage:1
## http://fritz.box:49000/x_storageSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_WebDAVClient:1
## http://fritz.box:49000/x_webdavSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_UPnP:1
## http://fritz.box:49000/x_upnpSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Speedtest:1
## http://fritz.box:49000/x_speedtestSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_RemoteAccess:1
## http://fritz.box:49000/x_remoteSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_MyFritz:1
## http://fritz.box:49000/x_myfritzSCPD.xml
## urn:dslforum-org:service:X_VoIP:1
## http://fritz.box:49000/x_voipSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_OnTel:1
## http://fritz.box:49000/x_contactSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Dect:1
## http://fritz.box:49000/x_dectSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_TAM:1
## http://fritz.box:49000/x_tamSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_AppSetup:1
## http://fritz.box:49000/x_appsetupSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Homeauto:1
## http://fritz.box:49000/x_homeautoSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Homeplug:1
## http://fritz.box:49000/x_homeplugSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Filelinks:1
## http://fritz.box:49000/x_filelinksSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_Auth:1
## http://fritz.box:49000/x_authSCPD.xml
## urn:dslforum-org:service:X_AVM-DE_HostFilter:1
## http://fritz.box:49000/x_hostfilterSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:1
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:2
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:WLANConfiguration:3
## http://fritz.box:49000/wlanconfigSCPD.xml
## urn:dslforum-org:service:Hosts:1
## http://fritz.box:49000/hostsSCPD.xml
## urn:dslforum-org:service:LANEthernetInterfaceConfig:1
## http://fritz.box:49000/ethifconfigSCPD.xml
## urn:dslforum-org:service:LANHostConfigManagement:1
## http://fritz.box:49000/lanhostconfigmgmSCPD.xml
## urn:dslforum-org:service:WANCommonInterfaceConfig:1
## http://fritz.box:49000/wancommonifconfigSCPD.xml
## urn:dslforum-org:service:WANDSLInterfaceConfig:1
## http://fritz.box:49000/wandslifconfigSCPD.xml
## urn:dslforum-org:service:WANDSLLinkConfig:1
## http://fritz.box:49000/wandsllinkconfigSCPD.xml
## urn:dslforum-org:service:WANEthernetLinkConfig:1
## http://fritz.box:49000/wanethlinkconfigSCPD.xml
## urn:dslforum-org:service:WANPPPConnection:1
## http://fritz.box:49000/wanpppconnSCPD.xml
## urn:dslforum-org:service:WANIPConnection:1
## http://fritz.box:49000/wanipconnSCPD.xml
Bei Get-FBWANDSLInterfaceConfig bekomme ich aber einen Fehler 820, der Service wird unterstützt, und habe mir das XML-File angesehen, es gibt die Action "GetInfo". Hast Du eine Idee, woher der Fehler 820 kommt?
Get-FBWANDSLInterfaceConfig
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>820</errorCode>
<errorDescription>Internal Error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
In D:\Daten\Software\fritz\Programmer-Doku\fritzbox_module\fritzbox_module.psm1:51 Zeichen:13
throw ([System.IO.StreamReader]($_.Exception.InnerExcepti ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (<?xml version="...></s:Envelope>:String) [], RuntimeException
+ FullyQualifiedErrorId : <?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>820</errorCode>
<errorDescription>Internal Error</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Danke Dir, wieder was gelernt.
Dachte, das # http://fritz.box:49000/tr64desc.xml nur die Services anzeigt, die auch von dieser Fritz-Box unterstützt werden und da steht die Funktion drin, aber kann auch sein, dass ich die 5590 zusätzlich auch über DSL betreiben kann.
Werde mich mal an WANPPPConnection probieren.
Danke!
Dachte, das # http://fritz.box:49000/tr64desc.xml nur die Services anzeigt, die auch von dieser Fritz-Box unterstützt werden und da steht die Funktion drin, aber kann auch sein, dass ich die 5590 zusätzlich auch über DSL betreiben kann.
Werde mich mal an WANPPPConnection probieren.
Danke!
Thema auch aktuell bei Heise:
https://www.heise.de/select/ct/2023/19/2319513431853704381
https://ct.de/yju8
https://www.heise.de/select/ct/2023/19/2319513431853704381
https://ct.de/yju8
Problem
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
seit über einem Jahr lade ich automatisch täglich die Anrufliste von meiner Fritzbox.
Seit einiger Zeit geht das nicht mehr. Habe nichts geändert, soeben auch mit neuester Version deiner Module probiert, das selbe Problem:
Connect-Fritzbox -fqdn 'xxx.xxx.xxx.xxx' -username 'xxxxxxxxxx' -password 'xxxxxxxxxxx'
erzeugt folgende Fehlermeldung:
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\fritzbox_module\fritzbox_module.psm1:53 char:13
+ throw $_.Exception.InnerException
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: ( : ) [], WebException
+ FullyQualifiedErrorId : Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
Eine Idee wo das Problem liegt ?
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
seit über einem Jahr lade ich automatisch täglich die Anrufliste von meiner Fritzbox.
Seit einiger Zeit geht das nicht mehr. Habe nichts geändert, soeben auch mit neuester Version deiner Module probiert, das selbe Problem:
Connect-Fritzbox -fqdn 'xxx.xxx.xxx.xxx' -username 'xxxxxxxxxx' -password 'xxxxxxxxxxx'
erzeugt folgende Fehlermeldung:
Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\fritzbox_module\fritzbox_module.psm1:53 char:13
+ throw $_.Exception.InnerException
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: ( : ) [], WebException
+ FullyQualifiedErrorId : Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..
Eine Idee wo das Problem liegt ?
Hallo Uwe, sorry für meine Unfreundlichkeit, war etwas im Streß heute früh, trotzdem sollte Zeit früh Hallo oder so sein
Du hast leider recht, ich verwende Windows 7 prof. mit allen Updates.
Box 7590 A/CH im Bridgemodus auf Modem
Powershelll:
PSVersion 5.1.14409.1018
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1018
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Wie kann ich das Problem in Windows 7 lösen ?
Bin leider Netzwerkunkundig
Hat das damit zu tun ?
https://support.microsoft.com/de-de/topic/update-zum-aktivieren-von-tls- ...
Danke für die Hilfe
X-MAS
Du hast leider recht, ich verwende Windows 7 prof. mit allen Updates.
Box 7590 A/CH im Bridgemodus auf Modem
Powershelll:
PSVersion 5.1.14409.1018
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1018
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Wie kann ich das Problem in Windows 7 lösen ?
Bin leider Netzwerkunkundig
Hat das damit zu tun ?
https://support.microsoft.com/de-de/topic/update-zum-aktivieren-von-tls- ...
Danke für die Hilfe
X-MAS
Hi,
habe bei mir das Skript erweitert, sodass Wake-On-LAN geht, so spare ich mir die "wol.exe" bei der aktivierung meines Mesh-Client-Ökosystems an einer FB7490 und kann mein Einschaltscript auch über vpn nutzen.
Usage:
PS: Mein Abo ist nur noch bis Dezember.
habe bei mir das Skript erweitert, sodass Wake-On-LAN geht, so spare ich mir die "wol.exe" bei der aktivierung meines Mesh-Client-Ökosystems an einer FB7490 und kann mein Einschaltscript auch über vpn nutzen.
<#
.Synopsis
Send WOL Packet to MAC Address of known host
.DESCRIPTION
Use Fritzbox to send a WOL Paket. Working as well with mesh master to send to a host connected to a mesh client.
.EXAMPLE
Set-FBWOLByMACAddress '12:34:56:78:9A:BC'
#>
function Set-FBWOLByMACAddress {
param(
[parameter(mandatory=$true)][string]$MACAddress
)
if (!(CheckModuleInit)) {return}
$resp = New-Request -urn "urn:dslforum-org:service:Hosts:1" -action 'X_AVM-DE_WakeOnLANByMACAddress' -parameter (@{'NewMACAddress' = $MACAddress})
return $resp.Envelope.Body.'X_AVM-DE_WakeOnLANByMACAddressResponse'
}
Usage:
Remove-Module "fritzbox_module"
Import-Module "$($mypath)\fritzbox_module\fritzbox_module"
# Get-Module
#### ----------------- MAIN --------------------------
Write-Host "`nTurn on host using wol..."
Write-Host "Path of the script : $mypath"
Write-Host "`nWake on LAN on.."
Connect-Fritzbox -fqdn '192.168.9.1' -username 'user' -password 'pass!'
$pcmac="8C:DC:D4:25:D2:1C"
Set-FBWOLByMACAddress -MACAddress $pcmac
PS: Mein Abo ist nur noch bis Dezember.
Hallo Uwe,
wollte "mal eben" ein Powershell-Skript schreiben um auf die FritzBox zuzugreifen. Bin erstmal gescheitert, dann auf dein Modul gestoßen und nun absolut begeistert. Grandiose Arbeit. Danke.
Problem ist nur, dass ich auch Funktionen brauche, die eine 2FA-Anmeldung erfordern und dass das zugehörige Skript automatisiert ablaufen soll. Da ist natürlich ein manuelles Drücken des Knopfes an der FritzBox keine Lösung
Du schreibst : "TOTP Authenticator Support über TR-064 ist zur Zeit von AVM leider noch nicht implementiert".
Weißt du, ob das geplant ist bzw. ob das kommen wird und wenn ja, wann?
Danke dir und viele Grüße
Armin
wollte "mal eben" ein Powershell-Skript schreiben um auf die FritzBox zuzugreifen. Bin erstmal gescheitert, dann auf dein Modul gestoßen und nun absolut begeistert. Grandiose Arbeit. Danke.
Problem ist nur, dass ich auch Funktionen brauche, die eine 2FA-Anmeldung erfordern und dass das zugehörige Skript automatisiert ablaufen soll. Da ist natürlich ein manuelles Drücken des Knopfes an der FritzBox keine Lösung
Du schreibst : "TOTP Authenticator Support über TR-064 ist zur Zeit von AVM leider noch nicht implementiert".
Weißt du, ob das geplant ist bzw. ob das kommen wird und wenn ja, wann?
Danke dir und viele Grüße
Armin
Servus Uwe,
das zweite Skript listet tatsächlich alle Geräte im WLAN auf. Leider habe ich nicht gefunden, wonach ich suchte. Ist es möglich, die MAC-Adresse eines Geräts im Netzwerk anhand seiner IPv6-Adresse zu ermitteln, die vor 3 Monaten zugewiesen wurde. Ist diese Information überhaupt in der Fritzbox gespeichert? Meine Fritzbox ist 7590, FW 7.57
Danke dir und viele Grüße
Marek
das zweite Skript listet tatsächlich alle Geräte im WLAN auf. Leider habe ich nicht gefunden, wonach ich suchte. Ist es möglich, die MAC-Adresse eines Geräts im Netzwerk anhand seiner IPv6-Adresse zu ermitteln, die vor 3 Monaten zugewiesen wurde. Ist diese Information überhaupt in der Fritzbox gespeichert? Meine Fritzbox ist 7590, FW 7.57
Danke dir und viele Grüße
Marek
nur ein Router und man erwartet nicht allzu viel.
Nur der Form halber... Dann hast du das aber falsch formuliert und ein "einfacher Consumer"router vergessen hinzuzufügen. Es gibt durchaus Premium Router die entsprechende APIs haben und all sowas supporten. Die Netzwerk Welt besteht ja glücklicherweise nicht nur aus Billo Plasteroutern.