Drücke "Enter", um den Text zu überspringen.

Kategorie: Microsoft

PowerShell ist jetzt OpenSource / PowerShell für Linux

Was für uns MVPs schon etwas länger bekannt war, wurde heute durch Microsoft offiziell bekannt gegeben (und daher darf ich nun auch darüber schreiben):

Die Windows PowerShell ist seit heute OpenSource! Das Projekt ist auf GitHub zu finden:

https://github.com/powershell/powershell

Außerdem gibt es eine erste Alpha-Version der PowerShell für Linux und MacOS!

(Ubuntu 14.04 / 16.04, CentOS 7.1 und MacOS X 10.11)

Weitere Infos auf dem offiziellen Microsoft PowerShell Team Blog:

https://blogs.msdn.microsoft.com/powershell/2016/08/18/powershell-on-linux-and-open-source-2/

Schreibe einen Kommentar...

Office 365 und Exchange Server – nützliche PowerShell-Schnipsel

Im folgenden möchte ich euch einige Code-Schnipsel für die PowerShell zur Verfügung stellen, die das Arbeiten mit Office 365 bzw. einem Exchange Server mittels PowerShell erleichtern sollen. Dabei ist immer kurz angegeben, was der Code macht.

Der Artikel wird regelmäßig ergänzt und erweitert.

Allgemein

Verbinden der PowerShell mit Office 365:

1
2
3
4
Import-Module "PFAD-ZUR-EXCHANGE-PSM-DATEI.psm1" 
$credential = Get-Credential -UserName "USER@DOMÄNE.DE" -Message "Bitte das Passwort für O365 eingeben!" 
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $credential -Authentication Basic -AllowRedirection 
Import-PSSession $ExchangeSession -AllowClobber >> $null

Verteiler / Distribution Groups

Auflisten aller Verteiler:

1
Get-DistributionGroup

Mitglieder (Postfächer) eines bestimmten oder mehrerer Verteiler(s) auflisten:

1
2
3
4
$Mailbox = Get-Mailbox "Haiko Hertes" 
$DN=$Mailbox.DistinguishedName 
$Filter = "Members -like ""$DN&""" 
Get-DistributionGroup -ResultSize Unlimited -Filter $Filter

Mitglieder (Kontakte) eines bestimmten oder mehrerer Verteiler(s) auflisten:

1
2
3
4
$Mailbox = Get-MailContact "*KONTAKTNAME*" 
$DN=$Mailbox.DistinguishedName 
$Filter = "Members -like ""$DN""" 
Get-DistributionGroup -ResultSize Unlimited -Filter $Filter
Schreibe einen Kommentar...

Update 1606 für System Center Configuration Manager wurde veröffentlicht

Wie das Configuration Manager Team auf seinem TechNet-Blog berichtet, steht seit heute das Update 1606 für den SCCM bereit.

Einige der Neuerungen:

  • Support für Windows 10 Anniversary Update
  • Windows Information Protection (ehemals EDP)
  • Windows Defender Advanced Threat Protection
  • Integration für “Windows Store for Business”
  • Richtlinien für Windows Hello
  • uvm.

Eine komplette Auflistung der Änderungen und Neuerungen ist hier zu finden:

http://technet.microsoft.com/en-US/library/mt752488.aspx

Das Update wird automatisch, aber erst nach und nach verteilt. Wer zu den Ersten gehören möchte, die es bekommen, kann dieses PowerShell-Skript nutzen:

https://gallery.technet.microsoft.com/ConfigMgr-1606-Enable-043a8c50

Viel Spaß damit!

Schreibe einen Kommentar...

Release Dates für Windows Server 2016 und System Center 2016 stehen fest!

Da ich diese Woche unterwegs war kommt es etwas “verspätet”: Microsoft hat das Releasedate für Windows Server 2016 und System Center 2016 bekannt gegeben. Das Microsoft Windows Server Team schreibt auf seinem Blog:

We are excited to announce the official launch of Windows Server 2016 will be at the Ignite conference this Fall.

Die Ignite-Konferenz (quasi der Nachfolger der TechEd) findet Ende September (26.-30.09.) in Atlanta statt. Zeitgleich wird also der Release stattfinden – wir dürfen uns also freuen!

Gleichzeitig schreibt das MS Team, dass die aktuelle Technical Preview 5 gleichzeitig die letzte ist und diese auch bereits feature-complete ist, also alle künftigen Funktionen enthält.

Der Download der TP5 kann hier erfolgen:

https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview

Schreibe einen Kommentar...

E-Mail Adressen der Autovervollständigung von Outlook speichern

Eine interessante Frage eines Kollegen brachte mich dazu, heute Folgendem auf den Grund zu gehen: Outlook speichert E-Mail-Adressen, die man in der Vergangenheit benutzt hat, um Mails zu senden, automatisch ab und stellt diese beim Eingeben von Empfänger-Adressen als Autovervollständigung zur Verfügung:

Outlook1

Die Frage war nun, ob man diese Adressen irgendwie als normalen Kontakt benutzen kann.

Und ja, man kann! Die Adressen werden in einer (oder bei mehreren Postfächern) mehreren Dateien im Pfad C:\Users\BENUTZER\AppData\Local\Microsoft\Outlook\RoamCache gespeichert:

Outlook2

Das Tool NK2Edit kann nun diese Einträge lesen und Exportieren:

Outlook3

Es ist für den privaten Einsatz kostenlos, für den kommerziellen Einsatz kann es 14 Tage als Testversion genutzt werden, danach muss eine Lizenz erworben werden.

Das Tool ist hier zu finden:

http://www.nirsoft.net/utils/export_nk2_autocomplete_outlook_contacts.html

2 Comments

Exchange 2010: Viele merkwürdige Fehler und eine fast noch merkwürdigere Lösung

Auf einem produktiven Exchange 2010 SP3 mit aktuellem Patchstand begegnete mir heute folgendes Problem: Der Mailserver war weder über Outlook noch über OWA erreichbar und wenn man sich per RDP angemeldet hat, dann war nahezu nichts möglich, jede Aktion führte zu einem sich ewig drehenden Sanduhr-Symbol. Keines der Systemsteuerungswerkzeuge oder auch nur die Netzwerkwerk-Adapter-Verwaltung ließen sich öffnen.

Um zunächst erst mal mit dem Server arbeiten zu können, hatte ich ihn im abgesicherten Modus gestartet. Da hier aber auch sehr viele Werkzeuge nicht funktionieren, habe ich alle Exchange-Dienste deaktiviert und die Maschine neugestartet. Jetzt konnte man erst mal wieder arbeiten und mit der Fehlersuche beginnen.

Zunächst hatte ich mit ESEUTIL die Datenbank-Files geprüft, hier war aber alles in Ordnung. Netzwerk, DNS und co. sowieso, DC war auch erreichbar, auch Kerberos-Auflösungen waren kein Problem. Da ich am Vorabend das aktuellste Update Rollup 14 eingespielt hatte, hatte ich dieses im Verdacht und hab es wieder deinstalliert – ohne Erfolg. Der Server reagierte wieder so wie vorher.

Im Eventlog war mir vor allem dieser Fehler aufgefallen:

Exch2010_1

(Quelle: MSExchange ADAccess | Ereignis-ID: 2114 | Aufgabenkategorie Topologie)

Außerdem noch dieser Fehler:

Exch2010_2n

(Quelle: MSExchange ADAccess | Ereignis-ID: 2102 | Aufgabenkategorie Topologie)

Dort heisst es: “Keine Antwort von allen verwendeten Domänencontrollerservern”. Dies war merkwürdig, weil sämtliche Arten der von mir getesteten Kommunikation mit dem DC funktionierten tadellos, zur Sicherheit hatte ich noch ein dcdiag gegen den DC laufen lassen – ohne Auffälligkeiten. Zur Sicherheit hatte ich noch das Computerkonto sowie den Secure Channel zurückgesetzt die Mitgliedschaft des Computerkontos in den notwendigen Exchange-Gruppen im AD geprüft.

Symptomatisch war, dass sich der Dienst “Microsoft Exchange Active Directory-Topologie” und auch “Microsoft Exchange-Diensthost” relativ problemlos (wenn auch nur mit längerer Wartezeit) starten ließen, aber die “Microsoft Exchange-Systemaufsicht” ließ sich nicht starten!

Nach etwas Suche im Internet fand ich diverse Hinweise. Der erwarte war das Thema IPv6 – tatsächlich hatte mein Vorgänger dies am Exchange Server abgeschaltet. Also das Häckchen wieder rein:

Exch2010_3

Leider brachte dies – auch nach einem Neustart nichts.

Ein weiterer Hinweis der sich fand, schien mir etwas abwegig, aber da ich kurz vor dem Restore des gesamten Servers stand, habe ich es drauf ankommen lassen und das Computerkonto des Exchange-Servers in die Gruppe der Domänen-Admins aufgenommen. Und tatsächlich, nach einem Neustart des Servers kamen alle Dienste hoch. Damit war mein Kernproblem zwar gelöst, aber ich war mir sicher, die eigentliche Ursache nicht gefunden zu haben, denn es ist IMHO keine Bedingung für Exchange, dass der Server DomAdmin ist. Nach längeren Recherchen fand ich dann den “Übeltäter”:

Eine GPO hatte die Berechtigung für “Manage auditing and security log” (“Verwalten von Überwachungs- und Sicherheitsprotokollen”) auf einen zu kleinen Benutzerkreis festgelegt.

Exch2010_4

Laut diesem Artikel muss hier auch die Gruppe der Exchange-Server mit eingetragen werden – und zwar für die GPO die auf die DCs zielt!

Das war also das recht kleine Problem mit riesiger Auswirkung!

Jeden Tag fiebere ich nun der endgültigen Umstellung auf Office 365 entgegen – dann gehören derartige Probleme wohl der Vergangenheit an.

Schreibe einen Kommentar...

Windows Server / Client: Alle geplanten Tasks per PowerShell auslesen

Insbesondere auf Servern kann es schnell vorkommen, dass hier sehr viele Gepante Tasks („Aufgaben“) vorhanden sind, die aber über viele Ordner im Taskplaner verteilt sind:

TaskPlaner

Wenn man nun einen bestimmten Task sucht oder einfach wissen möchte, was so an Aufgaben alles geplant ist, dann ist die GUI hier leider keine große Hilfe. Aber mit der PowerShell bekommt man schnell das Gewünscht:

1
Get-ScheduledTask | Select URI,@{n="LastRun";e={($_ | Get-ScheduledTaskInfo).LastRunTime}} | Sort-Object LastRun

TaskPlaner2

Viel Spaß damit!

Schreibe einen Kommentar...

Hyper-V-Server / Windows Server Core: Treiber via PowerShell installieren

Wer einen Windows Server 2012 R2 als Core-Server oder den kostenfreien Hyper-V-Server 2012 R2 einsetzt, dem könnte folgendes Problem begegnen: Auf dem Server selber gibt es bekanntlich keine GUI und demnach auch keinen Gerätemanager. Und seit 2012 R2 lässt sich dieser auch nicht remote von einem grafischen Server aus ansprechen!

Was nun also tun, wenn man Treiber installieren/aktualisieren/entfernen will? Dazu möchte ich hier einige Kommandos als Hilfestellung zusammentragen:

 

Installation aller Treiber des aktuellen Verzeichnisses in das Treiber-Repository:

Get-ChildItem -Recurse -Filter *.inf | Select-Object FullName | ForEach-Object {pnputil -a $_.FullName}

Installation eines bestimmten Treibers:

pnputil.exe -i -a C:\Pfad\zum\Treiber.inf

(ACHTUNG: Installiert diesen Treiber für alle „passenden“ Geräte!)

Auflisten aller Treiber im Repository (3rd Party):

pnputil.exe -e

Entfernen eines Treibers aus dem Repository:

pnputil.exe -d oemX.inf (Name der INF-Datei über pnputil -e)

Entfernen aller Treiber aus dem Repository:

1..40 | ForEach-Object {pnputil.exe -d „oem$_.inf“} (Die Zahl 40 muss ausgetauscht werden durch die höchste Zahl aus pnputil -e)

Ermitteln der Hardware-ID der Geräte einer bestimmten Geräteklasse (hier: Netzwerkkarten)

devcon.exe listclass net

Anzeigen des von einem Gerät benutzten Treibers:

devcon.exe driverfiles „@PCI\VEN_8086&DEV_10D3&SUBSYS_040D15D9&REV_00\4&60B4255&0&00E4“

Installation eines bestimmten Treibers für ein bestimmtes Gerät:

devcon.exe /r install C:\Pfad\zum\Treiber.inf „@PCI\VEN_8086&DEV_10D3&SUBSYS_040D15D9&REV_00\4&60B4255&0&00E4“

Entfernen eines konkreten Gerätes (nicht nur der Treiber!):

devcon.exe /r remove „@PCI\VEN_8086&DEV_10D3&SUBSYS_040D15D9&REV_00\4&60B4255&0&00E4“

Nach neuen Geräten suchen:

devcon.exe rescan

 

Für einige Varianten ist DevCon.exe nötig. Siehe dazu hier:

https://msdn.microsoft.com/de-de/library/windows/hardware/ff544707(v=vs.85).aspx

http://www.wintotal.de/tipparchiv/?id=2075

Der Artikel wird künftig weiter ergänzt…

Schreibe einen Kommentar...