Archiv der Kategorie: Powershell

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

 

SID zu User – User zu SID übersetzen.

Bei manchen Gelegenheiten benötigt man die Zuordnung von Benutzer zu SID.
Da Namen ja nur „Schall und Rauch“ sind, bezieht sich in Windows NT Systemen alles auf diese SID.

Also eine Variante:

Per whoami bekommt man ohne Parameter schlicht den Benutzernamen angezeigt:
C:\>whoami
domain\willi

Fügt man jetzt jetzt den Parameter „/USER“ hinzu, wird das Ganze schon informativer:
C:\>whoami /USER
USER INFORMATION
—————-
User Name     SID
============= ==============================================
domain\willi S-1-5-21-2071111111-172232323-1675865436-4567

Eine weitere Lösung ist es eine Abfrage über WMIC zu starten (WMIC – Take Command-line Control over WMI)

C:\>wmic useraccount where name=’willi‘ get sid
SID
S-1-5-21-2071111111-172232323-1675865436-4567

das Ganze geht auch anders herum:
C:\>wmic useraccount where sid=’S-1-5-21-2071111111-172232323-1675865436-4567′ get name
Name
willi

Damit hat man eine schöne Möglichkeit User nach SID und umgekehrt aufzulösen.

Und als letztes noch ein wenig Powershell:

User zu SID:
$objUser = New-Object System.Security.Principal.NTAccount(„DOMÄNENNAME“, „USERNAME“)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

SID zu User:
$objSID = New-Object System.Security.Principal.SecurityIdentifier `
(„SID-HIER-EINTRAGEN“)
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value