Haikos Blog Blog von Haiko Hertes zu allen Themen rund um Microsoft und Datacenter

5Feb/160

SCCM 2012 R2 – E-Mails für Softwareanforderungen (Umfangreicher)

In einem älteren Artikel habe ich mich schon einmal mit der Frage beschäftigt, wie man neue Genehmigungsanforderungen für Software (Anwendungen) in System Center Configuration Manager per Mail an den Admin melden kann.

Was aber, wenn nicht (nur) der Admin eine Mail erhalten soll, sondern z.B. auch der Vorgesetzte des jeweiligen Benutzers, der die Software angefordert hat? Und was ist mit dem Benutzer selbst? Es wäre doch gut, wenn dieser bei Genehmigung/Ablehnung auch informiert wird?!

Das Ganze lässt sich natürlich wunderbar per PowerShell lösen. Damit nun aber nicht ein Prozess o.ä. permanent laufen muss, wäre es sinnvoll, dieses Skript z.B. nur 1x pro Stunde (über den Taskplaner) automatisch laufen zu lassen. In sofern interessieren in jedem Durchlauf des Skriptes auch nur diejenigen Anforderungen, die

  • In der letzten Stunde neu erstellt wurden (“CurrentState” ist 1)
  • In der letzten Stunde abgelehnt wurden (“CurrentState” ist 3)
  • In der letzten Stunde genehmigt wurden (“CurrentState” ist 4)

Aus dieser Überlegung und der Tatsache, dass sich sowohl der Vorgesetzte als auch die Mailadressen aus dem AD auslesen lassen, resultierte dieses einfache Script (Es ist nicht wirklich “schön” geschrieben, aber zumindest rudimentär kommentiert. Für einen produktiven Einsatz wird man es ohnehin nochmal an die eigenen Bedürfnisse anpassen müssen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
$SiteName = "PS0"
$SiteName = "PS0"
$AdminsMail = "helpdesk@kurs.intern"
$Mailserver = "mail.kurs.intern"
$Absender = "SCCM Application Request Admin"
 
$MailAnAdmins = $True
$MailAnVorgesetzten = $True
 
function Send-MyEmail
{
 
    Param(
        [string]$Sender,
        [string]$Empfaenger,
        [string]$Mailserver,
        [string]$Betreff,
        [string]$Mailtext,
        [Switch]$TestOnly
    )
 
    try{
        If(-not $TestOnly)
        {
            Send-MailMessage -From $Sender -To $Empfaenger -Subject $Betreff -Body $Mailtext 
                -SmtpServer $Mailserver -ErrorAction Stop
        }
        else
        {
            Write-Host "E-Mail für '$Empfaenger' von '$Sender' über den Mailserver '$MailServer' `n
                        mit dem Betreff '$Betreff' und dem Text:"
            Write-Host "$Mailtext `n"
 
        }
    }
    catch{
        Write-Debug "Fehler beim Versand der E-Mail über den Mailserver $SmtpServer!"
    }
 
}
 
# PS-Modul für AD lasen
Import-Module ActiveDirectory
 
# PS-Module für SCCM laden
Import-Module "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"
Set-Location "$($SiteName):\"
 
# ApprovalRequests auslesen, die sich in der letzten Stunde geändert haben 
# (Script soll stündlich laufen)
$OffeneRequests = Get-CMApprovalRequest | Where {$_.LastModifiedDate -gt (Get-Date).AddHours(-1)}
 
ForEach($Request in $OffeneRequests)
{
    # Anfordernder Benutzer
    $Benutzer = $Request.User
    $BenutzerLogin = Get-ADUser $($Benutzer.Substring(($Benutzer.IndexOf("\")+1),
                                                       $Benutzer.Length-$Benutzer.IndexOf("\")-1))
    $BenutzerName = ($BenutzerLogin | Get-ADUser).Name
 
    # Anwendung um die es geht
    $Anwendung = $Request.Application
 
    # Neue Anforderung
    If($Request.CurrentState -eq 1)
    {
        # E-Mail an Admin / Helpdeks senden
        If($MailAnAdmins)
        {
            Send-MyEmail -Sender $Absender -Empfaenger $AdminsMail -Mailserver $Mailserver 
                -Betreff "Neue Softwareanforderung von $BenutzerName" -Mailtext "Blabla..." 
                -TestOnly
        }
 
        # E-Mail an Vorgesetzten senden
        If($MailAnVorgesetzten)
        {
            # Vorgesetzter des anfordernden Benutzers
            $Vorgesetzter =  ($BenutzerLogin | Get-ADObject -Properties Manager).Manager | Get-ADUser
            $VorgesetzterMail = (Get-ADObject $Vorgesetzter -Properties mail).Mail
 
            Send-MyEmail -Sender $Absender -Empfaenger $VorgesetzterMail -Mailserver $Mailserver 
                -Betreff "Neue Softwareanforderung von $BenutzerName" -Mailtext "Blabla..." 
                -TestOnly
        }
    }
 
    # Anforderung wurde durch einen Administrator im SCCM genehmigt
    If($Request.CurrentState -eq 4)
    {
 
        # Mail an den anfordernden User senden
        $BenutzerMail = (Get-ADObject $BenutzerLogin -Properties mail).Mail
 
        Send-MyEmail -Sender $Absender -Empfaenger $BenutzerMail -Mailserver $Mailserver 
            -Betreff "Ihre Softwareanforderung für $Anwendung wurde genehmigt" -Mailtext "Blabla..." 
            -TestOnly
    }
 
    # Anforderung wurde durch einen Administrator im SCCM abgelehnt
    If($Request.CurrentState -eq 3)
    {
 
        # Mail an den anfordernden User senden
        $BenutzerMail = (Get-ADObject $BenutzerLogin -Properties mail).Mail
 
        Send-MyEmail -Sender $Absender -Empfaenger $BenutzerMail -Mailserver $Mailserver 
            -Betreff "Ihre Softwareanforderung für $Anwendung wurde abgelehnt" -Mailtext "Blabla..." 
            -TestOnly
    }
}

In der Ausführung sieht das dann so aus:

Approval2

Approval1

Ausführen lässt sich das Skript via Taskplaner dann beispielsweise mit:

powershell.exe -ExecutionPolicy Bypass -file "SCCMMailsFuerApprovalRequests.ps1"

Das Skript lässt sich auch hier herunterladen:

Downloadlink über OneDrive

4Feb/160

SCCM 2012 R2: Elemente nach Excel exportieren

Durch einen Hinweis wurde ich kürzlich auf eine ziemlich praktische Funktion aufmerksam. Stellen wir uns vor, wir brauchen “schnell” alle Geräte mit einer gemeinsamen Eigenschaft oder einfach alle Geräte einer bestimmten Sammlung. Und zwar möglichst in Excel, um diese an Kollegen weitergeben oder weiter verarbeiten zu können. Natürlich kann man nun einen entsprechenden Report erzeugen und dessen Ergebnis in XLS oder CSV abspeichern – aber es geht auch einfacher. Da hier ein Video mehr als viele Worte oder Bilder sagt, habe ich kurzerhand einen kurzen Clip erstellt. Seht selbst!

Hier das Ganze nochmal als direkter Link zu YouTube: https://www.youtube.com/watch?v=CANVBrIEuGE

In Kurzform und wenigen Worten: Man kann die Elemente (bspw. Geräte) markieren (geht mit STRG+A, oder auch mit STRG/SHIFT und Mausklick), mit STRG+C kopieren und dann eben mit STRG+V in Excel einfügen…

27Jan/160

SCCM: Neue Version 1601 released

Wenn man auch noch nicht viel darüber im Internet findet, so kann man aber auf der Webseite des gut informierten SCCM-MVP Niall C. Brady nachlesen, dass heute die Technical Preview vom System Center Configuration Manager in Version 1601 erschienen ist:

https://www.niallbrady.com/2016/01/27/update-1601-now-available-in-system-center-configuration-manager-technical-preview/

Details werde ich in den kommenden Tagen noch ergänzen…

19Jan/162

SCCM: Verwaltung von Clients in nicht-vertrauten Domänen und in Workgroups

Am leichtesten ist es für den Administrator natürlich, wenn alle verwalteten Geräte in der selben Domäne stehen. Aber der System Center Configuration Manager ist auch in der Lage, mit Geräten umzugehen, die außerhalb der eigenen Gesamtstruktur (“Forest”) in einer nicht-vertrauten Domäne (“Non-trusted Domain”) oder sogar nur in einer Arbeitsgruppe (“Workgroup”) stehen. Dafür sind ein paar Voraussetzungen zu erfüllen und ein paar Besonderheiten bei der Einrichtung zu beachten.

Voraussetzungen:

  • Geräte der nicht-vertrauten Domäne (“nvD”) oder der Workgroup (“WG”) können den gewünschten Verwaltungspunkt (“Management Point”, MP) per DNS auflösen
  • Verwaltete Geräte in der nvD und/oder der WG können von den Standortsystemservern (“Site Server”) des SCCMs aufgelöst werden (bei nvD zusätzlich der Domänen-Name der nvD)
  • Das Konto der Client-Push-Installation hat ausreichend Rechte auf den Zielcomputern
    • Bei nvD ist ein Domänen-Account der nvD nötig, der auf den Clients lokale Admin-Rechte hat
    • Bei WG-Computern ist ein lokales Admin-Konto nötig, dass auf jedem WG-Computer gleich konfiguriert ist (Name / Passwort)

Um nun den Configuration Manager Client auf einem Gerät in einer Workgroup hinzuzufügen, kann die Push-Installation verwendet werden. Dazu muss a) die Firewall des PCs entsprechend geöffnet werden und b) ein passendes (lokales!) Konto als Push-Installations-Konto hinterlegt werden (Mehrere Konten möglich!):

wg1

Außerdem ist es notwendig, ein passendes Netzwerkzugriffskonto (“Network Access Account”) im SCCM zu hinterlegen, denn das Computerkonto des WG-Systems hat ja keine Leserechte auf den Site-Servern der Domäne:

wg1

Nun kann der Client mittels Pushinstallation (oder auch händisch!) verteilt werden und Software und co. auf den Arbeitsgruppen-PCs bereitgestellt werden.

Für die Verwaltung von Computern in einer nicht-vertrauten Domäne (nvD) muss zunächst die Gesamtstruktur der nvD bekannt gemacht werden:

nvd1

nvd2

Außerdem muss die “Active Directory Systemermittlung” um die externe Domäne (nvD) ergänzt werden:

nvd3

nvd4

Damit können denn Geräte der externen Domäne gefunden werden – und später per Push-Installation (siehe oben) mit dem Client betankt und somit verwaltet werden.

Hinweis: Für den Aufbau einer Secondary Site in einer externen Domäne ist eine bidirektionale Vertrauensstellung notwendig! (Two-Way-Trust)

4Dez/150

System Center Configuration Manager 1511 (vNext) released!

In der Nacht von gestern auf heute wurde der “finale” Build des SCCM der neuen Generation released. Die neue Version heisst nur noch “1511”, was für Jahr und Monat des Release steht…

sccm1511_1

Eine offizielle Testversion scheint es aktuell noch nicht zu geben, nur den Download über die MSDN.

26Nov/150

System Center: Technical Preview 4 steht zur Verfügung

Wie ich bereits vor einigen Tagen angekündigt hatte steht die Technical Preview 4 vom System Center jetzt zur Verfügung.

Sie kann entweder über die MSDN…

sctp4_1

…oder das Microsoft Evaluation Center

sctp4_2

heruntergeladen werden.

Das Evaluation Center ist hier zu finden: https://technet.microsoft.com/de-de/evalcenter/bb291020.aspx 

Viel Spaß damit!

20Nov/150

Windows Server 2016 – Technical Preview 4

Seit ein paar Stunden ist die TP4 des künftigen Windows Server 2016 für die Öffentlichkeit verfügbar. Der Download kann u.a. über die MSDN oder das Eval-Center erfolgen:

https://technet.microsoft.com/de-de/evalcenter/dn781243.aspx

Eine der großen neu verfügbaren Funktionen ist “Hyper-V Container”. Damit das funktionieren kann, muss die Nested Virtualization möglich sein, die bereits seit kurzem in Windows 10 (Fast Ring) verfügbar ist.

Weitere Informationen auf diesem Blog-Post des Lead Program Managers des Windows Server Programms:

http://blogs.technet.com/b/virtualization/archive/2015/11/19/announcing-the-release-of-hyper-v-containers-in-windows-server-2016-technical-preview-4.aspx

Weiterhin werden heute TP4-Releases der System Center Produkte erwartet. Es bleibt also spannend!

27Okt/150

SCCM 2012 R2 / 2016: Übersicht meiner HowTo’s und Videos

Da ich in den letzten Monaten immer wieder Artikel und Videos verschiedenen Themen des SCCM geschrieben bzw. produziert habe, möchte ich diese hier gerne übersichtlich verknüpfen und diesen Artikel auch bei Bedarf künftig aktualisieren.

Das sind sie also nun, meine SCCM-Artikel und Videos:

 

Bezeichnung des Artikels / Videos Typ
Installation des SCCM 2012 R2 in einer Single-Server-Lösung Video
Installation des SCCM 2016 TP2 inkl. Herstellen der Voraussetzungen Video
Download der Voraussetzungsdateien / Prerequisite Files von einem anderen Server, um diese dann für einen künftigen SCCM-Server ohne Internetzugang bereitzustellen Artikel
Grundkonfiguration des SCCM 2016 TP2 Video
Wie man mit dem SCCM 2012 R2 Software am Beispiel von Office 2013 auf den Endgeräten ausrollt Artikel
Wie man neue Genehmigungsanforderungen für Software im SCCM 2012 R2 per E-Mail verschickt Artikel
Vereinfachte Deinstallation von Anwendungen in SCCM 2012 R2 Artikel
Einrichtung und Nutzung der Betriebssystembereitstellung / Operating-System-Deployment (OSD) im SCCM 2012 R2 Video
Wie man neben dem PXE von SCCM 2012 R2 noch einen zweiten PXE- / WSUS-Server im Netzwerk parallel betreibt Artikel
Wie beseitigt man den Fehler 0x80070002 während der Betriebssystembereitstellung? Artikel
Logfile für OSD beim SCCM 2012 R2 vergrößern Artikel
Erhöhen des Timeouts für den Neustart nach Fehlern während einer OSD-Installation mit SCCM 2012 R2 Artikel
Verteilen von 3rd-Party-Updates mit Hilfe von System Center Update Publisher (SCUP) und SCCM 2012 R2 Artikel
Wie man Content des SCCM 2012 R2 statt über Netzwerk beispielsweise über USB-Datenträger zu den DPs bekommt (Vorabbereitgestellte Inhalte / Content Prestaging) Artikel
Inhalt des DP (SCCMContenLib) auf ein anderes Laufwerk verschieben Artikel
Hinzufügen von Linux-Clients zu einer SCCM 2012 R2 Umgebung inkl. Installation des Agents Artikel
PowerShell-Parser für das Ergebnis-Log einer OSD Artikel
PowerShell-Skript, um zentral herausfinden zu können, für welche TaskSequenzen welche Pakete auf welchen Verteilungspunkten (DP) fehlen Artikel

Letzter Stand der Aktualisierung: 27.10.2015

Viel Spaß damit!

20Okt/150

SCCM 2012 R2: Server ohne Internet / Download der Prerequiste-Files

Da ich heute im SCCM-Kurs danach gefragt wurde, und auch länger nichts mehr geschrieben habe, heute ein kurzer Artikel aus der SCCM-Welt…

Während des Setups vom System Center Configuration Manager 2012 bzw. 2012 R2 müssen einige Prerequisite-Files heruntergeladen werden:

setupdl0

Diese Dateien umfassen u.a. Sprachdateien, Silverlight, SQL Express und andere “Hilfsdateien” die der SCCM für sich oder seine Clients benötigt:

setupdl0a

Alternativ kann man umschalten auf “bereits heruntergeladene Dateien”. Dies ist insbesondere dann sinnvoll, wenn der künftige Standortserver keinen Internetzugang hat. Doch woher kommen diese Dateien dann? Sicher, man könnte sich auf einem anderen Server MIT Internetzugang soweit durch das Setup klicken, dass man dort die Dateien herunterladen kann. Was aber, wenn man KEINEN Server mit Internetzugang hat?

Dafür gibt es eine Lösung: SetupDL.exe!

Diese Anwendung befindet sich auf der SCCM-DVD in SMSSETUP\BIN\x64: (Mit SHIFT-RECHTSKLICK kann man sich “den Pfad kopieren”)

setupdl1

Entweder kann die Anwendung per Doppelklick…

setupdl3

… oder per Kommandozeile gestartet werden:

setupdl4

Durch Angabe eines Zielpfades beginnt der Download der Dateien (ca. 650MB):

setupdl5

Anschließend kann man diese Dateien für den künftigen SCCM-Siteserver zur Verfügung stellen…

10Jul/152

SCCM 2012 R2: Wie man den Configuration Manager installiert

Ich habe euch ein Video erstellt, in dem ihr sehen könnt wie ihr:

  1. die Voraussetzungen für eine SCCM-Installation (inklusive SQL-Server) schafft und
  2. den System Center Configuration Manager 2012 R2 installiert.

Das Ganze zeige ich am Beispiel einer Single-Server-Lösung für eine Stand-alone Primary Site, lässt sich aber auf viele andere Szenarien übertragen.

 

Viel Spaß mit dem Video!