Archive for Mai 2019

COM-Schnittstelle bei Windows Remote Desktop oder Virtuellen Maschinen

24 Mai 2019

Wer eine physische COM-Schnittstelle auf einem anderen Rechner mittels Remote-Desktop verfügbar machen möchte, muss folgendes beachten.

Zuerst muss man im Remote Desktop die Optionen einblenden, um beim Register Lokale Ressourcen, unten bei “Lokale Geräte und Ressourcen”, die Weiter-Schaltfläche anklicken zu können. Dort aktiviert man nun den Eintrag Ports.
Alternativ kann man auch in der betreffenden RDP-Datei den Eintrag redirectcomports:i:0 auf 1 setzen und speichern.

Wer nun die Verbindung zum Remoterechner herstellt wird vielleicht gleich im Geräte-Manager nachschauen, ob die COM-Schnittstelle unter “Anschlüsse (COM & LPT)” auch auftaucht. Doch da herrscht gähnende Leere. Tja, der Geräte-Manager ignoriert den COM-Port großzügig.

Der Port ist aber trotzdem verfügbar und kann mittels Powershell-Eingabeaufforderung mit diesem Befehl aufgelistet werden:

[System.IO.Ports.SerialPort]::GetPortNames()

Gemeldet wird dann z. B. COM1.

Wenn man bei virtuellen Maschinen mehr machen möchte, muss man Named Pipes benutzen und kann so RS232-Hardware vom Host direkt einer virtuellen Maschine zur Verfügung stellen. Realisiert wird dies durch PipeToCOM: https://github.com/mcmlxxix/PipeToCom. Diese Lösung hat natürlich den Vorteil ohne Remote Verbindung auszukommen. Jetzt wird es aber wieder kompliziert, denn wenn man eine Generation 2 VM in einem Hyper-V hat, dann gibt es keine COM-Ports mehr. Man kann allerdings mittels Powershell und SET-VMComPort COM1 aktivieren und darüber den Pfad für die Pipe setzen.

Werbeanzeigen

Python unter Windows 10 Mai 2019 Update 1903 installieren

22 Mai 2019

Mit jedem Release öffnet sich Microsoft immer mehr der Open Source Welt. Neuestes Beispiel ist die nun supereinfache Installation von Python unter Windows 10 Mai 2019 Update (1903).

Gibt man Python in der Eingabeaufforderung oder bei Powershell ein, dann kommt nicht etwa diese erwartete Fehlermeldung:

C:\Users\Tester>python
Der Befehl "python" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Statt dessen öffnet sich der Microsoft Store mit der Möglichkeit Python als App zu installieren.

Microsoft Windows [Version 10.0.18362.113]
(c) 2019 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\Tester>python
C:\Users\Tester>

Man bekommt also keine Fehlermeldung mehr, sondern die Möglichkeit das fehlende Programm zu installieren.

Dabei handelt es sich um Python Version 3.7. Python 2.7 macht keinen Sinn denn Python 2.7 wird 2020 eh Geschichte sein: https://www.heise.de/developer/artikel/Die-Tage-sind-gezaehlt-End-of-Life-fuer-Python-2-4427023.html.

Man könnte nun den Errorlevel abragen, ob dieser gesetzt ist und in Batchdateien oder Skripten darauf reagieren. Wir nehmen dazu wie immer Powershell, damit kann man die betreffenden Werte einfacher abfragen:

PS C:\Users\Tester> $LASTEXITCODE
PS C:\Users\Tester> python
PS C:\Users\Tester> $LASTEXITCODE
9009
PS C:\Users\Tester>

Wir sehen also, dass der Errorlevel als 9009 zurückgegeben wird und keine Fehlermeldung erfolgt. Die Fehlermeldung müsste normalerweise lauten:

python : Die Benennung "python" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines
ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ python
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (python:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Es gibt aber eine Besonderheit die es zu beachten gilt. Der Microsoft Store wird nur bei einer interaktiven Eingabe aufgemacht, sollte man die Abfrage nach dem Errorlevel nun Skripten wollen, dann kann man ewig warten. Aus diesem Grund hier ein kleines Powershell-Skript welches das Vorhandensein von Python prüft, gegebenenfalls den Storelink aufmacht und auf dessen Installation wartet:

$v=python –version
if ($v -eq $null) {
  start ‚ms-windows-store://pdp/?ProductId=9NJ46SX7X90P‘
};
do {
  $v=python –version
} until (($LASTEXITCODE -ne 9009) –or ($v -ne $null) )

An dieser Stelle kann man nun davon ausgehen, dass man Python auf dem Rechner hat. Zumindest für den aktuellen Benutzer, denn die Apps über den Store werden in der Regel pro Benutzer installiert. Dies verdeutlich sich auch bei der Suche nach den betreffenden Dateien. So sah es vor der Installation aus:

C:\Users\Tester>dir python.* /s
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: 6247-3F6E

Verzeichnis von C:\Users\Tester\AppData\Local\Microsoft\WindowsApps

08.05.2019  00:16                 0 python.exe
               1 Datei(en),              0 Bytes

Verzeichnis von C:\Users\Tester\AppData\Local\Microsoft\WindowsApps\Microsoft.
DesktopAppInstaller_8wekyb3d8bbwe

08.05.2019  00:16                 0 python.exe
               1 Datei(en),              0 Bytes

Es gibt also eine Python.exe mit 0 Bytes, wenn man nach Python3.exe sucht wird man ebenfalls fündig.

Nach der Installation aus dem App Store gesellt sich ein weiteres Verzeichnis hinzu:

C:\Users\Tester\AppData\Local\Microsoft\WindowsApps\Python
SoftwareFoundation.Python.3.7_qbz5n2kfra8p0

In diesem Verzeichnis befinden sich nun weitere 0 Byte EXE-Dateien:

22.05.2019  07:48    <DIR>          .
22.05.2019  07:48    <DIR>          ..
22.05.2019  07:48                 0 idle.exe
22.05.2019  07:48                 0 idle3.7.exe
22.05.2019  07:48                 0 idle3.exe
22.05.2019  07:48                 0 pip.exe
22.05.2019  07:48                 0 pip3.7.exe
22.05.2019  07:48                 0 pip3.exe
22.05.2019  07:48                 0 python.exe
22.05.2019  07:48                 0 python3.7.exe
22.05.2019  07:48                 0 python3.exe
22.05.2019  07:48                 0 pythonw.exe
22.05.2019  07:48                 0 pythonw3.7.exe
22.05.2019  07:48                 0 pythonw3.exe

Man bekommt also durch die Installation des Python Pakets alle relevanten Python-Zusatzprogramme frei Haus geliefert.

Neben dem paketspezifischen Verzeichnis finden oben aufgeführte Pythonprogramme auch Einzug in das Verzeichnis C:\Users\Tester\AppData\Local\Microsoft\WindowsApps. Der Hintergrund dürfte sein, dass sich C:\Users\Tester\AppData\Local\Microsoft\WindowsApps bei den Umgebungsvariablen für die automatische Suche nach Programm also PATH aufgeführt wird. D. h. durch diese Vorgehensweise erreicht man, dass das Programm automatisch gestartet werden kann, egal wo man sich befindet. Gesagt getan:

C:\>python
Python 3.7.3 (tags/v3.7.3:ef4ec6ed12, Mar 25 2019, 22:05:12) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()

Klappt also tatsächlich. Und wie verhält es sich mit anderen Programmen?

C:\>pip list
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the ‚python -m pip install –upgrade pip‘ command.

Klappt also auch, wobei, wenn man ein aktuelles Paket bezogen hat muss man nochmal Hand anlegen um PIP auf den aktuellen Stand zu bekommen? Tja ist leider so. Auch bei TAR, SSH und CURL geht Microsoft äußert konservativ vor und langt einmal hinzugefügte Programme nicht mehr an. Ob dies bei Python auch zutrifft werden wir sehen.

Aber die spannende Frage ist, kann ich pip trotzdem updaten?

C:\>python -m pip install –upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/5c/e0/be401c003291b
56efc55aeba6a80ab790d3d4cece2778288d65323009420/pip-19.1.1-py2.py3-none-any.whl
(1.4MB)
    100% |████████████████████████████████| 1.4MB 468kB/s
Installing collected packages: pip
  Found existing installation: pip 19.0.3
    Uninstalling pip-19.0.3:
Could not install packages due to an EnvironmentError: [WinError 5] Zugriff verweigert: ‚c:\\program files\\windowsapps\\pythonsoftwarefoundation.python.3.7_3.7.
1008.0_x64__qbz5n2kfra8p0\\lib\\site-packages\\pip-19.0.3.dist-info\\entry_points.txt‘
Consider using the `–user` option or check the permissions.

You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the ‚python -m pip install –upgrade pip‘ command.

Also der erste Versuch ging schief aber ist auch nachvollziehbar, denn das Python-Paket würde dem Benutzer zugeordnet, mal sehen, ob es mit dem passenden Parameter klappt:

C:\>python -m pip install –upgrade pip –user
Collecting pip
  Using cached https://files.pythonhosted.org/packages/5c/e0/be401c003291b
56efc55aeba6a80ab790d3d4cece2778288d65323009420/pip-19.1.1-py2.py3-none-any.whl

Installing collected packages: pip
Successfully installed pip-19.1.1
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the ‚python -m pip install –upgrade pip‘ command.

Das sieht ja schon mal nicht schlecht aus:

C:\>pip list
Package Version
——- ——-
pip     19.1.1

Also man hat nun eine recht schnelle, einfache Methode Python auf seinen Rechner zu bekommen.

Soweit so gut! Allerdings, wie so oft gibt es einen Pferdefuß und der wird wahrscheinlich erst mit Python 3.8 oder 3.9 aus der Welt geschafft. Denn möchte man wirklich produktiv mit Python arbeiten, dann sollten solche Dinge nicht passieren:

C:>pip install flask

Installing collected packages: Werkzeug, MarkupSafe, Jinja2, click, itsdangerous, flask
  WARNING: The script flask.exe is installed in ‚C:\Users\Tester\AppData\Local\Packages\PythonSoftwareFoundation.
Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts‘ which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use –no-warn-script-location.
Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 flask-1.0.3 itsdangerous-1.1.0

D. h. ein einfacher Aufruf von “flask run” ist später nicht möglich. Als Lösung gibt es zwei Möglichkeiten, entweder man ruft

C:\Users\Tester\AppData\Local\Packages\PythonSoftwareFoundation.
Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts\flask.exe run

direkt auf oder man fügt den Pfad der Umgebungsvariablen PATH manuell hinzu:

set path=%path%;C:\Users\Tester\AppData\Local\Packages\PythonSoftware
Foundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts

Hier der Link zum Aufhängerartikel: https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update/

Möglich Probleme beim Erkennen ob Python installiert ist: https://github.com/Microsoft/PTVS/issues/5189, die Lösung ist das Beachten der PATH-Umgebungsvariablen.

Noch der Link zum Store: ms-windows-store://pdp/?ProductId=9NJ46SX7X90P sowie die Publisher-ID: qbz5n2kfra8p0

Thunderbird als Standard-E-Mail-Programm

14 Mai 2019

Bei einem aktuellen Thunderbird 60.6.1 unter Windows 7 wurde bei jedem Start nachgefragt, ob Thunderbird sich als Standard-E-Mail-Programm registrieren soll. Unabhängig was man auswählte, er war sowieso das Standard-E-Mailprogramm. Ein Aufruf aus einer anderen Anwendung funktionierte per SimpleMAPI also zuverlässig. Blöd war halt die Meldung. Aber gut. Die einfachste Lösung war einfach in den Thunderbirdeinstellungen das Häkchen für die Überprüfung wegzunehmen. Alles andere funktionierte trotzdem.

Links zum Thema:

https://bugzilla.mozilla.org/show_bug.cgi?id=1509918
https://support.mozilla.org/en-US/kb/make-thunderbird-default-mail-client
http://kb.mozillazine.org/Default_mail_client#Windows

VirtualBox auf Mac installieren und Fehlermeldungen wegen Kernel Extensions

10 Mai 2019

Auf einem aktuellen High Sierra 10.13.6 Mac OS System sollte VirtualBox 6.0.6 installiert werden. Bereits bei der Installation von VirtualBox gab es eine Fehlermeldung, mit dem Hinweis in den Systemeinstellungen unter Sicherheit das Laden der Oracle America Treiber zuzulassen. Nur leider funktionierte die Vorgehensweise nicht. Nach mehreren Versuchen mit De- und jeweils Neuinstallation von VirtualBox lief es immer noch nicht. Man konnte zwar VirtualBox aufrufen allerdings beim Start einer neu eingerichteten VM bekam man die Fehlermeldung “Systemerweiterung wurde blockiert” rc=-1908.

Nach einigem Suchen wurde ich auf diesen Eintrag aufmerksam: https://forums.virtualbox.org/viewtopic.php?f=8&t=84092. Da wird das Problem mit möglichen Lösungswegen beschrieben. Am Ende hat aber erst dieser Artikel die Lösung gebracht: https://ilgthegeek.wordpress.com/2018/01/27/macos-install-oracle-virtualbox-on-10-13/. Apple Dokument was abläuft: https://developer.apple.com/library/archive/technotes/tn2459/_index.html.

Kurz zusammengefasst:

  1. Mac herunterfahren
  2. Mit Command-R die Wiederherstellungskonsole aufrufen
  3. Im Dienstprogrammemenü das Terminal auswählen
  4. “spctl kext-consent add VB5E2TV963” ausführen
  5. Mac neu starten

Wie kommt man an das VB5E2TV963, welches die Entwicker-ID-Signatur darstellt? Bei der Installation von VirtualBox gibt es im Installationsassistenten oben rechts ein Schlosssymbol, klickt man dieses an, erhält man die nötige Info.

Wie man aktuell schnell Windows 7 aufsetzt

9 Mai 2019

Muss man Windows 7 aktuell neu aufsetzen dann ist die aktuelle offizielle Reihenfolge

1) Servicing Stack Update, z .B KB4490628

2) Kumulatives monatliches Rollup, z. B. KB4493472

3) .Net Framework 4.8 ndp48-x86-x64-allos-enu alternativ ndp472-KB405430-x86-x64-allos-enu

4) Windows Management Framework 4 (WMF4) – KB2819745

5) Reboot

6) WMF51 – KB3191566

zu 1)
Beschreibung zu Servicing Stack Updates: https://docs.microsoft.com/de-de/windows/deployment/update/servicing-stack-updates, hier findet man die neuesten Versionen für alle Betriebssysteme: https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/ADV990001

zu 2)
Im Windows 7 Updateverlauf kann man das aktuelle Kumulative Update ausfindig machen: https://support.microsoft.com/de-de/help/4009469

zu 3) 4.8 wird die letzte .Net-Frameworkversion sein, 4.9 wird es nie geben!

zu 4) Muss leider vor WMF 5.1 installiert werden, sonst klappt WMF 5.1 nicht!

zu 5) ist leider zwingend erforderlich

Netgear Nighthawk M1 Ressourcen

1 Mai 2019

Der Netgear Nighthawk M1 (MR1100) ist ein kleiner, mobiler LTE-Router der viele Features mitbringt. Durch Anbringung einer externen Antenne lässt er sich auch bei schwächerem Signal einsetzen. Im Innern werkelt ein Qualcomm Snapdragon X16 LTE Modem als Basis.

Allerdings gibt es manche Features die sind nicht per Web-GUI einstellbar. Um hier zum Zuge zu kommen muss man Telnet verwenden. Um Telnet bei einer aktuellen Windowsversion installiert zu bekommen hier weiterlesen: ?????

Ist man mittels WLAN mit dem Router verbunden, ruft telnet mit der Standard-IP-Adresse des Routers 192.168.1.1 oder DNS-Namen m1login.net auf, so erhält man diese Meldung.

PS > telnet 192.168.1.1
Verbindungsaufbau zu 192.168.1.1…Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 23: Verbindungsfehler

Schaut man sich um Internet um, so gibt es Hinweise darauf, dass der Port 5510 verwendet werden muss

PS > telnet 192.168.1.1 5510
Verbindungsaufbau zu 192.168.1.1…Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 5510: Verbindungsfehler

Liest man weiter, dann erfährt man, dass die Verbindung über den USB-Port bzw. den Ethernetport im Bridgemodus gemacht werden muss.

Dann klappt es tatsächlich und man wird von einem leeren Bildschirm mit blinkendem Cursor begrüßt.

Am Anfang dachte ich die Telnetsession hängt, aber faktisch ist es kein Zugang zu einer Linuxshell sondern nur zu einer Console für AT-Kommandos.

Also gibt man für die Interaktion AT-Kommandos ein. Dabei wird in meinem Fall jede sinnvolle Eingabe gespiegelt. D. h. man tippt AT ein und es wird AATT angezeigt. Dadurch kann man schnell rausfinden welche Befehle erlaubt sind und welche nicht. Denn nicht erlaubte Befehle werden einfach nicht Rückgekoppelt.

Das einfachste Kommando ist AT, welches dann so aussieht:

AATT

OK

AT Kommandos kommen noch von uralten Modemzeiten. Man nennt sie auch Hayes-Befehle von einem damaligen Modemhersteller.

Hier nun ein paar Beispiel welche AT-Kommandos welche Ausgabe zur Folge haben (ohne eingelegte SIM-Karte!):

AT+CGMI

Netgear, Incorporated

AT+CGMM

MR1100

AT!PACKAGE?

MR1100-100EUS_NTG9X50C_12.06.03.00_Generic_05.01

ATI

Manufacturer: Netgear, Incorporated
Model: MR1100
Revision: NTG9X50C_12.06.03.00 r3480 ntgrbc-fwbuild2 2018/10/12 11:29:56
IMEI: xxxxxxxxxxxxxxx
IMEI SV: 10
FSN: xxxxxxxxxxxxx
+GCAP: +CGSM,+DS,+ES

AT!GSTATUS?

!GSTATUS:
Current Time:  416              Mode:        ONLINE
System mode:   WCDMA            PS state:    Not attached
Tx Power (dBm):
GMM (PS) state:DEREGISTERED     NO IMSI
MM (CS) state: IDLE             NO IMSI

RxM RSSI C0:    —             RxD RSSI C0:  —
RxM RSSI C1:    —             RxD RSSI C1:  —

AT!CUSTOM?

!CUSTOM:
            PCSCDISABLE         0x03
            GPSSEL              0x01
            AUTONETWORKMODE     0x02
             CFUNPERSISTEN       0x01
            SINGLEAPNSWITCH     0x04
            USBSERIALENABLE     0x02
            NATENABLED          0x01
            HSICON              0x01
            SECCENABLE          0x01
            TFTPSERVERDISABLE   0x01

AT!BAND=?

Index, Name,                        GW Band Mask     L Band Mask      L ext Band Mask
00, Auto,                           0002000004C00000 000001A0080800C5 0000000000000000
01, WCDMA All,                      0002000004C00000 0000000000000000 0000000000000000
02, LTE All,                        0000000000000000 000001A0080800C5 0000000000000000

                                                     0000010000000000 – B41
                                                      0000008000000000 – B40
                                                     0000002000000000 – B38
                                                      0000000008000000 – B28
                                                      0000000000080000 – B20
                                                      0000000000000080 – B8
                                                     0000000000000040 – B7
                                                      0000000000000004 – B3
                                                      0000000000000001 – B1
                                     0002000000000000 – B8  (900)
                                     0000000004000000 – B5  (850)
                                     0000000000800000 – B2 (1900)
                                     0000000000400000 – B1 (2100)

AT!BCINF

SBL1
Addr: 8FFFF204
Ver:  NTG9X50C_12.06.03.00 r3480 ntgrbc-fwbuild2 2018/10/12 11:29:56
Date: 10/12/18
Size: 0001753C
CRC:  1DB74524

NVBF
Addr: Not applicable
Ver:
Date: 01/06/80
Size: 00048770
CRC:  6EA81F1B

NVBO
Addr: Not applicable
Ver:
Date: 01/06/80
Size: 00004ED1
CRC:  5B83691E

NVBU
Addr: Not applicable
Ver:
Date: 01/06/80
Size: 0001160F
CRC:  3273A3BE

NVBC
Addr: Not applicable
Ver:
Date: 01/06/80
Size: 000002FF
CRC:  5F408E03

SPLA
Addr: C435CC90
Ver:  BtSplash_01.01.29.00  r20046 carmd-vmwsk11 2017/07/27 15:16:03
Date: 07/27/17
Size: 0000C234
CRC:  669958E6

AT^SYSINFO

^SYSINFO: 1,0,1,5,255

AT!ERR

QDSP6                     ARM9 (not saved)
00   01 bsunused 00121
01   02 gsnvif   00698
02   02 sys_eplm 00591
03   04 sys_eplm 00762

AT!RESET

Soll den M1 neu booten.

AT!BOOTHOLD

Nicht probiert, soll aber funktionieren und wartet beim Bootvorgang, bzw. öffnet wahrscheinlich weitere Ports für Firmwareupdates… In diesem Zusammenhang sei noch auf den Windows Update Catalog verwiesen mit dem Stichwort HS-USB QDLoader, welcher ein Qualcomm Driver Loader(?) darstellt. Ein weiteres Stichwort ist Sierra Wireless bzw. .

Wenn man Informationen sucht, dann gibt es einige Foren wo über den M1 diskutiert wird. Zu allererst wäre das Netgear eigene Community-Forum zu nennen: https://community.netgear.com/t5/Nighthawk-WLAN-Router/bd-p/de-heim-wlan-router-nighthawk, https://community.netgear.com/t5/Mobile-Routers-Hotspots-Modems/bd-p/aircard, dann gibt es noch ein aktives Forum in Österreich: https://www.lteforum.at/mobilfunk/das-erste-1gbit-lte-netgear-mr1100-nighthawk-m1.6908/, auch ein russisches Forum kümmert sich drum: https://4pda.ru/forum/index.php?showtopic=778715&st=700, gleich in Übersetzung: https://translate.google.de/translate?sl=auto&tl=de&u=https%3A%2F%2F4pda.ru%2Fforum%2Findex.php%3Fshowtopic%3D778715%26st%3D700, viele technische Daten sind hier verzeichnet: https://wikidevi.com/wiki/Netgear_Nighthawk_M1_(MR1100).

Als letztes noch die offizielle Supportseite von Netgear: https://www.netgear.de/support/product/MR1100EUS.aspx

Microsoft baut mal wieder um, Technet und MSDN Blogs sind nun unter TechCommunity zu finden

1 Mai 2019

Wer sich teilweise wundert, warum die Links in verschiedenen Artikeln in diesem Blog wo mit blogs.msdn oder blogs.technet anfangen im Nirgendwo landen, dem sei gesagt, dass Microsoft mittlerweile alles in seine seit 2016 bestehende techcommunity umzieht. Leider gehen dabei auch so originäre Posts wie der Grund für den Umzug verlustig: https://blogs.msdn.microsoft.com/iotdev/2018/10/22/blog-migration/.

Hier die erste Ankündigung was es mit techcommunity auf sich hat: https://techcommunity.microsoft.com/t5/Tech-Community-Blog/Announcing-the-Microsoft-Tech-Community/ba-p/8691. Damals 2016 waren die anderen Blogs alle noch separat, aber bei den Kommentaren wird bereits der Gedanke eröffnet technet und msdn mit rüberzunehmen.

Hier ein ZDNet-Artikel der die Sache nochmal kurz umreißt: https://www.zdnet.com/article/as-microsoft-moves-more-blogs-off-its-msdn-and-technet-sites-heres-how-to-stay-current/.

Ein Eintrag speziell für Entwickler: https://devblogs.microsoft.com/visualstudio/microsofts-developer-blogs-are-getting-an-update/.

Wenn man nun alte alte Artikel sucht wo im Nirgendwo landen, was kann man machen?

Man sucht z. B.

https://devblogs.microsoft.com/iotdev/blog-migration/

man kann dazu das Internetarchiv befragen:

https://web.archive.org/web/20190108032919/https://blogs.msdn.
microsoft.com/iotdev/2018/10/22/blog-migration/

Man kann die meisten der Seiten über web.archive.org/web einsehen.

Künftig sind auf jeden Fall alle Blogs zentral hier zu finden: https://techcommunity.microsoft.com/t5/custom/page/page-id/Blogs.

Manchmal findet man aber im web.archive nicht alle Blogs dann sind die Informationen meist verloren. Wenn man im Vorfeld mitbekommt, dass ein Blog verschwinden soll, dann kann man diesen mittels eines Powershell Script noch schnell versuchen zu sichern. Zum Thema hat sich Vadims Podāns hier https://www.sysadmins.lv/blog-en/how-to-save-disappearing-msdn-and-technet-blogs-with-powershell.aspx ausgelassen und das passende Script erzeugt.