Blog

SCCM(1910) Betriebssystemabbild Windows 10 (1909) nicht aktualisieren!

SCCM(1910) Betriebssystemabbild Windows 10 (1909) nicht aktualisieren!

Schmerzlich durfte ich lernen, dass 2020 herausgegebene Updates ins Abbild integriert dazu führen, dass Tasksequenzen im Abschnitt „Windows und ConfigMgr einrichten“ hängen bleiben. Da gleichzeitig Arbeiten an der CA und den Gruppenrichtlinien statt gefunden hatten und erst Tage nach dem Integrieren der Updates ein neuer Rechner installiert wurde, war die Fehlersuche… erfreulich.

Ich vermute, dass das Problem mit Zertifikatsanforderungen zusammen hängt und bei reinen HTTP Installationen von SCCM nicht auftritt.

Erstellen eines neuen Abbildes und integrieren aller Updates bis einschließlich Dezember 2019 führte dazu, dass es wieder einwandfrei funktioniert.

In Windows 1803 gab es ein ähnliches Problem, das erst in 1809 behoben wurde; daher heißt die Lösung vermutlich „Warten auf 2004“. Damals kommunizierten meine Clients im Testbetrieb noch via HTTP statt HTTPS und waren nicht betroffen.

###EDIT### Problem taucht im März Updates nicht mehr auf; nur die Februar Updates machen die Probleme

Die große Dame hats zerrissen

Die große Dame hats zerrissen

Ich hatte auf dem Weg zur Arbeit etwas Rehschlag

Das Reh konnte ich nicht mehr auf Schadensersatz verklagen, da es unter akutem Tod durch Sterben litt.

Fährt man nun recht seltene Motorräder stellt man fest, dass europaweit genau eine linke Verkleidung in Rot zu bekommen ist und Front… Fehlanzeige 🙁

Also improvisiert. Dichlormethan ist heutzutage nicht mehr so einfach zu bekommen, deshalb hat der gute Hausmann immer einen Liter vorrätig im Keller – es ist kein Kleber sondern ein Lösungsmittel. (Nicht, und ich meine wirklich nicht!!! einatmen – Atemschutzmasken sind wirkungslos UND nicht erhitzen (ergibt Phosgen, wurde mal im 1. Weltkrieg auf Feinde verschossen, ist durch die Chemiewaffenkonvention geächtet und macht vermutlich leichte Kopfschmerzen). Das Teil also einmal mit Tape fixiert und den Riss mit Dichlormethan bepinselt -> Verkleidung wird „flüssig“ und ist hinterher wieder ein Stück

Das fehlende Stück wurde von hinten mit Glasfasermatte und 2K Harz (Bootsabteilung Baumarkt) nachgebildet und Stück für Stück mit Filler eingeschliffen.

Vor dem Aufbringen von Filler empfielt sich 320er Papier, vor dem eigentlichen Lack 600er, vor dem Klarlack 800er

Jetzt ist sie halt schwarz, da das wesentlich einfacher zu lackieren ist als silber, Anfänger und Hobbymaler wie ich sollten NIEMALS selbst Silber lackieren.

Studium Medieninformatik

Studium Medieninformatik

***Das Datum dieses Beitrags scheint uralt, er wird aber immer wieder bearbeitet und unten angehängt – schrollen lohnt also ggf. 🙂 ***

Mit dem Studieren habe ich mich lange nicht beschäftigt.
Mit Realschulabschluss hielt ich das für außer Reichweite und die Aussicht darauf, nochmal eine Fachhochschulreife oder Abitur zu machen schien mir aufgrund des riesigen Anteils unnützen Wissens zum Auswendig lernen wenig reizvoll.

Die zur „Fachhochschulreife Technik“ notwendigen Unterrichtsfächer versprechen viel Langeweile und wenig Brauchbares:

  • Deutsch
  • Politik
  • Englisch
  • Mathematik
  • Physik
  • Chemie
  • Technik(?)
  • Religion

Bei der Technischen Hochschule Lübeck habe ich dann die Möglichkeit des „Probestudiums“ gefunden.
Zitat der Webseite: „…Personen ohne schulische Hochschulzugangsberechtigung, aber mit einer qualifiziert abgeschlossenen Berufsausbildung und einer Berufstätigkeit können sich für einen Studiengang bewerben….

Das klang doch schonmal besser; für ein Informatikstudium kann man sich auf diesem Wege also die Lernfächer Deutsch, Politik, Chemie, Religion in Gänze sparen, der Rest wohl ist mehr oder minder in Anteilen im Studium enthalten.

Natürlich hat die Sache auch einen Haken:
Als „Probestudent“ muss man eine Mindestleistung erbringen um nicht rausgeworfen zu werden.

Um vom Probestudenten zum vollwertigen Studenten zu werden muss man:

  • Nach zwei Semestern alle Module des ersten Semesters
    oder
  • Nach drei Semestern alle Module des ersten und die Hälfte des zweiten Semesters
    oder
  • Nach vier Semestern alle Module des ersten und zweiten Semesters
    bestanden haben

Um nicht vorzeitig raus zu fliegen:

  • Nach zwei Semestern die Hälfte des ersten Semesters
    und
  • Nach drei Semestern alle Module des ersten Semesters
    und
  • Nach vier Semestern alle Module des ersten und zweiten Semesters
    bestanden haben

Hat man vorher schon im EDV-Bereich gearbeitet, sollte das alles kein Problem sein.


Ich habe nach einem Semester alle Module des ersten Semesters mit einem Schnitt von 1,8 bestanden und „hätte durchaus fleißiger sein können“.

Es empfiehlt sich dringend, die Bedingungen des Probestudiums direkt im ersten Semester zu erfüllen, da es definitiv das einfachste Semester ist.

EDV Leute werden eventuell ihren Ohren und Augen nicht trauen wenn es los geht mit „so sieht ein PC aus, wenn wir den Deckel auf machen, ist da folgendes drin“.

Letztlich bringt das erste Semester Anfänger auf den Stand 2. – 3. Lehrjahr Fachinformatiker. Der Unterschied zwischen Studium und Ausbildung scheint hier in erster Linie der höhere Theorieanteil.
Die Ausbildung sagt einem, wie man etwas macht während das Studium eher den Hintergrund – warum ist das so? – erklärt; ansonsten ist die Schnittmenge aber sehr groß.

Wo wir beim Thema Schnittmenge sind gleich zu den Modulen des ersten Semesters:

Worauf einen die Ausbildung überhaupt nicht vorbereitet hat ist „Lineare Algebra“ – Mathe bleibt mein Kryptonit.

1. Semester

Die Module sind:

  1. Computerarchitektur und Betriebssysteme
  2. Einführung Informatik
  3. Grundlagen der Programmierung I
  4. Kommunikation, Führung und Selbstmanagement
  5. Lineare Algebra
  6. Mediendesign I

1. Computerarchitektur und Betriebssysteme enthält vorwiegend Grundlagen

  • Von Neumann Architektur (Hardvard Architektur wird angerissen)
  • Digitale Schaltungen auf einfacher Basis (Aufbau einer Speicherzelle und paar Gatter)
  • Speicherverwaltung (Paging, Swapping, Addressierungsarten)
  • Assemblerprogrammierung (nur Verständnis auf einfacher Ebene)
  • Sonstige Komponenten (DMA, Interrupt, E/A-Geräte, FAT-Dateisystem)
  • Prozesse/Threads/Betriebsmittel/Prozesstabelle, Scheduling
  • Kernel/Usermode

Alles in allem kein Hexenwerk; etwas Lernaufwand sollte man dennoch betreiben (expotentiell zur gewünschten Note), da der zuständige Professor Blaurock echt gut ist was Präsenzen angeht aber vergleichsweise anspruchsvolle Klausuren stellt.

Themen, an die ich mich erinnere, waren von Neumann zeichnen, Umrechnen virtueller in physikalische Speicheradressen, Speicherzellanordnung im FAT-Dateisystem, Scheduling, DMA

Für Bestehen mit 3-4 sollte aber Besuch der wöchentlichen Videokonferenzen und der Präsenzen sowie bearbeiten der Einsendeaufgaben ohne weiteres Lernen ausreichen.

Ich konnte die Klausur fertig nach 80 von 120 Minuten abgeben und nein, es ist weder 3 noch 4. 🙂

2. Einführung Informatik

An sich ein schönes Fach um einen Überblick zu bekommen.
Es schneidet sich mit CauBS und Grundlagen der Programmierung an einigen Stellen.

Folgende Inhalte waren relevant:

  • Umrechnen in Zahlensystemen (binär, hex, oktal)
  • IEEE754 Fließkommazahlen
  • Gerichtete/ungerichtete Graphen
  • Entity-Relationship Diagramm
  • Unified Modeling Language
  • Sortierverfahren (speziell Bubblesort)
  • Einfache Algorythmen

Letztlich war dies alles auch Prüfungsinhalt, die Prüfung war aber sehr einfach und flach gehalten.

Ich habe nach 40 von 120 Minuten abgegeben und volle Punktzahl bekommen.

Für Bestehen mit 2-3 sollte der Besuch der wöchentlichen Videokonferenzen und der Präsenzen sowie bearbeiten der zwei Einsendeaufgaben ohne weiteres Lernen ausreichen.

3. Grundlagen der Programmierung


Ich mag ja nicht so gerne Java – viele, viele Schmerzen mit inkompatiblen Versionen in den letzten 15 Jahren haben mir die Sprache verleidet aber grundsätzlich kann man wohl in jeder Sprache Programmieren lernen.

Der Professor erklärt alles sehr gut und man bekommt einen guten Einblick in die (objektorientierte) Programmierung, ordentliche Formatierung, Kommentare, Javadoc… was man als Hobbyprogrammierer halt so alles falsch macht

Es gibt folgende Lerneinheiten:

  • Die Programmiersprache Java
  • Das erste Java-Programm
  • Attribute, Variablen und Typen
  • Methoden und Konstruktoren
  • Sequenz und Selektion
  • Iteration
  • Paketstrukturen
  • Vererbung
  • Ausnahmen
  • Reihungen
  • Zeichenketten und Aufzählungstypen

Dazu kommen neun Einsendeaufgaben um das Gelernte zu vertiefen.

Die Klausur stellt Professor Heeren und alles, was von ihm kommt, ist gefürchtet – gut vorbereiten 🙂

4. Kommunikation, Führung und Selbstmanagement


Was soll man als „Informatik“ Student dazu sagen?

Ein absolut technikfreies Fach, in dem es um zwischenmenschliche Kommunikation geht.

„Wie kann ich meine Meinung rüber bringen ohne dem anderen zu sagen, was ich von ihm halte“

Verschiedene Führungsstile (Autoritär, Partnerschaftlich, …)

Wie organisiere ich meine Aufgaben?

Im Grunde genommen nur Selbstverständlichkeiten, die einem eh schon bekannt sind, für die man zur Klausur ein paar Fachwörter auswendig lernen darf.

Guckt man sich ein paar Altklausuren an und lernt danach auswendig, kann man das Fach eigentlich ganz gut aussitzen. Für eher technikfixierte Studenten, die die Zusammenarbeit mit Menschen nach Kräften zu vermeiden suchen nicht gerade das spannenste Fach.

5. Lineare Algebra

Ja, … ich und Mathe… es war weniger schlimm als erwartet oder anders: Während das Modul/Script jemanden mit Realschulabschluss im ersten Moment das Wasser in die Augen treibt, hat der Betreuer es geschafft, einem Mathetotalausfall wie mir durch seinen wöchentlichen Unterricht zu einer 2,3 zu verhelfen.

Themen waren

  • Mengenlehre
  • Relationen und Funktionen
  • Aussagenlogik
  • Matrizen
  • Lineare Gleichungssysteme (Gauss)
  • Fehlerkorrigierende Codes
  • Analytische Geometrie (Vektoren)

Mengenlehre und Aussagenlogik waren recht gut zu Verstehen und fingen sogar an Spaß zu machen („Der Obsthändler sagt er hat nur Kirschen im Angebot wenn…“)

Matrizen und Gleichungssysteme gingen auch leicht in den Kopf, mit Vektoren bekannen meine Schwierigkeiten. Die habe ich nur so einigermaßen drauf bekommen aber im Nachhinein kann ich sagen: Zum reinen Bestehen hätte ich mir Vektoren gar nicht ansehen müssen, da über Mengenlehre, Aussagenlogik, Matrizen, Gleichungssysteme (im Vergleich zu Vektoren total easy) genug Punkte zu holen sind.

6. Mediendesign I

Das Modul war eine echte Enttäuschung, da ich davon ausging, hier tatsächlich bisschen Know-How zur Bildbearbeitung und -gestaltung zu bekommen – letztlich war es nur Beschäftigungstherapie ohne Lernwert.

Tatsächlich besteht das Modul aus einem allgemeinen Gestaltungshandbuch wie man es bei Amazon für 15€ kaufen könnte, einem Nachmittag Vortrag und drei Aufgaben „Bastel eine Werbeanzeige“, „Erstelle Briefpapier und Visitenkarten“, „Erstelle einen Flyer für eine Ausstellung“ – jeder mit dem Programm wie er meint und wie er es gut findet.

2. Semester

Die Module sind:

  1. Theoretische Informatik
  2. Relationen und Funktionen
  3. Mensch-Computer-Kommunikation
  4. Mediendesign II
  5. Kommunikationsnetze I
  6. Grundlagen der Programmierung II

 

1. Theoretische Informatik

  • Automaten (Deterministischer endlicher Automat, Nicht…., Kellerautomat)
  • Pumping Lemma
  • Sprachen
  • Grammatiken
  • Turing-Maschine

Das Fach ist hart… es hat im Grunde nichts mit Computern zu tun sondern mit Kullern und Strichen auf Papier.

Grundsätzliches Ziel ist zu ermitteln, ob Probleme der echten Welt Maschinenlösbar sind.

Die Notation ist… Spannend…

Ich habe es recht gut bestanden weil ein absolut großartiger Professor dieses Fach untterichtet hat.

Im echten Leben hat es durchaus meine Denkweise bei der Entwicklung von Lösungen zu Problemen aller Art verbessert – ein Fach, das durchaus das zugehörige Magengeschwür wert ist.

 

2. Relationen und Funktionen

  • Relationen (Verhältnisse) eben (Linkstotal, Rechtstotal, …)
  • Reele Funktionen
  • Grenzwerte
  • Rationale Funktionen
  • Trigonometrische Funktionen

Da ich nach der 10. Klasse kein Mathe mehr hatte, war natürlich alles neu für mich.

Vom Schwierigkeitsgrad her empfand ich es als westentlich einfacher als Lineare Algebra im ersten Semester.

Die Dozenten haben es tatsächlich geschafft, mir Mathe-DAU das so weit einzubläuen, dass ich mit 1,7 bestanden habe.

Wenn man Notizen wie meine im anderen Beitrag geteilten mit in der Klausur hat, sollte man durchaus bestehen können.

Notizen für Klausuren

 

3. Mensch-Computer-Kommunikation

Dieses Modul soll vermitteln wie Anwendungen gestaltet werden müssen damit Benutzer sie gut und gerne verwenden.

Es beinhaltet die Punkte:

  • Gedächnis – wie merkt ein Mensch sich was am besten / wie arbeitet das Gedächnis
  • Wahrnehmung – wie wird etwas als zusammengehörig erkannt
  • Gestaltgesetze
  • Bestimmung der Aufgabe und der Zielgruppe
  • Kontekt in dem Anwendungen verwendet werden
  • Wie handelt der Anwender?
  • … bis hin zu Menschengerechten Arbeit und man sollte Grünpflanzen im Büro haben 🙂

Ich tue mich mit zwischenmenschlichen Modulen gerne etwas schwerer wie auch schon mit KFS aber zum Bestehen reicht letztlich ein paar Stichworte zu lernen und die Einsendeaufgaben rechtzeitig abzugeben.

4. Mediendesign II

Copy und Paste aus MD1: Das Modul war eine echte Enttäuschung, da ich davon ausging, hier tatsächlich bisschen Know-How zur Bildbearbeitung und -gestaltung zu bekommen – letztlich war es nur Beschäftigungstherapie ohne Lernwert

Es beinhaltet die Punkte:

  • Bildaufnahme/Gestaltung
  • Corporate Design
  • (Barierrefreies) Webdesign

Auch hier Copy und Paste:

Tatsächlich besteht das Modul aus einem allgemeinen Gestaltungshandbuch wie man es bei Amazon für 15€ kaufen könnte, einem Nachmittag Vortrag und drei Aufgaben „Mache Werbefotos“, „Gestalte eine Webseite“, „Gestalte eine App“ – jeder mit dem Programm wie er meint und wie er es gut findet.

5. Kommunikationsnetze I

Im Grunde kann man dieses Modul als TCP/IP oder „wie Computer miteinander reden“ beschreiben.

Es beinhaltet die Punkte:

  • Arten von Netzen (LAN, WAN, Ethernet (und ehemals konkurrierende Standards)
  • Hub/Switch/Router
  • OSI-Modell

Das zu beurteilen ist für mich schwierig, da ich seit über 10 Jahren viel mit Netzen arbeite.

Grundsätzlich ist das Modul gut und sinnvoll, jedoch kommt mir der praktisch anwendbare Teil zu kurz was Routing angeht – VLAN, VPN kommen gar nicht ernsthaft vor, während der theoretische Teil unnötig ausführlich durchgekaut wird. Multiplexverfahren etwa sind „gottgegebener“ Standard sowie auch Unterschiede zwischen 802.3 Ethernet und Ethernet II einfach „da sind“ und in der Anwendung keine Rolle spielen, da man damit nicht in Berührung kommt.

Hier wäre ein höherer Fokus auf nützliches Wissen sinnvoll.

6. Grundlagen der Programmierung II

Was soll ich sagen? Mein Kyptonit – erste vergeigte Klausur… mit 48 von 50 nötigen Punkten *Argh*

Es beinhaltet die Punkte:

  • Dateisystemzugriffe
  • Abstrakte Klassen / Interfaces
  • Arraylist
  • JavaFX (und Grafik damit)
  • Ereignisbehandlung und Binding
  • Rekursion
  • XML
  • Listen

Theoretisch wäre die Klausur zu schaffen gewesen – die Online-Konferenzen waren sehr gut aber bei meinem Mathetalent habe ich alle Energie darein gesteckt, für Relationen und Funktionen zu lernen und GDP2 im Sinne von „wird schon gut gehen“ liegen gelassen. Da ich Java ansonsten vermeide wo es nur geht, fehlte die Praxis.

 

…to be continued…

Failovercluster startet nicht

Failovercluster startet nicht

Wenn der Cluster mal hängt, ist es meistens eilig… Blöd dabei: So ein Absturz führt meistens zu einem Checkdisk.

Vermeiden kann man das via:

Get-ClusterResource | where {$_.ResourceType -eq "Physical Disk"} | Set-ClusterParameter -Name DiskRunChkDsk -Value 4 -Verbose

Und schon startet der Cluster in 30 Sekunden statt 30 Stunden 🙂

Rechner einfach an- und ausschalten sowie SCCM Policy aktualisieren

Rechner einfach an- und ausschalten sowie SCCM Policy aktualisieren

Ich habe ein kleines grafisches Powershellprogramm gebaut, mit dem man aus einer per Startparameter definierten Gruppe einzelne Rechner auswählen, starten, stoppen und deren Policy aktualisieren kann.

Das eigentliche Programm ist in der Datei CCM-Erweiterung.ps1

In Zeile 85 muss die Domäne angepasst werden.

Zeile 96 und 97 verweisen auf Computer, auf denen WOL.exe ausgeführt wird (https://www.gammadyne.com/cmdline.htm#wol)

In Zeile 138 kann ein eigenes in base64 koviertiertes Bild eingefügt werden.

Ab Zeile 180-199 werden die Bereiche für den Startparameter definiert.

In Zeile 219 muss der Registrydateipfad angegeben werden – die Reg-Datei muss den Wert für den SCCM-Server enthalten.

 

Es wird gestartet über CCM-Erweiterung-launcher.ps1 -start %PARAMETER%

Die Datei prüft kurz ob der ausführende Benutzer einer der Administratoren ist (bei mir fangen Admins mit dem Präfix adm an) und fordert andernfalls Credentials.

Hier müssen die Pfade in Zeile 6 und 11 angepasst werden.

CCM-Erweiterung

Wake on Lan in verschiedenen VLANs aus SCCM Gruppen

Wake on Lan in verschiedenen VLANs aus SCCM Gruppen

Ich habe das Problem, dass ich Computer in verschiedenen VLANs um 22 Uhr aufwecken muss.

Das klappt mit SCCM Bordmitteln nur bedingt.

Ich habe ein Script erstellt, dass die Mitglieder der betroffenen Gruppe abfragt, in einem zweiten Schritt die Mac-Adresse holt und im dritten Schritt auf zwei Servern, die in unterschiedlichen VLANs Mitglied sind, ein WOL Freeware-Tool ausführt.

https://www.gammadyne.com/cmdline.htm#wol

 

set-executionpolicy -Executionpolicy Bypass -Force
import-module "C:\program files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"
cd THL:
$Geraete=Get-CMDevice -CollectionName "Windows Updates automatisch"|select Name,Status,ResourceID
$ArrayList=[System.Collections.ArrayList]
$datum=get-date
foreach ($Computer in $Geraete){
$Details=Get-CMResource -ResourceID $Computer.ResourceID -Fast
$Befehl="c:\wol\wol.exe "+$Details.MacAddresses
$Befehlsb=[scriptblock]::Create($Befehl)
Write-Host $Computer.Name $Befehl
Invoke-Command -ComputerName wol01-fhl.*.de -ScriptBlock $Befehlsb
Invoke-Command -ComputerName wol02-fhl.*.de -ScriptBlock $Befehlsb
}
Computer wieder ausschalten nach Wake on Lan

Computer wieder ausschalten nach Wake on Lan

Bei SCCM gibt es leider von Haus aus keine schöne Möglichkeit, Rechner, die man per Wake-on-Lan geweckt hat, nach abgeschlossener Installation wieder herunter zu fahren.

Ich habe auf dem SCCM Server ein Script erstellt, das als tägliche 0 Uhr Aufgabe läuft, die „geweckte Gruppe“ abfragt und dann die Rechner herunter fährt, die weniger als 5 Stunden laufen und keine angemeldeten Benutzer haben.

Das Logging funktioniert in dieser Version noch nicht einwandfrei, hatte aber gerade keine Prio, wird irgendwann mal nachgebessert

 

set-executionpolicy -Executionpolicy Bypass -Force
import-module "C:\program files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"
cd THL:

$Geraete=Get-CMDevice -CollectionName "Herunterfahren wenn weniger 5 Stunden on"|select Name,Status
$ArrayList=[System.Collections.ArrayList]
$datum=get-date

foreach ($Computer in $Geraete){

$nein=$null
$LetzterStart = ""
$LS = ""
if (Test-Connection -Computername $Computer.Name -Quiet){
$LetzterStart = (Get-WmiObject Win32_OperatingSystem -ComputerName $Computer.Name).LastBootUpTime
$LS = [Management.ManagementDateTimeConverter]::ToDateTime($LetzterStart)
$Uptime=$LS.AddHours(5)

if ($Uptime -lt $datum)
{
$log = $log + $Computer.Name + "-"+ "Länger on - keine Aktion" + "`r`n"
}
Else
{
Stop-Computer -Computername $Computer.Name -ErrorVariable nein
if($nein -lt 1)
{
$Ergebnis = "Rebootet"
}
Else
{
$Ergebnis = "Benutzer angemeldet"
}
$log = $log + $Computer.Name + "-"+ $Ergebnis + "`r`n"
}
}
}
$log | out-file "c:\log.txt"
Sharepoint in einer Vertrauensstellung – Domainübergreifende Rechte

Sharepoint in einer Vertrauensstellung – Domainübergreifende Rechte

Sharepoint überrascht auch beim Berechtigen von Benutzern aus einer anderen Domäne nicht durch „klappt einfach so“.

Natürlich muss hier per Powershell nachgearbeitet werden – angegeben werden, in welchen Domänen User gesucht werden sollen.

Nach Anpassen und Ausführen des Scripts funktioniert der domänenübergreifende Zugriff.

 

$pp = Get-SPWebApplication https://server3.kollossalfesch.de
$pp.PeoplePickerSettings.SearchActiveDirectoryDomains
$domaenea = New-Object Microsoft.SharePoint.Administration.SPPeoplePickerSearchActiveDirectoryDomain
$domaenea.DomainName = "kollossalfesch.de"
$domaenea.ShortDomainName = "kollossalfesch"
$pp.PeoplePickerSettings.SearchActiveDirectoryDomains.Add($domaenea)
$domaeneb = New-Object Microsoft.SharePoint.Administration.SPPeoplePickerSearchActiveDirectoryDomain
$domaeneb.DomainName = "stein.zone"
$domaeneb.ShortDomainName = "stein"
$pp.PeoplePickerSettings.SearchActiveDirectoryDomains.Add($domaeneb)
$pp.Update()
$ppmgmt = Get-SPWebApplication https://server3.kollossalfesch.de:1111
$ppmgmt.PeoplePickerSettings.SearchActiveDirectoryDomains
$domaenea = New-Object Microsoft.SharePoint.Administration.SPPeoplePickerSearchActiveDirectoryDomain
$domaenea.DomainName = "kollossalfesch.de"
$domaenea.ShortDomainName = "kollossalfesch"
$ppmgmt.PeoplePickerSettings.SearchActiveDirectoryDomains.Add($domaenea)
$domaeneb = New-Object Microsoft.SharePoint.Administration.SPPeoplePickerSearchActiveDirectoryDomain
$domaeneb.DomainName = "stein.zone"
$domaeneb.ShortDomainName = "stein"
$ppmgmt.PeoplePickerSettings.SearchActiveDirectoryDomains.Add($domaeneb)
$ppmgmt.Update()
Nix darf man hier – Backup Operator für Zugriff auf alles in der Powershell

Nix darf man hier – Backup Operator für Zugriff auf alles in der Powershell

Der Zugriff auf servergespeicherte Profilverzeichnisse kann bisweilen lästig sein.

Meine Überlegung war, dass das als Backup Operator doch funktionieren muss, leider hatte die Idee kaum ein anderer weshalb sich da kaum was googlen lies.

Im Technet gibt es ein großartiges Script hierfür

https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc

Jetzt nur noch in der Powershell laden und alles ist erlaubt:

Set-ExecutionPolicy Unrestricted Process
Import-Module .\Set-LHSTokenPrivilege.ps1
Set-LHSTokenPrivilege SeBackupPrivilege
Set-LHSTokenPrivilege SeRestorePrivilege

Set-LHSTokenPrivilege

Bastelprojekt Zeitlupenramen

Bastelprojekt Zeitlupenramen

Kindi und ich haben Mama zum Geburtstag einen Zeitlupenrahmen gebaut.

Abgeguckt haben wir in einem Artikel von Heise, kleinere Änderungen waren 0,15er Messchieberblatt und 1,5k statt 1k Widerstände.

Ebenso musste die Form sich unseren tischlerischen Fähigkeiten geschlagen geben 🙂

Die selbst gewickelten Magnetspulen werden wir vermutlich noch gegen gekaufte tauschen, da leichte Spulengeräusche zu hören sind.

https://www.heise.de/select/make/2018/1/1519701588034425

Installation von SQL Server mit Always on

Installation von SQL Server mit Always on

Zunächst wird ein einfaches Failovercluster aus zwei Servern benötigt.

Eine ausführlichere Version dazu ist in meinen älteren Beiträgen zu Stretched Cluster

Über den Servermanager werden hierzu die Features Failoverclustering, Speicherreplikat sowie zusätzlich für per iSCSI angebundene Laufwerke Multipfad E/A installiert.

Im Failoverclustermanager wird ein Cluster erstellt, das beide Server enthält.

Via weitere Aktionen muss ein Freigabequorum eingebunden werden.

Die Firewall muss via CMD oder Powershell im Admin-Modus konfiguriert werden.

netsh advfirewall firewall add rule name=“SQL Server” dir=in action=allow protocol=TCP localport=1433
netsh advfirewall firewall add rule name=“SQL Server Always On” dir=in action=allow protocol=TCP localport=5022
netsh advfirewall firewall add rule name=“SQL Admin Connection” dir=in action=allow protocol=TCP localport=1434
netsh advfirewall firewall add rule name=“SQL Service Broker” dir=in action=allow protocol=TCP localport=4022
netsh advfirewall firewall add rule name=“SQL Debugger/RPC” dir=in action=allow protocol=TCP localport=135
netsh advfirewall firewall add rule name=“File & Print Sharing Cluster Admin (replication)” dir=in action=allow protocol=UDP localport=137
netsh advfirewall firewall add rule name=“File & Print Sharing (replication)” dir=in action=allow protocol=UDP localport=138
netsh advfirewall firewall add rule name=“Filestream and NETBIOS Session Service (clustering)” dir=in action=allow protocol=TCP localport=139
netsh advfirewall firewall add rule name=“FileStream, SMB (clustering), and File & Print Sharing” dir=in action=allow protocol=TCP localport=445
netsh advfirewall firewall add rule name=“Analysis Services” dir=in action=allow protocol=TCP localport=2383
netsh advfirewall firewall add rule name=“SQL Browser” dir=in action=allow protocol=TCP localport=2382
netsh advfirewall firewall add rule name=“HTTP” dir=in action=allow protocol=TCP localport=80
netsh advfirewall firewall add rule name=“SSL” dir=in action=allow protocol=TCP localport=443
netsh advfirewall firewall add rule name=“SQL Browser” dir=in action=allow protocol=TCP localport=1434
netsh advfirewall firewall add rule name=“ICMP Allow incoming V4 echo request” protocol=icmpv4:8,any dir=in action=allow

Jetzt wird SQL2017 auf dem ersten Server SQL01 installiert.

Dazu wird eine „neue eigenständige SQL-Server-Installation gestartet.

Im Wesentlichen ist es eine „Weiter, Weiter, Fertig“ Installation, es empfiehlt sich aber, die Datenbank auf ein anders Laufwerk zu speichern.

Die Dienste sollten unter einem Domänenfunktionskonto laufen.

Soll Systemcenter auf dem SQL Server laufen, muss die SQL Sortierung noch umgestellt werden – sonst lässt es sich nicht Installieren und eine nachträgliche Änderung ist lästig.

Ich bevorzuge generell „gemischte Authentifizierung“ falls eine Anwendung, die nicht mit AD Anbindung zurechtkommt installiert werden muss. Es sollten auf jeden Fall trotzdem die Windows User gepflegt werden.

Zusätzlich sollten die Computerkonten über Kreuz Mitglied der Administratorengruppe des anderen Clusterpartners sein.

Die Setupkonfigurationsdatei wird zur Installation des anderen Servers gesichert und editiert: C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\Log\20180817_093350\ConfigurationFile.ini

Mittels der Datei kann nun der zweite(weitere) Server ohne manuellen Eingriff installiert werden.

D:\SETUP.EXE /CONFIGURATIONFILE=”C:\SQLInstall\ConfigurationFile.ini” /IAcceptSQLServerLicenseTerms /SQLSVCPASSWORD="<PASSWORD>" /AGTSVCPASSWORD="<PASSWORD>" /sapwd="<PASSWORD>“

Danach wird das SQL Management Studio heruntergeladen und installiert. https://docs.microsoft.com/de-de/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017

Das SQL Managementstudio muss als Administrator geöffnet werden.

Nach Verbinden beider Server werden für beide Server Speichergrenzwerte festgelegt. Diese sollten sich am Bedarf der Anwendungen orientieren.

Auf beiden Servern muss das Always On Häkchen im SQL Server Configuration Manager gesetzt werden.

Jetzt können Verfügbarkeitgruppen eingerichtet werden.

Eine Anwendung mit Datenbank wird auf SQL01 installiert bzw. eine bestehende Datenbank wird portiert.

Nach Einfügen der Datenbank muss der Recoverymode auf Full gesetzt werden.

Nun werden Einstellungen an der Datenbank via „New Query“ im SQL Management Studio vorgenommen. Eventuelle Fehler zeigt die Ausgabe

Use SUSDB;
EXEC sp_changedbowner 'sa'
ALTER DATABASE SUSDB SET TRUSTWORTHY ON;
ALTER DATABASE SUSDB SET HONOR_BROKER_PRIORITY ON;
exec sp_configure 'clr enabled', 1;
EXEC sp_configure 'max text repl size', 2147483647 ;
RECONFIGURE
SET NOCOUNT ON
DECLARE @dbname NVARCHAR(128)
SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()
IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
RAISERROR(N'ERROR: Script is targetting a system database.  It should be targeting the DB you created instead.', 0, 1)
GOTO Branch_Exit;
END ELSE
PRINT N'INFO: Targetted database is ' + @dbname + N'.'
PRINT N'INFO: Running verifications....'
IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
PRINT N'ERROR: CLR is not enabled!'
ELSE
PRINT N'PASS: CLR is enabled.'
DECLARE @repltable TABLE (
name nvarchar(max),
minimum int,
maximum int,
config_value int,
run_value int )
INSERT INTO @repltable
EXEC sp_configure 'max text repl size (B)'
IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
PRINT N'ERROR: Max text repl size is not correct!'
ELSE
PRINT N'PASS: Max text repl size is correct.'
IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
PRINT N'ERROR: Database owner is not sa account!'
ELSE
PRINT N'PASS: Database owner is sa account.'
IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
PRINT N'ERROR: Trustworthy bit is not on!'
ELSE
PRINT N'PASS: Trustworthy bit is on.'
IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
PRINT N'ERROR: Service broker is not enabled!'
ELSE
PRINT N'PASS: Service broker is enabled.'
IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
PRINT N'ERROR: Service broker priority is not set!'
ELSE
PRINT N'PASS: Service broker priority is set.'
PRINT N'Done!'
Branch_Exit:

Nun muss ein Full-Backup ausgeführt werden, damit die AG erstellt werden kann. Das Default Ziel ist hierfür in Ordnung.

Jetzt kann die Availability Group angelegt werden.

Nun wird ein Listener angelegt, über den der SQL Server mit der Anwendung spricht. Er erhält eine andere IP und einen anderen DNS Namen als der eigentliche Server.

Wenn das Dashboard abschließend wie folgt aussieht, hat alles geklappt.

Für fehlende Konfigurationseinstellungen auf SQL02 muss nun ein Failover direkt vom gerade geöffneten Dashboard ausgeführt werden.

Dann wird wieder via „New Query“ auf dem anderen Server die Konfiguration ausgeführt.

Use SUSDB;
EXEC sp_changedbowner 'sa'
ALTER DATABASE SUSDB SET TRUSTWORTHY ON;
ALTER DATABASE SUSDB SET HONOR_BROKER_PRIORITY ON;
exec sp_configure 'clr enabled', 1;
EXEC sp_configure 'max text repl size', 2147483647 ;
RECONFIGURE

Nun werden dem SQL Dienstkonto via ADSIEDIT auf dem DC SPNs hinzugefügt

Umziehen von Diensten in die AGs

Wie Dienste in AGs umgezogen werden, ist anwendungsspezifisch.

z.B. in WSUS muss ein Registry Key geändert werden.

Um System Center Configuration Manager (SCCM) in eine Availability Group umziehen zu können, muss im SQL Management Studio die AG der Datenbank auf manuellen Failover und „Readable Secondary“ umgestellt werden. Letzteres ist ein Enterprise Feature ohne das sich SCCM weigert, die Datenbank in eine AG zu überführen. SCCM kann somit nur mit SQL Enterprise in einer AG genutzt werden. Nach Migration kann die Datenbank wieder auf automatischen Failover umgestellt werden

Die Datenbank wird im Systemcenter durch Aufruf des Setups aus dem Programmverzeichnis geschwenkt.

C:\Program Files\Microsoft Configuration Manager\bin\X64\Setup.exe

Patchday-Hölle 07-2018

Patchday-Hölle 07-2018

Der Patchday hat mir einen Exchangeserver zerfräst.

Ich habe dann irgendwann herausgefunden, dass sich auch der IIS komisch verhält (hing auf „wird beendet“)

Auch das Deinstallieren der Updates half nicht, der IIS blieb kaputt

Microsoft hat hierfür einen seit heute verfügbaren Reparaturpatch veröffentlicht – installieren, glücklich sein.

https://support.microsoft.com/en-us/help/4345424/improvements-and-fixes-windows-8-1-and-server-2012-r2

Seit Windows 10 1803 stürzt Paperport ab und startet nicht mehr

Seit Windows 10 1803 stürzt Paperport ab und startet nicht mehr

Und auf einmal kam nur noch das Paperport-Startlogo… und dann nix mehr…

Deinstallieren, Dateien und Registryschlüssel manuell bereinigen, dann neu installieren… alles half nicht.

Lösung: Wenn Firefox der Default-Browser ist, wird er direkt bei der Installation in einem Registry Key hinterlegt.

Ersetzt man „Mozilla Firefox“ durch „none“ ist schlagartig wieder alles wölkchen 🙂

 

Dateiserver… hochverfügbar und sicher

Dateiserver… hochverfügbar und sicher

Dateiserver kennen wir… Rechtsklick, Freigabe, fertig…

Das kann auch meine Mama – spannend wird es wenn die Dateien verfügbar bleiben sollen wenn ich meinen Serverraum anzünde… oder Updates installiere und neu starte.

Ich finde hier eine Kombination aus dem klassischen Windows-Failovercluster und Storage Replica echt großartig.

Der Hauptzweck des Failoverclusters ist Hochverfügbarkeit – beide (oder mehr) Server teilen sich ein iSCSI (oder Fiberchannel, FCoE, …) Speicher und stellen diesen über einen gemeinsamen vituellen Servernamen zur Verfügung.

Der Hauptzweck von Storage Replica ist einen passiven Backupspiegel zu haben (ausgenommen Stretched Cluster)

Der Stretched Cluster traue ich noch nicht ganz über den Weg, ich habe gerne die Kontrolle darüber, dass es nur einen aktiven Datenpfad gibt, der von Hand geschwenkt wird. Das Risiko, A und B könnten auseinanderlaufen macht mich doch zu unruhig.

Ist also Hochverfügbarkeit nicht erforderlich und man möchte nur auf einen anderen Standort replizieren, wäre die Server zu Server Replikation der richtige Weg; spielt Hochverfügbarkeit eine Rolle bitte bei Schritt 2 fortfahren und die Mutigen, die es Stretchen wollen… ab zur 3:

 

1. Server zu Server Replikation

 

Nachteil: Failover relativ aufwendig, somit monatliche Probleme beim Patchen

Beide Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 3 Volumes pro Server benötigt:

  • Betriebssystem
  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher

Zuerst muss via

  • Diskpart
  • List disk
  • Select disk 1
  • Create partition msr size=128
  • Select disk 2
  • Create partition msr size=128
  • Exit

Auf beiden Servern eine MSR Partition angelegt werden, danach kann via „compmgmt.msc“ ganz normal die Partitionierung vorgenommen werden.

Ob ReFS oder NTFS verwendet wird ist abhängig vom Einsatzzweck; beides ist möglich.

Die Rolle Dateiserver und das Feature Speicherreplikat müssen über den Servermanager installiert werden:

Folgende Dienste bzw. Ports müssen in der Firewall freigegeben werden:

  • ICMP
  • SMB- Ports 445 5445
  • Windows Remoteverwaltung Port 5985

Dies kann via CMD mit folgenden Befehlen durchgeführt werden:

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (SMB eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe über SMBDirect (iWARP eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung - ICMPv4 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung – ICMPv6 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name=" Windows-Remoteverwaltung (HTTP eingehend)" new enable=yes profile=domain remoteip=any

 

Jetzt wird die Topologie darauf getestet, ob die Replikation eingerichtet werden kann


Test-SRTopology -SourceComputerName fs01-tf -SourceVolumeName M: -SourceLogVolumeName N: -DestinationComputerName fs02-tf -DestinationVolumeName M: -DestinationLogVolumeName N: -DurationInMinutes 30 -ResultPath c:\temp

 

Alle Test sollten jetzt erfolgreich abgeschlossen werden

Dann kann die tatsächliche Partnerschaft eingerichtet werden – das Laufwerk geht auf dem Zielserver offline:

New-SRPartnership -SourceComputerName fs01-tf -SourceRGName rg01 -SourceVolumeName M: -SourceLogVolumeName N: -DestinationComputerName fs02-tf -DestinationRGName rg02 -DestinationVolumeName M: -DestinationLogVolumeName N:

 

Failover

Der Failover kann nur manuell ausgelöst werden und wird durch Schwenken der Partnerschaftsquelle ausgelöst; daraufhin geht das Laufwerk auf dem Zielserver online. Das DFS Ziel muss ebenfalls manuell angepasst werden

Set-SRPartnership -NewSourceComputerName fs02-tf -SourceRGName rg002 -DestinationComputerName fs01-tf -DestinationRGName rg001

Wenn beide Seiten wieder online sind muss einige Minuten gewartet und auf beiden Seiten nochmals ein Befehl ausgeführt werden.

Set-SRPartnership -NewSourceComputerName fs02-tf -SourceRGName rg002 -DestinationComputerName fs01-tf -DestinationRGName rg001

Mit get-srgroup muss auf beiden Seiten die korrekte Funktion geprüft werden, danach kann zurückgeschwenkt werden.

Set-SRPartnership -NewSourceComputerName fs01-tf -SourceRGName rg001 -DestinationComputerName fs02-tf -DestinationRGName rg002

2. Cluster zu Cluster Replikation

 

Für Testzwecke wurde als iSCSI Host ein Windows Server verwendet. In Wirklichkeit sollte an dieser Stelle das tatsächliche Storage-System stehen.

Hierzu muss die Rolle iSCSI Zielserver installiert werden.

Danach können iSCSI Volumes für die anderen Server im Server-Manager angelegt werden.

Pro Servercluster werden zwei Volumes benötigt. Im Echtbetrieb sollte der iSCSI Host des zweiten Clusters nicht der gleiche sein wie beim ersten Cluster – sonst wäre ja der Sinn der Replikation nicht mehr gegeben – für einen Test spielt es aber keine Rolle wo die Daten liegen.

 

Es werden vier Fileserver benötigt; alle Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 3 Volumes pro Cluster benötigt, die per iSCSI angebunden werden:

  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher
  • Ein Quorum

Der Einfachheit halber werden alle Fileserver dem Servermanager des ersten Fileservers hinzugefügt.

Auf allen vier Servern müssen die Rolle Dateiserver und die Features Failoverclustering und Speicherreplikat installiert werden.

Wie bei der Einzelserver-Replikation müssen die Firewallports geöffnet werden (funktioniert nur im cmd, nicht in Powershell):

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (SMB eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe über SMBDirect (iWARP eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung - ICMPv4 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Datei- und Druckerfreigabe (Echoanforderung – ICMPv6 eingehend)" new enable=yes profile=any remoteip=any

netsh advfirewall firewall set rule name="Windows-Remoteverwaltung (HTTP eingehend)" new enable=yes profile=domain remoteip=any

 

Nun müssen über den „Failovercluster-Manager“ zwei Cluster erstellt werden:

 

Da es beim Clustermanager nicht möglich ist, IPv6 Cluster-IPs zu vergeben, muss dies via Powershell geschehen.

Add-ClusterResource -Name “IPv6 Cluster Address” -ResourceType “IPv6 Address” -Group “Clustergruppe”

Get-ClusterResource "IPv6 Cluster Address" | Set-ClusterParameter -Multiple @{"Network"="Clusternetzwerk 1";"Address"= "2001:638:707:403::159";"PrefixLength"=64}

Stop-ClusterResource “Clustername”

Set-ClusterResourceDependency “Clustername” “[Ipv6 Cluster Address]”

Start-ClusterResource “Clustername”

 

Nun müssen die Laufwerke in der Datenträgerverwaltung online geschaltet und GPT initialisiert werden. Das zukünftige Clusterquorum muss mit einer NTFS formatierten Partition versehen werden.

Die anderen Festplatten können auch mit ReFS verwendet werden.

 

Danach können sie im Failovercluster eingefügt werden.

Jetzt kann das Quorum auf beiden Clustern konfiguriert werden.

 

Nur wird die Dateiserverrolle hinzugefügt:

 

Das Datenvolume muss „zu den freigegebenen Clustervolumes“ hinzugefügt werden, das Protokollvolume muss „verfügbarer Speicher“ bleiben.

 

Jetzt kann eine Freigabe angelegt werden.

 

 

Nun kann die Cluster zu Cluster Replikation konfiguriert werden.

Die Clusterserver müssen vorab auf die jeweils anderen Cluster berechtigt werden.

Grant-SRAccess -ComputerName FS01-tf -Cluster fscluster02-tf

Grant-SRAccess -ComputerName FS02-tf -Cluster fscluster02-tf

Grant-SRAccess -ComputerName FS03-tf -Cluster fscluster-tf

Grant-SRAccess -ComputerName FS04-tf -Cluster fscluster-tf

Grant-SRAccess -ComputerName fscluster-tf -Cluster fscluster-tf02

Grant-SRAccess -ComputerName fscluster-tf02 -Cluster fscluster-tf

Grant-ClusterAccess –user FS01-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FS02-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FS03-tf$ –Full –Cluster fscluster-tf

Grant-ClusterAccess –user FS04-tf$ –Full –Cluster fscluster-tf

Grant-ClusterAccess –user FScluster-tf$ –Full –Cluster fscluster02-tf

Grant-ClusterAccess –user FScluster02-tf$ –Full –Cluster fscluster-tf

 

Folgender Befehl aktiviert die Replikation

New-SRPartnership -SourceComputerName fscluster-tf -SourceRGName rg01 -SourceVolumeName C:\ClusterStorage\Volume1 -SourceLogVolumeName n: -DestinationComputerName fscluster02-tf -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\Volume1 -DestinationLogVolumeName n:

 

Failover

Der Failover kann nur manuell ausgelöst werden und wird durch Schwenken der Partnerschaftsquelle ausgelöst; daraufhin geht das Laufwerk auf dem Zielserver online. Das DFS Ziel muss ebenfalls manuell angepasst werden

Set-SRPartnership -NewSourceComputerName fscluster02-tf -SourceRGName rg02 -DestinationComputerName fscluster-tf -DestinationRGName rg01

 

Wenn beide Seiten wieder online sind muss einige Minuten gewartet und auf beiden Seiten nochmals ein Befehl ausgeführt werden.

Set-SRPartnership -NewSourceComputerName fscluster02-tf -SourceRGName rg02 -DestinationComputerName fscluster-tf -DestinationRGName rg01

 

Mit get-srgroup muss auf beiden Seiten die korrekte Funktion geprüft werden, danach kann zurückgeschwenkt werden.

Set-SRPartnership -NewSourceComputerName fscluster-tf -SourceRGName rg01 -DestinationComputerName fscluster02-tf -DestinationRGName rg02

 

3. Stretched Cluster

 

Beim Stretched Cluster wird nur ein Cluster geblildet, das die Server 1-4 enthält.

Es werden vier Fileserver benötigt; alle Server müssen mit Windows 2016 installiert und vollständig gepatcht sein.

Es werden 2 Volumes pro Clusterseite benötigt, die per iSCSI angebunden werden:

  • Daten (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite)
  • Protokoll (GPT initialisiert, selbe Größe, Buchstabe und Label wie Gegenseite) – Microsoft empfiehlt hierfür schnellen Flash-Speicher

Den Servern FS01 und FS02 steht ein gemeinsamer Speicher zur Verfügung während den Servern FS03 und FS04 ein anderer gemeinsamer Speicher zur Verfügung steht.

 

Zunächst müssen den Servern per Powershell Standorte zugewiesen werden

New-ClusterFaultDomain -Name Seminar -Type Site -Description "Primary" -Location "Seminargebaeude" 

New-ClusterFaultDomain -Name Haus18 -Type Site -Description "Secondary" -Location "Haus18" 

Set-ClusterFaultDomain -Name fs01-tf -Parent Seminar 

Set-ClusterFaultDomain -Name fs02-tf -Parent Seminar 

Set-ClusterFaultDomain -Name fs03-tf -Parent Haus18 

Set-ClusterFaultDomain -Name fs04-tf -Parent Haus18 

(Get-Cluster).PreferredSite="Seminar"

 

Dann werden die verschiedenen Speicher angebunden.

Dass hier einige Offline erscheinen, weil der Besitzer sie nicht erreichen kann, ist in Ordnung; das in diesem Bespiel vorhandene Quorum wird nicht benötigt, da die Verwendung eines Freigabequorums empfohlen wird; dieses sollte auf einem dritten Speicher liegen.

Das Datenvolume muss zu den freigegebenen Clustervolumes hinzugefügt werden, danach kann die Replikation aktiviert werden.

Es werden automatisch die richtigen Laufwerke vorgeschlagen und müssen nur noch angehakt und bestätigt werden.

 

Wenn schon ein Backup der Quelldateien auf dem Ziel vorhanden ist, kann Seeding ausgewählt werden, was die Replikationszeit verkürzt.

Die Synchronisation sollte synchron erfolgen.

Schreibreihenfolge aktivieren verringert die Wahrscheinlichkeit inkonsistenter Daten, für einfache Dateifreigaben sollte die Konfiguration „Höchste Leistung“ keine Probleme bereiten.

 

Nach langwieriger Synchronisation können dann auf dem Cluster eine Dateiserverrolle und Freigaben erstellt werden.

Nur wird die Dateiserverrolle hinzugefügt:

Wenn beim Erzeugen von Freigaben ein Fehler auftritt hilft zumeist abwarten und später nochmal versuchen

Die Freigabe sollte über den Clusterassistenten erstellt werden.

Failover

Der Failover geschieht allein durch Abwesenheit von Servern einer Seite.

Fällt die Zielseite weg gibt es nichts zu beachten; die Quelle läuft weiter.

Fällt die Quellseite weg bzw. soll die Quellseite abgeschaltet werden, ist es erforderlich, dass zunächst die Replikation fehlerfrei abgeschlossen wird.

Ist die Replikation nicht im Status „kontinuierliche Synchronisation“ übernimmt das Ziel nicht die Clustervolumes wenn die Quelle wegbricht.

Fröhliches Clustern 🙂

Die Ziege wird neu…

Die Ziege wird neu…

Die gute alte Erna aka „Die Ziege“ ist 21 geworden.

Ihre Schulterpartie – die gespendete Gabel einer FZR 600 nun schon knappe 30.

Klar, dass da bei ständigem Winterbetrieb alles irgendwann aufgibt.

So entstand der heroische Plan „alles entrosten und neu lackieren“

Das wurde schwieriger als gedacht – manch Schraubenkopf existierte nur noch als Rostklumpen und wurde gleich ausgebohrt oder vorher noch abgerissen, der Kühlerlüfter fiel ab weil… viel war nicht mehr da von der Welle.

Nicht reparable ersetzte Teile:

– Kühler nebst Lüfter

– Bremsschläuche

– Tacho und Anzeigen

– Klumpen Rost formerly known as „the Hupe“

– Bremszangendichtungen

– Sackweise Schrauben

Zerstörtes Werkzeug durch feste Schrauben

– 8er Inbus abgerissen

– Linksausdreher abgerissen

– Linksausdreherhalter durchgebrochen

 

Nachdem denn doch alles mit kleineren Verlusten auseinander ging gabs etwas Farbe – diesmal fröhliches Schwarz

Da die Bremse inzwischen nun auch mehr als schwergängig war, war sie gleich mit dran – nach Zerlegen des Sattels lässt sich in den Kolben recht gut ein mittelschwerer Hammer verkanten und so können die Kolben unter Drehen rausgezogen werden – beim Greifen mit der Zange darf der Kolben nicht beschädigt werden.

In meinem Fall waren die Gummis schon so verrottet, dass sie eine Bindung mit den Kolben eingegangen waren und im Sattel allerlei Grießartige Ablagerungen waren.

Alle Teile der Bremse können nun gründlichst mit Silikonentferner gereinigt werden.

Wenn man jetzt den Fehler gemacht hat, einen Reparatursatz von Citomerx bestellt zu haben weil der günstig ist, kann man 2-3 Mal wütend schreien, Geld zurück verlangen und einen tatsächlich passenden Satz von Tourmax bestellen.

Alles wieder zusammengesetzt habe ich dann auch gleich die echt ranzige Bremsleitung getauscht – es viel mir schwer der Sache zu vertrauen.

Sieht doch gar nicht so schlecht aus für knapp 30 Jährige Bremsen?

Nun geht es daran, alles Stück für Stück wieder zusammenzusetzen.

Da steht die Hütte wieder

Stand heute ist der Lenker fertig, Kühlwasser drin, noch sind so einige Teile zu lackieren – hinten fehlt noch was.

Windows Hello verwenden

Windows Hello verwenden

In der Domäne ist die Verwendung von Windows Hello d.h. Authentifizierung am Gerät via Fingerabdruck oder Gesichtserkennung in der Standardkonfiguration verboten.

Um dies zu aktivieren müssen einige Computerrichtlinien gesetzt werden.

Zusätzlich muss die „Komfortable PIN-Anmeldung“ aktiviert werden, da dies als Fallback erforderlich ist. Es empfiehlt sich, die PIN Sicherheit zu erhöhen, da per Standard nur vier Ziffern erforderlich sind.

Damit diese Richtlinie nur auf Windows 10 Notebooks angewendet wird, sollte ein WMI Filter verwendet werden, der prüft, ob das richtige Betriebssystem vorliegt und ob eine Batterie vorhanden ist.

 

Jetzt kann via Einstellungen, Konten, Anmeldeoptionen die PIN-Authentifizierung aktiviert werden.

Ist die Kamera- oder Finderabdruckerkennung nicht auswählbar so ist die verwendete Hardware nicht kompatibel.

Migration Sharepoint 2013 nach Sharepoint 2016 unter Wechsel der Domäne

Migration Sharepoint 2013 nach Sharepoint 2016 unter Wechsel der Domäne

Dies ist eine Kurzkurzanleitung zu einer Sharepointmigration.

Sie geht kaum auf Besonderheiten ein, noch erhebt sie Anspruch auf Vollständigkeit.

Ich habe dies aufgeschrieben, da ich bei google keine einfache Kurzanleitung gefunden habe.

Es wird vorausgesetzt, dass er Anwender weiß, wie ein SQL Server installiert und verwaltet wird und wie man Windows 2016 installiert und patcht – ebenso wie eine Domäne funktioniert.

Die alte Sharepoint Installation in der Quelldomäne basiert auf Sharepoint 2013, in der neuen Domäne wird 2016 verwendet.

Es werden mindestens drei Server benötigt. Der Office Online Server und der/die Sharepointserver benötigen Webserver Zertifikate.

  • Sharepoint Farmserver im Einzelserverbetrieb, alternativ mehrere Web- und Applikationsserver
  • Office Online Server
  • SQL Server

Für alle Server wird ein vollständig gepatchtes Windows 2016 vorausgesetzt.

Zuerst müssen in der Zieldomäne die Nutzerkonten für die Sharepoint-Farm vorhanden sein:

  • „Sqls“ als SQL-Sysadmin
  • „Adm_SPFarm“ als Hauptadministrator der Sharepoint Umgebung
  • „Svcsp“ als Dienstbenutzerkonto der Sharepointumgebung

Nach Installation des SQL Servers müssen benötigte SQL-Rechte den o.g. Nutzern zugewiesen werden.

Auf dem zukünftigen Sharepoint Server muss zunächst im Servermanager die „Verstärkte Sicherheit im IE“ deaktiviert werden, da sonst die Installation der „Installationsvoraussetzung fehl schlägt“

Vom gemounteten DVD Image müssen nun zunächst die Installationsvoraussetzungen und nach Neustart der Server selbst installiert werden.

Im Wesentlich ist dies eine „Weiter, Weiter, Fertig“ Installation, bei der eine Erstkonfiguration durchgeführt werden muss; bei dieser werden DB Server, Port für Admin-Seite und Dienstbenutzer benötigt.

In der nun verfügbaren Sharepoint Zentraladministration kann eine Erstkonfiguration ohne Anlegen einer Webseite durchgeführt werden.

Eventuell unter Zentraladministration, Anwendungsverwaltung dennoch vorhandene Webseiten können bis auf Sharepoint Central Administration v4 gelöscht werden.

Nun muss nach Aktivieren von „Updates für andere Microsoftprodukte“ nochmals nach Updates gesucht werden. Die zusätzlich gefundenen Updates müssen installiert werden.

Der Patchvorgang wird danach durch einen Powershellbefehl abgeschlossen.

PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services –install

Von der alten Umgebung wird nun eine Sicherung der Inhaltsdatenbank gefertigt.

Diese wird danach in den Sharepoint Server importiert.

stsadm -url https://spweb01-tf.kollossalfesch.de -o addcontentdb -databaseserver spdb01-tf -databasename WSS_Content_Intranet80

Sollte es nun keine öffentlichen Zertifikate geben, können über die IIS Verwaltung selbstsignierte Zertifikate erstellt werden. Diese müssen dann allen Servern gegenseitig bekannt sein (z.B. Verteilung über Gruppenrichtlinie), da sonst die Kommunikation zwischen Office Online und Sharepoint nicht funktioniert.

Obwohl die Webseite nun im neuen Sharepoint Server vorhanden ist, müssen noch einige Einstellungen angepasst werden.

In der Zentraladministration unter Anwendungsverwaltung, Dienstanwendung verwalten, Suchanwendung müssen die „Inhaltsquellen“ konfiguriert werden, damit weiterhin eine Indizierung erfolgt.

Die Kontinuierliche Durchforstung muss aktiviert werden und ein sinnvoller Zeitplan ist festzulegen; Evtl. kommt „alle 15 Minuten inkrementell und einmal wöchentlich außerhalb der üblichen Nutzungszeiten vollständig“ in Frage.

Wenn Sharepoint Designer benötigt wird, so kann dieser in der Version 2013 installiert und weiterhin verwendet werden, eine Version 2016 existiert nicht.

Nun fehlt noch die Installation des Office Online Servers

Notwendige Features werden über einen Powershell Befehl installiert:

Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,NET-Framework-Features,NET-Framework-Core,NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45

Office Online Server zum Herunterladen findet man im VLSC unter Office Professional Plus 2016 wenn man Herunterladen, Webbrowser, German und 64bit wählt

Die Installation des Office Online Servers erfordert keine Einstellungen.

Wenn ein selbstsigniertes Zertifikat verwendet wurde, muss das zu verwendende Zertifikat in „Eigene Zertifikate“, „Webserverzertifikate“ und „vertauenswürdige Stammzertifizierungsstellen“ liegen, damit es keinen Fehler bei der nachfolgenden Konfiguration gibt, dass das Zertifikat nicht gefunden wurde.

New-OfficeWebAppsFarm -InternalUrl "https://spapp01-tf.kollossalfesch.de" -ExternalUrl "https://spapp01-tf.kollossalfesch.de" –EditingEnabled:$TRUE -CertificateName "spapp01-tf.kollossalfesch.de-Webcert"

Dabei muss „Editing Enabled“ bestätigt werden.

Jetzt muss festgelegt werden, welche Domänen die Office Online Dienste nutzen können.

New-OfficeWebAppsHost -Domain kollossalfesch.de

Nach Ausführung folgenden Befehls auf dem Sharepoint Server sind die Office Online Dienste aktiv:

New-SPWOPIBinding -ServerName “spapp01-tf.kollossalfesch.de”

Die zur Bearbeitung der Sharepoint Seite berechtigten Konten befinden sich u.U. in der alten Domäne, daher sollte noch ein Konto mit Vollzugriff versehen werden.

Wahrscheinlich müssen noch Quicklinks angepasst werden.

Dies funktioniert nach Seitenaufruf via Websiteinhalte, Quicklinks

 

Vergaserreparatur

Vergaserreparatur

Jeder hat diesen einen grobmotorischen Kumpel, der beim Sprit ablassen…

Das lässt sich hervorragend mit Uhu Flüssigmetall wieder dicht kriegen

Dann bei 100 Grad in den Ofen…

 

Hält für immer – viel Freude beim Kleben 🙂

Wenn Sharepoint mich hasst.

Wenn Sharepoint mich hasst.

Wie es immer so ist: Niemand weiß wie es dazu kam aber der User zur Datenbankverwaltung war im Testsystem nicht mehr bekannt.

Wenn man also nicht mehr seine Datenbank administrieren kann, gibt es eigentlich nur eine Lösung:

Einbrechen.

Was böse klingt, ist einfach wenn man lokale Admin-Rechte hat.

Einfach den SQL Server beenden und flugs im Single-User-Modus starten:

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\binn\sqlservr.exe –m

Jetzt in zweiter Instanz geschwind mit dem SQLer verbingen:

Sqlcmd –s server\mssqlserver

Mich zum Admin erklären:

Sp_addsrvrolemember ‚MEINEDOMÄNE\MEINUSER‘,‘sysadmin‘

Go

Und nun den Dienst normal starten

Tadaaaaaaa, SQL Management Studio, ich kann mich verbinden und darf alles.

Schlecht ist… der Sharepoint will nicht mehr

Im Eventlog „SharePoint Foundation“ 5586:

Unbekannte SQL-Ausnahme '0'. Weitere Fehlerinformationen aus SQL Server finden Sie unten.

Der Prinzipalname des Ziels ist nicht korrekt. Der SSPI-Kontext kann nicht generiert werden.

Die Lösung ist spannend:

Der User, unter dem ich das Kennwort zurück gesetzt habe, bekommt einen Eintrag im Active Directory

Diesen kann man auf dem DC ermitteln

Ldifde -d "DC=Contoso,DC=Com" -l ServicePrincipalName -F C:\SPN.txt

In der Textdatei kann nun nach „MSSQLSVC\SERVERNAME“ gesucht werden

Aus dem Userobjekt, in dem dieser Eintrag gefunden wird (der, der das SQL Passwort zurückgesetzt hat), muss dieser „serviceprincipalname“ via ADSIEDIT.MSC entfernt werden.

SQL Server neu starten, Sharepoint Server neu starten, dann sollte Sharepoint wieder mitspielen.