Archiv der Kategorie: Powershell

Windows Update im Griff: ABC-Update

Ich war lange Zeit auf der Suche nach einem Tool, mit dem ich den Windows Update Prozess etwas besser im Griff haben kann.

Lange habe ich mit dem WSUShelper von Wolfgang Fuehrer gearbeitet, allerdings benötige ich zur Ergänzung noch ein Tool, mit dem ich den Update Prozess sofort starten kann.

Hier setzt jetzt das Tool ABC-Update an, welches von Flemming Varmer kostenlos zur Verfügung gestellt wird.

Mit diesem Tool kann man die Updates entweder direkt von Microsoft holen

 ABC-Update.exe /A:Install 

oder von einem WSUS-Server, den man im eigenen Netz hat

 APC-Update.exe /S:WSUS /A:Install /R:N 

(Installiert alle verfügbaren, aber noch nicht installierten Updates ohne Reboot)
Interessant ist auch, dass man für den WSUS Server unterschiedliche Ports angeben kann (also Port 80 oder 8530).

Hier noch die Übersetzte Beschreibung des Programmes von der Webseite:

ABC-Update
ist ein einfach zu bedienendes Tool, mit dem Sie die Kontrolle über MS-Update-Vorgänge behalten.

Mit ABC-Update erhalten Sie die Updates genau dann, wenn Sie sie benötigen, und können auch maximale Neustarts definieren, Filteroptionen verwenden, um Updates anhand von Patchdaten, KB-Artikeln und Update-Kategorien auszuwählen.
Das Tool hat eine GUI- und eine Kommandozeilenversion und ermöglicht es Ihnen, Update-Operationen auch dann zu skripten, wenn Sie diese benötigen. Da Sie das Tool auch von der Kommandozeile aus aufrufen können, ist es gut geeignet für die Verwendung mit Software-Verteilungstools wie ABC-Deploy, MS SCCM und anderen.

Sie haben die Kontrolle. Kein Warten mehr auf automatische Updates.
Getestet OK von Windows XP/2003 und höher

Diese Lücke zwischen dem, was Microsoft direkt nach dem Auspacken anbietet, und dem, was viele Administratoren wirklich wollen, ist das, was das ABC-Update-Tool ausfüllen soll.

 

Exchange: Versteckte User und Verteilergruppen als Liste anzeigen

Wenn man sich alle versteckte Verteilergruppen in Exchange (z.B. wegen einer Umstellung) anzeigen lassen will, kann man das per Powershell tun:

get-distributiongroup | select name, Hiddenfromaddresslistsenabled | WHERE {$_.HiddenFromAddressListsEnabled -eq $true }

Wenn man sich entsprechend Benutzer-Mailboxen anzeigen lassen will, geht man so vor:

Get-Mailbox | Where {$_.HiddenFromAddressListsEnabled -eq $True}

Falls einem der Alis und die SendQuota nicht wichtig sind, kann man die mit einem kleinen Filter ausblenden:

Get-Mailbox | Where {$_.HiddenFromAddressListsEnabled -eq $True} | Select Name, HiddenFromAddressListsEnabled

Das Ganze kann man sich natürlich auch wieder in eine CSV-Datei ausgeben, die per Excel, LibreOffice Calc oder jeder anderen Tabellenkalkulation importiert werden kann.

Get-Mailbox | Where {$_.HiddenFromAddressListsEnabled -eq $True} | Select Name, HiddenFromAddressListsEnabled | export-csv c:\exports\hiddenUsers.csv

 

Quellen:
Oxford SBS Guy
social.technet.microsoft.com

 

Powershell: Report aller Konten ohne Passwortaging

Für ein Audit oder eine anstehende Umstrukturierung einer Domäne kann es notwendig sein alle Konten zu erfassen, bei denen das Kennwort nie abläuft (ohne Passwort-Aging).

Die Lösung ist ein Powershell-Script, das man z.B. auf einem Windows 7 Client ausführen kann.
Zunächst importiert öffnet man ein PowerShell ISE Fenster und aktiviert das Active Directory Modul mit:
Import-Module ActiveDirectory

Die Abfrage an sich sieht so aus:
Search-ADAccount –PasswordNeverExpires

Allerdings ist das Ergebnis eine stumpfe Auflistung in der PowerShell Box, die man so erst einmal nicht gut gebrauchen kann.
Besser ist es alles in eine CSV-Datei zu kopieren, die man dann in Excel importieren kann.
Search-ADAccount -PasswordNeverExpires | Select-Object Name,ObjectClass,PasswordNeverExpires | Export-Csv -Encoding UTF8 „$env:homedrive$env:homepath\Documents\users_no_password_expiration.csv“ –NoTypeInformation

Was macht die Abfrage jetzt eigentlich?
Also zunächst die Abfrage, wie wir sie oben schon angegeben hatten. Von den Ergebnissen nehmen wir jetzt Namen, Objekt-Klasse und die gewünschte Password-Eigenschaft. Darauf folgt die Ausgabe der Ergebnisse in eine CSV Datei, wobei wir UTF8 als Kodierung mitgeben. Damit sollten Umlaute kein Problem sein. Jetzt noch die Ausgabe in den Dokumentenordner des Benutzers.
Somit landet die erzeugte CSV nicht irgendwo am Rechner, sondern im Benutzerprofil des ausführenden Benutzers. Mit dem Argument “-NoTypeInformation” wird man eine Zeile los, die ansonsten bei der Abfrage ganz oben im Dokument eingefügt wird.

Windows 8 / 10 – Wie man den Windows-Key aus dem UEFI BIOS liest

Es mag euch schon aufgefallen sein, dass man bei neueren PCs und Laptops, die man mit OEM-Lizenz ausgeliefert bekommt, keine Lizenzaufkleber mehr findet.
Die Lizenz wird auf dringlichen Wunsch von Microsoft von den Herstellern im UEFI BIOS hinterlegt.
Hier sind Möglichkeiten, wie man den Lizenzkey von Windows 10 (und auch 8) auslesen kann:
(ACHTUNG: Funktioniert nicht unter Windows 7)

  1. START –> cmd , um eine DOS-Box zu erhalten
  2. Folgenden Befehl eingeben und ausführen:
    wmic path softwarelicensingservice get oa3xoriginalproductkey
  3. Jetzt sollte der Lizenzkey angezeigt werden. Einfach per Screenshot speichern oder abschreiben und gut verwahren, damit man bei einer Neuinstallation keine Probleme bekommt.
  4. Man kann sich das Ganze natürlich auch in eine Textdatei ausgeben lassen 🙂
    wmic path softwarelicensingservice get oa3xoriginalproductkey > %username%\desktop\Windows_License.txt
  5. Per Powershell liest sich der Aufruf so:
    powershell „(Get-WmiObject -query ’select * from SoftwareLicensingService‘).OA3xOriginalProductKey“

Natürlich gibt es auch einige Tools im Internet, mit denen man das auslesen kann, aber man sollte sich nicht unnötigerweise das System vollmüllen.

 

 

Exchange: Postfachgröße per Powershell abfragen

Bei Problemen mit Outlook/Exchange Konten ist est häufig ein sinnvoller Schritt sich über die Größe des Objektes zu informieren.

Dazu öffnet man die Exchange Management Shell und gibt folgenden Befehl ein:

Get-MailboxStatistics UserJoe | Format-List StorageLimitStatus,TotalItemSize,TotalDeletedItemSize,ItemCount,DeletedItemCount

Das Ergebnis sieht dann in etwa so aus:

StorageLimitStatus   : BelowLimit
TotalItemSize        : 397.4 MB (416,655,189 bytes)
TotalDeletedItemSize : 42.77 MB (44,846,426 bytes)
ItemCount            : 6382
DeletedItemCount     : 3764