Windows Apps neu installieren mit PowerShell

Seit Windows 8 gibt es Apps im Microsoft Windows Betriebssystemen. Für Privatanwender ist das eine schöne und praktische Sache. In Unternehmen und Firmen ist dies allerdings schwer zu steuern. Deswegen werden bei der Installation der Clients oft die Apps deinstalliert. Wenn man nun wie in meinem Fall eine App wieder benötigt, hat man ein Problem, da die Apps komplett vom System gelöscht wurden. Wie man nun die Windows Apps neu installieren kann mit PowerShell, seht ihr in unserem Beitrag 🙂

ijmaki / Pixabay

 

Ausgangssituation

Auf allen Clients werden bei der Betriebssystem Installation die Windows Apps deinstalliert. Aber nicht nur für das Benutzerprofil deinstalliert, sondern komplett vom System entfernt. Mit folgendem PowerShell Befehl, werden die Apps für neue (nicht bestehende) Benutzerprofile deinstalliert.

(Nähere Infos in diesem Post)

 

Problem

Problematisch wird es hier. Man könnte versuchen die Apps mit folgendem Befehl für alle User wieder zu installieren.

Der Befehl wird zwar ausgeführt, es wird auch “completed” ausgegeben, aber die Apps erscheinen nicht. Und zwar hat das einen ganz einfachen Grund: Die Source-Files sind quasi nicht mehr verfügbar, da wir diese gelöscht haben.

 

Lösung – Windows Apps neu installieren

Nun gibt es zwei Möglichkeiten. Wir könnten den Windows App Store öffnen und die Apps manuell installieren. Allerdings ist das zeitaufwändig und in vielen Unternehmen ist der App Store blockiert. Deshalb suchen wir eine Möglichkeit die Apps mit einem PowerShell Script neu zu installieren.

  1. Zuerst benötigen wir natürlich die Source Files, um die Apps neu installieren zu können. Diese können im Microsoft VLSC heruntergeladen werden. Das Paket nennt sich “Windows 10 Inbox Apps”.

    Diese ISO Datei laden wir herunter. Diese beinhaltet alle Apps die wir benötigen.
  2. Mit diesen Dateien können wir uns nun ein PowerShell Script bauen, wie wir es haben wollen. Für die App “StickyNotes” habe ich ein Beispiel vorbereitet.
    Dies lässt ich natürlich automatisieren und per Softwarepaket oder Gruppenrichtlinie verteilen. Die zwei Dateien können wir natürlich aus dem ISO kopieren und in unseren SCCM oder andere Quelle kopieren.

 

Falls die Apps nicht “komplett” vom System gelöscht wurden, kann mit folgender Anleitung gearbeitet werden:

Windows App installieren mit PowerShell

Zertifikat importieren mit PowerShell Script

Zertifikate werden in allen Möglichen Anwendungsgebieten gebraucht. Um auf einen Webserver zuzugreifen, oder um Dienste wie zum Beispiel VPN zu benutzen. Hierzu muss man ein Zertifikat importieren. Hier gibt es auch zwei Varianten. Ein Computerzertifikat, oder ein Benutzerzertifikat. Wer per Softwareverteilung einen VPN Client verteilt, möchte gegeben falls gleich ein Zertifikat installieren. Wie man ein Zertifikat importieren kann mit einem PowerShell Script, seht ihr bei uns.

mohamed_hassan / Pixabay

 

Zertifikat importieren mit PowerShell

Um nun ein Zertifikat importieren zu können, verwenden wir ein kurzes PowerShell Script / Befehl.

Der Grundbefehl um ein “normales” Zertifikat zu installieren lautet folgendermaßen:

 

Bei einem PFX Zertifikat geht das nicht so einfach. Hier müssen wir ein Passwort mit übergeben, das im Normalfall erst in einen Secure String gewandelt werden muss.

 

Zertifikats – Verzeichnis

Die Verzeichnisse in denen die Zertifikate liegen, bzw. importiert werden sollen, können natürlich angezeigt werden.

Verzeichnisse könnt ihr mit “Get-ChildItem” auflisten.

 

Parameter

Für diesen Befehl sind mehrere Parameter verfügbar, die verwendet werden können.

-CertStoreLocation<String>

Pfad im Zertifikats – Store wird hier festgelegt. Falls dieser Parameter nicht befüllt wird, wird der momentane Pfad verwendet.

 

-Exportable

(ONLY PFX)

Exportable gibt an, ob das Zertifikat exportiert werden kann. Wenn dieser Parameter nicht angegeben wird, kann es nicht exportiert werden.

-FilePath<String>

Gibt den Pfad zum Zertifikat an.

-Password<SecureString>

(ONLY PFX)

Gibt das Passwort (Secure String) für den Zertifikats – Import an.

-Confirm

Fordert Sie vor der Ausführung des Befehls zum Bestätigen auf.

-WhatIf

Zeigt, was passieren würde, wenn der Befehl ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Microsoft PowerShell kann auch alle abgelaufenen Zertifikate des Benutzers oder Computers anzeigen und auflisten. In einem extra Beitrag wird die Funktionsweise erklärt:

Abgelaufene Zertifikate anzeigen mit PowerShell

Active Directory Grenzen – Überblick – Beispiele

Das Active Directory (AD) ist in größeren Netzwerken ein wesentlicher Bestandteil der Infrastruktur. Im Großen und Ganzen ist zu sagen, dass das Active Directory für die Benutzer, Gruppen, Computer, Berechtigungen und weitere Objekte da ist. Sobald große Umgebungen verwaltet werden wird es brenzlich. Es gibt Active Directory Grenzen.

3844328 / Pixabay

 

Active Directory Grenzen – Beispiele

Im folgenden möchte ich ein paar Grenzen des Active Directory zeigen. Wie bei jedem anderen System, ist irgendwann der Punkt erreicht, an dem es zu viel wird.

 

'Active Directory-Benutzer und -Computer' Snap-In

In dem Falle, dass in der MMC “Active Directory-Benutzer und -Computer” in einer OU mehr als 2000 Objekte enthalten sind, wird die folgende Meldung ausgegeben:

Die Anzahl der angezeigten Elemente kann aber auch erhöht werden.

Maximale LDAP Abfragen

Um sich beispielsweise vor Denial of Service (DoS) Attacken zu schützen, gibt das AD bei einer LDAP-Abfrage als Ergebnis “nur” 1.000 Datensätze. Wird die Grenze von 1.000 Datensätzen überschritten, wird folgender Fehler angezeigt: “Size Limit Exceeded Error.

Nun gibt es zwei Möglichkeiten dieses Problem zu umgehen:

  • Andern der maximum Page Size auf dem LDAP Client
  • Erhöhen des Wertes MaxPageSize in der LDAP Richtlinie auf dem Domain Controller

Name einer Organisationseinheit (OU)

Der Name einer Organisation Unit kann nicht mehr als 64 Zeichen enthalten. So wird sichergestellt, dass beim Aufruf von Gruppenrichtlinien (GPO) die sich im SYSVOL Verzeichnis befinden, nicht die Grenze von insgesamt 260 Zeichen überschritten wird. Falls der UNC Pfad mehr als 260 Zeichen überschreiten sollte, können die GPOs nicht mehr gelesen werden. Das bedeutet natürlich, dass sie auch nicht angewandt werden.

Länge des Dateinamens

Der Pfad inklusive Dateiname der Active Directory Datenbank (NTDS.dit), sowie Protokolldateien oder derGruppenrichtlinien die sich im SYSVOL-Verzeichnis befinden, sind auf 260 Zeichen beschränkt.

NetBIOS Name (Computer / Domäne)

Der NetBIOS-Name eines Computerkontos kann nicht länger als 15 Zeichen sein. Eigentlich sind 16 Zeichen möglich, wobei dieses 16. Zeichen für das System reserviert ist.

Außerdem darf der Computername nicht nur aus Zahlen bestehen.

Beim Namen der Domäne ist es genauso.

Länge des Fully Qualified Domain Name

Der Fully Qualified Domain Name (FQDN) einer Domäne darf insgesamt 64 Zeichen (inklusive Punkte) enthalten.

Anzahl an Objekten der DC erstellen kann

Ein Domain Controller (DC) kann ca. zwei Milliarden Objekte erstellen. Das sollte erstmal reichen 😉

maximale Anzahl von GPOs auf ein Benutzer- oder Computerobjekt

Es können höchstens 999 Gruppenrichtlinien auf ein Benutzerobjekt oder Computerobjekt angewendet werden. Das hat Performancegründe.

Sicherlich gibt es noch mehr Einschränkungen, die Active Directory Grenzen aufweisen. Aber das sollten schon sehr hilfreiche und Interessante Daten sein – ich hoffe ich konnte euch weiterhelfen 🙂

iPhone X WLAN – verliert Verbindung – 5 GHz

Heute geht es um das schöne teure iPhone X WLAN. Ich habe dieses Problem selbst mitbekommen. Meine Freundin sagte mir des öfteren, dass sie aus unserem WLAN zu Hause “raus fliegt”. Also das iPhone X verliert die Verbindung zum WLAN. Ich habe mir zuerst gedacht, dass es hald mal passieren kann…

Pexels / Pixabay

 

iPhone X WLAN Verbindung verloren

 

Ausgangssituation:

Ich habe zu Hause einen normalen DSL Anschluss mit einer FritzBox, wie jeder andere auch. Dort hab ich natürlich für die mobilen Geräte wie die Smartphones und Notebooks ein WLAN Netzwerk eingerichtet. So weit so gut. Natürlich habe ich beim Einrichten gleich meine Geräte (iPhone 6s, iPhone 8 und MacBook Pro) in das WLAN aufgenommen. Funktioniert einwandfrei! 🙂

Auch die kommenden Tage funktioniert das WLAN tadellos. Keine Zeitverzögerungen, keine Verbindungsabbrüche, auch nicht die Verbindung verloren.

Meine Freundin zeigte mir ein YouTube Video und auf einmal war die WLAN Verbindung weg. Ich schaute auf mein Handy, doch dort funktionierte alles perfekt. Ich installierte per normalen Mobilfunk eine Ping-App. Verbindungsabbrüche konnte ich im WLAN feststellen. Nun musste ich doch mal nachforschen.

 

Lösung des WLAN Problems:

Ich habe mich auf die Weboberfläche der Fritzbox geschalten und konnte erst einmal nichts feststellen. Doch dann ist mir aufgefallen, dass ich mein WLAN zwecks hoher Sendeleistung nur über 5 GHz ausstrahlen lasse. Als ich dann in Google danach suchte habe ich bemerkt, dass mehrere dieses Problem haben. Beitrag hier. Oder hier. Hier auch. Natürlich habe ich danach das 2,4 GHz WLAN unter selben Namen aktiviert. Danach lief es eine Stunde ohne Probleme. Dann war die Verbindung von iPhone X wieder weg. Nach Rücksprache mit einem Kollegen gab er mir den Tipp zwei getrennte Netze zu bauen.

Also ein “WLAN 2,4 GHz” und ein “WLAN 5 GHZ”.

Der Beste weg ist, die WLAN Netzwerke des iPhones auf ignorieren zu setzen (zu löschen), und dann die zwei WLAN Netzwerke neu zu verbinden. Somit sucht sich das iPhone immer das Beste Netz, und falls es aus dem 5 GHz Netzwerk fliegt, arbeitet es mit dem 2,4 GHz WLAN weiter.

Seitdem gibt es kein Problem mehr mit dem iPhone X WLAN. 🙂
Warum das iPhone X WLAN aus technischen Gründen Probleme macht, kann ich leider nicht beantworten.

 

Auch interessant?

WLAN Reichweite erhöhen mit Repeater

Eventlog mit PowerShell – Funktionsweise

Das Betriebssystem Microsoft Windows, dessen Komponenten und manche andere Software Hersteller schreiben wichtige Ereignisse in das Windows Ereignisprotokoll. Erfolgreiche oder fehlerhafte Anmeldungen, Softwarefehler, Warnungen und weitere wichtige Informationen werden hier gelistet. Für viele Privatanwender ist es meistens nicht sehr relevant. Allerdings für Systemadministratoren in Firmen und größeren Unternehmen ist dies oft sehr hilfreich, um auf mögliche Probleme und Fehler zu reagieren. Mit dem Windows internen Kommandozeilenprogramm PowerShell lässt sich das Eventlog lesen, schreiben, löschen und viele weitere Befehle absetzen. In diesem Beitrag zeigen wir anhand von vielen einfachen Beispielen, wie dies umgesetzt werden kann. 🙂

myrfa / Pixabay

 

Eventlog löschen mit PowerShell

Um einen bestimmten Log – Typ (Beispiel “Windows PowerShell“) zu löschen, muss dieser Befehl ausgeführt werden:

 

Das komplette Windows – Ereignisprotokoll löschen wir mit:

 

 

Eventlog lesen mit PowerShell

Um alle Event Logs zu lesen und ausgeben zu lassen verwenden wir:

 

Die neuesten 10 Logs aus der Kategorie “Application” werden so gelesen:

 

Die Logs aus der Kategorie “System“, aber mit dem Typ “Error” werden so ausgelesen:

 

Wir können auch ein bestimmtes Datum filtern, wenn wir einen bestimmten Zeitraum sehen wollen:

 

 

Eventlog anzeigen mit PowerShell

Dies ist nicht zu verwechseln mit der Funktion “Get-…“!
“Show-Eventlog” öffnet den richtigen Event Viewer für einen bestimmten Computer. Daher ist der Aufruf auch sehr einfach:

 

 

Eventlog einschränken mit PowerShell

Das Ereignisprotokoll kann limitiert werden. So kann die Größe des Logs und das Alter eingeschränkt werden:

 

 

Eventlog neu anlegen mit PowerShell

Mit “New-…” können wir eine neues Ereignisprotokoll inklusive Quelle anlegen, falls wir eine eigene Anwendung haben:

 

 

Eventlog schreiben mit PowerShell

Natürlich kann auch per Script ein Log geschrieben werden, was sehr wahrscheinlich am Öftesten benutzt wird:

Danach sollte es im Ereignisprotokoll so zu sehen sein:

 

 

Eventlog entfernen mit PowerShell

Um ein bestimmtes Log vom deinem Client zu löschen, benötigen wir folgenden Befehl:

 

Natürlich kann auch wieder eine komplette Quelle gelöscht werden:

 

 

Nicht vergessen! 🙁

Damit ihr bestimmte Änderungen im Microsoft Windows Log vornehmen könnt, werden Administrator – Berechtigungen benötigt. Also muss die PowerShell Console oder das PowerShell Script als Administrator gestartet werden, um nicht auf Fehler zu stoßen.