Webmaster-Tools/ Webanalyse-Tools

Webanalyse-Tools

Goolge Analytics und Google Analytics 360 (für Unternehmen)

Matomo, ehemals Piwik – Analyse und Datenspeicherung auf eigenem Server

Open Web Analytics (OWA) – ebenfalls eine kostenlose Open-Source-Webanalyse Software. OWA verfügt beispielsweise auch über eine Heatmap-Funktion, mit der die Mausbewegungen auf der Website analysiert werden können.

Adobe Analytics – Aufgrund des gewaltigen Funktionsumfangs ist sie in der Regel nicht für alle KMU geeignet. Der endgültige Preis ist vom jeweiligen Funktionsumfang abhängig.

Clicky  – eignet sich vor allem für Blogs und kleinere Webseiten. Clicky gibt es als kostenloses Plugin (Free) und als Zahlversion mit erweiteren Funktionsumfang.

Hotjar  – bietet Webanalyse für Entwickler und Analysten als All-In-One-Lösung für alle Tracking-Systeme. Neben Heatmaps, Nutzer-Recordings und Formular-Überwachung gibt es auch die Option, direkt mit Experten in Verbindung zu treten. Ein Basis-Account ist kostenlos, daneben gibt es die kostenpflichtigen „Pro-“ und  „Business-Accounts“.

Office 365 – Administration

Wer sich für Office 365 und deren vielen Funktionen entschieden hat, der hat sicher festgestellt, dass es bis vor einer bestimmten Zeit man zwischen drei verschiedenen Cloud-Speicher/ Cloud-Regeln entscheiden konnte (DE, EU, COM). Ich habe das Pech oder auch Glück ;-), dass man sich bei mir auf Arbeit für die DE-Cloud entschieden hat. Nebenher habe ich aber auch das Privileg als Developer eine COM-Cloud als Entwickler zu testen. Maßgeblich sollte nur der Speicherort der Cloud-Daten hier den unterschied machen, aber später kam dann doch noch mehr zum Tragen.

Es stellten sich nach und nach schnell mehr Nachteile als Vorteile aus meiner Sicht heraus. In der DE-Cloud greift auch die neue DSGVO und macht das Arbeiten und Verwalten mit Office 365 unnötig schwierig. Entweder bestimmte Apps wie Teams oder Outlook-Handy-App funktionieren einfach nicht und geben wilde Fehler aus oder aber bestimmte Sicherheitseinstellungen die man einstellt greifen schlicht weg nicht ohne das man einen Hinweis auf die Einschränkung durch DE-Cloud erhält.

Ebenso schwierig ist das zusammen Spiel von Benutzern/ Unternehmen die unterschiedlichen Clouds angehören bzw. verwenden. Ein Unternehmen mit DE-Cloud kann nicht uneingeschränkt mit einem Unternehmen aus der COM-Cloud arbeiten. Auch hier sind Fehlermeldungen entweder nicht vorhanden oder führen einen in die Irre.

Es gibt eine Liste mit DE-Einschränkungen, aber ich meine, dass diese nicht voll umfänglich ist und man weiter nur experimentieren kann. https://docs.microsoft.com/de-de/office365/servicedescriptions/office-365-platform-service-description/office-365-germany

In diesem Beitrag möchte ich über persönlich festgestellte Einschränkungen und Feststellungen schreiben, so dass andere sich eventuelle Suchzeiten und Problemlösungen ersparen.

Admin Center

Exchange Admin

Nachrichtenfluss / Regeln

Generell sollte man Mails mit bestimmten Anhängen in irgend einer Form behandeln. Hier wäre das Blockieren bestimmt die Beste Lösung, aber das funktioniert bei einer DE-Cloud nicht, sicher weil es dem Admin nicht erlaubt sein sein über das Recht des eigentlichen Empfängers zu entscheiden. So kann man z.B. Mails mit bestimmten anhängen wie „hta, exe, vbs“ nicht blockieren, nicht umleiten, nicht auf Genehmigung durch anderen Mitarbeiter umstellen und auch nicht TLS anfordern. All diese Sachen funktionieren Problemlos in der COM-Cloud, aber in der DE-Cloud wird bei Verwendung einer durch DSGVO eingeschränkten Regel alles außer Karft gesetzt und die Mail geht ohne weitere Behandlung zum eigentlichen Empfänger. Selbst wenn in der Regel erlaubte Regeln mit enthalten sind, werden diese keine Anwendung mehr finden.

Was funktioniert und was ich wenigstens anwende ist, dass ich der Betreffzeile einen kleinen Achtung-Text voranstelle [Achtung, Anhang prüfen] oder zu der eigentlichen Mail eine separate Mail mit hinterher sende, in der man deutlich mehr Text für Anweisungen unterbringen kann.

Datei-Endungen mit Makros von Office, aber auch PDF’s sollte man wenigstens mit Hinweis wie [Makro-Datei im Anhang] versehen.
https://support.office.com/de-de/article/dateiformate-die-mit-visual-basic-funktionieren-69afddfd-4479-4466-9f37-3f4046b5e107

Exchange Admin PowerShell

Verbindung zum Exchange via PowerShell aufbauen, wobei hierzu die Installation des Modules „Microsoft Exchange Online PowerShell Module“ Voraussetzung ist.

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office.de/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

(COM -> 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
)

Import-PSSession $Session -DisableNameChecking
… arbeiten und am Ende wird empfohlen die Session zu schleißen …
Remove-PSSession $Session

OME einrichten und nutzen

Einrichten neuer Office 365-Nachrichtenverschlüsselungsfunktionen

Der entsprechende Schutzdienst ist bereits aktiviert, wenn Ihr Abonnement Azure Rights Management oder Azure Information Protection einschließt und Ende Februar 2018 oder danach erworben wurde und AutomaticServiceUpdateEnabled auf true steht. Ist das nicht der Fall, so muss man den Schutzdienst manuell aktivieren!

Prüfen kann man dies mit PowerShell (siehe Verbinden mit Exchange per PowerShell). Mit Get holt man sich die Info und mit Set stellt man die entsprechende Funktion ein oder aus.

Get-IRMConfiguration
Set-IRMConfiguration -AutomaticServiceUpdateEnabled $true

 

Azure Active Directory

Users

In der DE-Cloud ist es nicht möglich Gäste ohne deren Einwilligung hinzuzufügen. Die Einladung hierzu geht auch nicht hier bei „Users“ und muss bzw. über SharePoint erfolgen! Hat man einen Gast (externen User) z.B. zu einer SharePoint-Gruppe / SharePoint-Webseite hinzugefügt bzw. eingeladen, so erhält dieser eine Einladung an dessen Mail-Adresse. Im besten Fall sollte der Eingeladenen auf dieser Mail-Adresse einen Microsoft-Account registriert haben und in der Mail die Einladung annehmen. Erst wenn dies erledigt ist, sieht ein Admin unter „Users“ den Gast und kann diesen auch weiteren neuen SharePoint-Webseiten zu ordnen. In der COM-Cloud kann man direkt unter „Users“ einen Gast hinzufügen und diesem eine Einladung zukommen lassen. In jedem Fall sieht aber ein Admin den Status zu seinen Gästen, ob diese noch als eingeladen zählen oder ob Sie die Einladung angenommen haben.

Das schöne daran, wenn ein eingeladener bereits über ein Microsoft-Account verfügt ist, dass man als Admin sich keine Gedanken um dessen Passwörter machen muss. Soll ein Gast keinen Zugriff mehr haben, dann entzieht man Ihm der SharePoint-Webseite oder löscht diesen komplett.

 

WordPress

Eigene Styles über den Editor

Recht nützlich finde ich die Erweiterung eigene Styles im Editor hinzufügen zu können. Hierfür gibt es auch wieder zahlreiche PlugIns, aber es geht auch ohne.

In 3 Schritten habt Ihr die Möglichkeit eigene Styles per Klick verwenden zu können.

  1. Definiert zuerst Eure Styles-Sheets und schreibt diese in die style.css Eures Themes
    .info, .success, .warning, .error {
      border: 1px solid; margin: 10px 0px;
      padding:15px 10px 15px 50px;
      background-repeat: no-repeat;	
      background-position: 10px center;
    }
    .info {
      color: #00529B; 
      background-color: #BDE5F8;
      background-image: url('custom/info.png');
    }
  2. Nützlich ist ebenso die neuen Styles im Editor sehen zu können, hierfür muss der Style-Code in die Datei „editor-style.css“ von Eurem Themes geschrieben werden. Ist die Datei nicht vorhanden, dann legt Sie Euch im Root Eures Themes einfach an.
  3. In euer Themes erweitert Ihr nun Eure „function.php“ mit diesem Code:
    // Callback function to filter the MCE settings
    function my_mce_before_init_insert_formats( $init_array ) {
    // Define the style_formats array
    $style_formats = array(
    // Each array child is a format with it's own settings
    array(
    'title' => 'Error',
    'block' => 'div',
    'classes' => 'error',
    'wrapper' => false,
    ),
    array(
    'title' => 'Warnung',
    'block' => 'div',
    'classes' => 'warning',
    'wrapper' => false,
    ),
    array(
    'title' => 'Info',
    'block' => 'div',
    'classes' => 'info',
    'wrapper' => false,
    ),
    array(
    'title' => 'Bestätigung',
    'block' => 'div',
    'classes' => 'success',
    'wrapper' => false,
    ),
    );
    // Insert the array, JSON ENCODED, into 'style_formats'
    $init_array['style_formats'] = json_encode( $style_formats );
    return $init_array;
    }
    // Attach callback to 'tiny_mce_before_init'
    add_filter( 'tiny_mce_before_init', 'my_mce_before_init_insert_formats' );
    
    

    Jedes Array ist ein Eintrag im DropDown-Menü „Formate“ und kann problemlose erweitert werden. Es muss natürlich auch immer ein passender Style vorhanden sein.

    „block“ sorgt für die div-Box um denText herum, „classes“ legt die CSS-Klasse fest und „wrapper“ sorgt dafür, dass es nicht als „Absatz“ behandelt wird.

    Es gibt noch etliche weitere Konfigurationsmöglichkeiten, die ihr bei Codex nachlesen könnt.

Microsoft Windows Server 2019

Upgrade/ Update auf Windows Server 2019

Bevor ein Windows Server auf Windows Server 2019 aktualisiert wird, sollte man sich vorher einige Fragen stellen:

Upgrade auf einem Domain Controller

Windows Server 2016 auf Windows Server 2019

Bevor hier einfach z.B. von Windows Server 2016 auf Windows Server 2019 aktualisiert werden kann, sollte man das Domain-Schema aktualisieren! Beim InPlace-Upgrade erhält man hierzu sogar einen Hinweis, wenn man nicht das aktuelle Schema für Windows Server 2019 vorbereitet hat.

Prüpft ob Euer Domain-Admin auch Mitglied von „Schema-Admin“ und Organisation-Admin“ ist, wenn nicht, dann fügt dem Admin diese Rollen hinzu und meldet Euch ab und wieder an. Nur So seid Ihr sicher, das der Admin mit den richtigen Rechten unterwegs ist.

Prüft Euer vorhandenes Schema mit PowerShell. Öffnet PowerShell explizit als „Administrator“ und gebt folgende Befehl ein:

für adprep /forestprep

Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion

AD version objectVersion
Windows Server 2000 13
Windows Server 2003 30
Windows Server 2003 R2 31
Windows Server 2008 44
Windows Server 2008 R2 47
Windows Server 2012 56
Windows Server 2012 R2 69
Windows Server 2016 87
Windows Server 2019 88
für adprep /domainprep

get-adobject -ldapfilter ‘(&(objectClass=Container)(cn=ActiveDirectoryUpdate))’ -Properties *| select Name, CanonicalName,revision

Windows Server 2008 3
Windows Server 2008R2 5
Windows Server 2012 9
Windows Server 2012R2 10
Windows Server 2016 15
Windows Server 2019 16
für Forest Functional Level

get-adobject (Get-ADRootDSE).defaultnamingcontext -Properties * | select msDS-Behavior-Version

Windows Server 2000 Native 0,0
Windows Server 2000 Mixed 0,1
Windows Server 2003 2,0
Windows Server 2008 3,0
Windows Server 2008R2 4,0
Windows Server 2012 5,0
Windows Server 2012R2 6,0
Windows Server 2016 7,0
Windows Server 2019 7

Kopiert von der Installations-CD (Windows Server 2019) den Ordner „Support“ nach „C:\Server2019“ und startet die Commandbox explizit als „Administrator“. Gebt die Befehle nacheinander ein und schaut das diese mit Erfolgsmeldungen zurück kommen.

cd c:\server2019\support\adprep

adprep /forestprep

adprep /domainprep

Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Alle Rechte vorbehalten.

C:\Windows\system32>cd c:\server2019\support\adprep

c:\Server2019\support\adprep>adprep /forestprep

ADPREP-WARNUNG:

Voraussetzung für die Ausführung von Adprep ist, dass auf allen Windows-basierten Active Directory-Domänencontrollern der Gesamtstruktur mindestens Windows Server 2003 verwendet wird.

Sie sind im Begriff, das Schema der Active Directory-Gesamtstruktur „fritz.box“ unter Verwendung des Active Directory-Domänencontrollers „hsdorn.fritz.box“ (Schemamaster) zu aktualisieren. Dieser Vorgang kann nicht mehr rückgängig gemacht werden.

[Benutzeraktion] Wenn auf allen Domänencontrollern der Gesamtstruktur mindestens Windows Server 2003 verwendet wird und Sie das Schema aktualisieren möchten, drücken Sie zur Bestätigung C und dann die EINGABETASTE. Drücken Sie andernfalls eine beliebige andere Taste und anschließend ebenfalls die EINGABETASTE.

c

Die aktuelle Schemaversion lautet „87“.

Schema wird auf Version „88“ aktualisiert…

Dateisignatur wird verifiziert Verbindung mit „hsdorn.fritz.box“ wird hergestellt. Anmelden als aktueller Benutzer unter Verwendung von SSPI Das Verzeichnis wird aus der Datei „c:\Server2019\support\adprep\sch88.ldf“ importiert. Die Einträge werden geladen……… 7 Einträge wurden erfolgreich geändert.

Der Befehl wurde einwandfrei durchgeführt. Verbindung mit „hsdorn.fritz.box“ wird hergestellt. Anmelden als aktueller Benutzer unter Verwendung von SSPI Das Verzeichnis wird aus der Datei „c:\Server2019\support\adprep\PAS.ldf“ importiert. Die Einträge werden geladen………………… 26 Einträge wurden erfolgreich geändert.

Der Befehl wurde einwandfrei durchgeführt. Die gesamtstrukturweiten Informationen wurden erfolgreich aktualisiert.

c:\Server2019\support\adprep> c:\Server2019\support\adprep>adprep /domainprep Die domänenweiten Informationen wurden erfolgreich aktualisiert.
Damit ist nur das Schema vorbereitet für 2019, aber noch nicht darauf umgestellt. Die Umstellung sollte erst geschehen, wenn man nur noch Windows Server 2019 im Einsatz hat.
Forest Functional Level anheben

$ADForest = Get-ADForest Set-ADForestMode -identity <your.forest> -Server $ADForest.SchemaMaster -ForestMode <Level>

Gültige Werte für Level sind:

Win2003Forest
Win2008Forest
Win2008R2Forest
Win2012Forest
Win2012R2Forest
Win2016Forest

Alternativ unter Systemsteuerung -> Active Directory-Verwaltungscenter kann mit Rechtsklick auf den Domainnamen das Schema angehoben werden.

Für Windows Server 2019 wurde keine eigene Funktionsebene eingeführt, dennoch muss man das Schema auf 88 vorbereiten/ Hinzufügen. Laut Microsoft gibt es keine neuen Funktionen aus Sicht von Active Directory. Daher ist auch ein Mischbetrieb von Windows Server 2016 und Windows Server 2019 möglich.

Ich persönlich würde aber davon abraten und es so handhaben wie bei jeder Vorversion auch. Alle Domain-Server auf ein Betriebssystem halten. Ich sehe auch zu, dass sich kein anderer „normaler“ Server aus der Vorversion im Domainnetzwerk befindet, bevor ich die Gesamtstruktur anhebe.

Amazon / Alexa / Echo Geräte Allgemein

Eigentlich bin ich was technisches angeht recht versiert, dass sollte ich bei meinem Beruf auch sein 😉
Dennoch habe ich vielleicht auch aufgrund dessen ein paar Schwierigkeiten beim Einrichten und Kommunizieren der Geräte untereinander.
Deshalb mal hier ein paar Tipps, was Ihr beachten sollten, um möglichst einen reibungslosen Betrieb auf die Beine zustellen.
  • Seht zu, dass Eure Alexa- & SmartPlug-Geräte auf der 2.4 GHz-Frequenz im WLan eingeloggt sind.
    Viele SmartPlug-Geräte scheinen keine 5GHz zu unterstützen und solltet Ihr z.B. einen Echo Dot 3 und ein Echo Show 5 haben und beide sind im selben Wlan, aber nicht auf selber Frequenz, dann könnt Ihr keinen Multiroom-Lautsprecher Raum einrichten.
    Auch beim Einsatz mit FritzDect-Steckdosen mittels Skill und Alexa habe ich gelegentlich Kommunikationsschwierigkeiten.

    In der FritzBox kann man z.B. unter Wlan->Funknetz->die Frequenz-Bereiche ein- & aus schalten.
  • Nutzt möglich für diese Geräte ein separates Wlan und trennt Eure PC’s/ Daten-Server/ NAS von sogenannten ioT-Geräten.

    Generell würde ich mehrere WLan-Netzt auch im privaten Bereich verwenden. Es gibt Geräte die nicht über alle Ports der Welt kommunizieren müssen. Oft reichen Port 80 und 443 für das Browsen im Netz. Bei einigen Geräten hat man es auch garnicht in der Hand, was auf welchen Ports ins Internet gesendet oder angefragt wird. Hier hilft nur eine gute Firewall.

    Bei der FritzBox kann man in der Regel sowohl WLan und LAN auch zusätzlich als Gast-Netz zur Verfügung stellen und die Rechte auch etwas einschränken. Nutzt diese Möglichkeiten im privaten Umfeld. Das kosten kein großes Geld aber stellt eine kleine Sicherheit dar. Zudem könnt Ihr über diesen Weg Euren Gästen einen von Eurem Netz getrennten Weg ins Internet gewähren.

 

Echo Show 5

Der Echo Show 5 soll eine günstige Alternative für den Spot und den anderen Echo Show’s darstellen.

Da es scheinbar kein gescheites Handbuch zu diesem Gerät existiert, werde ich hier auf die eine oder andere Funktion eingehen und auch ein paar meiner Tricks verraten.

Tipps

  • Schlummer-Modus zeitlich anpassen. Hiermit verfällt die „Echo Show 5“ in einen Modus der weniger Strom verbraucht und dennoch auf Befehle reagiert.
    Ich habe z.B. 10:00 – 5:30 Uhr eingetragen und so verfällt die „Echo Show 5“ in dieser Zeit nach jeder Nutzung automatisch in den Schlummer-Modus.
  • Alternativ kann man zusätzlich auch einen Modus aktivieren, welcher erkennt ob es Hell oder Dunkel ist und anhand dessen in den Schlummer-Modus verfällt. Das funktioniert auch beim Einschalten von Licht 😉

PDFCreator 1.7.2 – PDFCreatorMods

Automatisiertes Speichern von PDF

PDF-Drucker gibt es wie Sand am Meer, aber PDF-Drucker die ohne Benutzereingabe in PDF ins Netzwerk speichern können sind nicht so leicht zu finden.

Mein Tipp wäre PDFCreator https://de.pdfforge.org/pdfcreator__, mit der aktuellsten kostenfreien Version 3.3.2 funktioniert das für normale Benutzer gut. Jedoch muss man als normaler Benutzer das nicht wirklich haben.

Interessant wird es aber, wenn Systeme wie Faxserver ankommende Faxe nicht ducken sondern als PDF speichern sollen. Hier hilft im ersten Augenblick scheinbar nur die kostenpflichtige Version PDFCreator Server, da die anderen Versionen Druckbefehle von Diensten nicht korrekt umsetzen können und die installierten Drucker aus der Free oder Business-Version nicht direkt netzwerkfähig sind.

Nach einigen Recherchen stieß ich auf einen Forumeintrag, der meinte das eine alte Version von PDFCreator (1.7.3) der einen netzwerkfähigen Drucker bereitstelle und als Art Service laufen könne. In der Tat es ist so!!

Allerdings muss man die Setup-Datei „PDFCreator-1_7_3_setup.exe“ mühsam im Internet suchen. PDFCreator unterstützt die Version nicht mehr, man möchte ja mit der Server-Version Geld verdienen.

ABER ACHTUNG!!!

Produkte von PDFCreator sind gespickt mit Mailware und Candy, weil beim Setup andere Programme oder Werbung aus dem Netz nachgeladen wird.

PDFCreator 1.7.3 konnte ich ohne Virenschutz erst gar nicht installieren, wegen „Win32.Adware.OpenCandy.P“

Auch die kostenfreie Version PDFCreator enthält Programme die beim Setup aufgerufen werden (lsop.exe) und vermutlich bösen machen wollen.

Dies antwortete der Hersteller daraufhin

“Bei der vom Antivirus blockierten Datei handelt es sich, um ein Programm, das verwendet wird, um Dateien von unseren Servern herunterzuladen, die dazu dienen eine Anzeige unserer Werbepartner anzuzeigen. (Die Software des Partners wird nur heruntergeladen, wenn Sie in der Anzeige zustimmen.
Die Werbung ist selbstverständlich nur in PDFCreator Free enthalten.“ “Sorry for the inconveniences!
Please note that PUA is short for “Potentially unwanted application”
A PUA is not malware.
The lsop.exe allows our setup to display an advertisement and it’s only included in PDFCreator Free.
In this case our partner is Lavasoft with their software Webcompanion.
The offer will pop up after PDFCreator was installed and of course, you can decline the installation.
If you’re not okay with the advertisement in our free PDFCreator, make sure to take a look at PDFCreator Plus 68 or at PDFCreator Business 60, if you’re using PDFCreator at the office.“

Mein Tipp: Legt Euch eine Firewall-Rule an, welche den gesamten Netzwerkverkehr während des Setups blockiert. Schaut zu dem nach Veränderung vom „AppData“-Verzeichnis / „appdata/local/temp“ / „Windows-Temp“.

Und achtet bei der Installation auf den Experten-Modus, dort kann man das eine oder andere beim Setup deaktivieren. Nach dem Setup kann man über die Firewall das eigentliche Programm am Herunterladen hindern.

Programme mit OpenCandy:

Legt das Netzwerk lahm, startet das Setup über cmd.exe und ruft die Setup-Datei mit dem Zusatz /NOCANDY auf. Schaut in AppData nach seltsamen Veränderungen und löscht unnötiges Zeug.

PDFCreator ohne Mailware installieren

Derzeit arbeite ich an einer Lösung PDFCreator 1.7.2 ohne deren Setup-Datei in Betrieb zu nehmen. Es sei gesagt es funktioniert, ich muss nur noch einiges durchdenken und am OpenSource von PDFCreator 1.7.2 einiges optimieren. Derzeit liegt dieses Projekt als VB6 zur Verfügung, was den Einsatz von .net Framework unnötig macht bzw ohne arbeitet.

Stichworte zum selber tüfteln:

InnoExtractor – kann in die Mailware behaftete Setup-Datei schauen und man kann sich hier nur die benötigte PDFCreator.exe und das Verzeichnis Languages herausziehen.

Nun brauch man noch die pdfcmon.dll, die ins System32-Verzeichnis zu kopieren ist und mittels eines Regeintrags als Printer-Monitor aktiviert wird.

Danach erstellt man sich einen Drucker der an LPT mit den PDFforge-Treibern installiert wird. Nach der Installation stellt man den Anschluss auf „pdfcmon“.

Jetzt wird ein Druck über diesen Drucker in ein Spool-Verzeichnis als *.PS-Datei erstellt. Zudem wird eine gleichnamige *.ini-Datei mit Erkennungsparametern erstellt.

Mit einigen weiteren Reg-Einträgen zum Programm PDFCreator kann man nun die Druckdateien aus dem Spool-Verzeichnis erkennen und nach PDF umwandeln und automatisiert in ein anderes Verzeichnis speichern.

Eigene Anwendung

Über das SDK von Windows soll es möglich sein selber einen Printer Monitor / Anschluss in Form einer *.dll erstellen zu können. In wie weit hierzu dann auch Treiber benötigt werden, muss ich noch recherchieren.

Aber mit dem eigenen Monitor wäre man noch freier von dem PDFforge und weiß so dann auch was in der dll und seinen Druck-Treibern alles drin steckt. Letztlich ist es der Printer Monitor, der die Drucksachen als *.ps-Datei in ein Verzeichnis legt. Mit GhostScript wird später nur die Umwandung nach PDF realisiert.

Dell -Exceeds PSU Wattage

Servicetag

Servicetag auslesen unter Windows wmic bios get serialnumber

Alerts

ALERT! Power Required Exceeds PSU Wattage. Check PSU and system configuration

Seit einem Hardware-Update (vermutlich iDrac) meinte das Bios plötzlich die Stromversorgung reiche nicht aus und stoppt das weitere Booten des System.

„PWR1006 SystemPower exceed capacity. System halted“

„ALERT! Power Required Exceeds PSU Wattage. Check PSU and system configuration. ALERT! Continuing system Boot accepted risk that system may power down without warning.“

Lösung

Die Lösung hierfür ist denkbar einfach. Dell empfiehlt das Aufstocken der Leistung der Netzteile von 350Watt je Netzteil auf 750Watt je Netzteil.

Damit man aber in der Zwischenzeit den Server ohne „System halted“ neu starten kann, muss man im Bios (F2) unter iDRAC Settings → Power Configuration die Redundancy Policy auf Non Redundanc stellen.

installiertes Office erkennen

Dieses Script sollte ursprünglich als Startup-Script vor Benutzeranmeldung ausgeführt werden. Leider deinstalliert sich nicht jede Office-Version im Silent-Modus und erwartet eine Benutzereingabe, die ja von Benutzeranmeldung nie kommt.

Dennoch läuft das Script, wenn man es nach Benutzeranmeldung startet, meinet halben über Taskplaner/ LogonScript.
Meiner Erfahrung nach macht sowas aber wenig Sinn, da der Benutzer trotz Vorankündigung und Anleitung nicht das macht was man erwartet und so die automatische Deinstallation/ Installation schief geht. Also lieber sich selber an den PC setzen.

Vorbereitung

Bereitstellungstool von Office herunterladen und ODT-Offline-Version erstellen.
https://docs.microsoft.com/de-de/deployoffice/overview-of-the-office-2016-deployment-tool

Tipp:

Erstmal keinen PC auf TRUE setzen. Über set log= kann über einen Pfad zu einem beschreibbaren Verzeichnis eine Log-Datei erstellt werden. So kann das Script als Startup/Logon-Script ausgeführt werden und man erfährt auf welchem PC welche Office-Version installiert ist.

Ablauf

  • erkennen der installierte Office-Version [o365|2013|2010]
  • innerhalb der erkannten Office-Versions-Routine → iF defined [o365|2013|2010] PC-Name prüfen ob dieser zur Deinstallaition/Installation berechtigt ist
    Call-Befehl zur Deinstallation aufrufen → call %[o365|2013|2010]%
  • neues Office 365 aus Offline-ODT installieren, wahlweise als 32bit und 64bit möglich.
    call \\spc\…..\setup.exe /configure \\spc\….\configuration32bit.xml|configuration64bit.xml]
  • Wird kein Office erkannt, so soll nach PC-Namensprüfung Office 365 aus Offline-ODT installiert werden → :error

    Code

@echo off

set regKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
set regKey64=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
set regString=/v UninstallString
set "log="
set "o365="
set "o2013="
set "o2010="
set "o2007="

rem Office 365 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\O365BusinessRetail - de-de" %regString%') DO SET o365=%%B &::globale Erkennung Microsoft Office 365
IF not defined o365 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\{90150000-007E-0000-1000-0000000FF1CE}" %regString%') DO SET o365=%%B &:: Microsoft Office 365 Business - Version 2013
IF not defined o365 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\{90160000-007E-0000-1000-0000000FF1CE}" %regString%') DO SET o365=%%B &:: Microsoft Office 365 Business - Version 2016

rem Office 2013 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\HomeBusinessRetail - de-de" %regString%') DO SET o2013=%%B &::globale Erkennung Microsoft Office 2013
IF not defined o2013 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey64%\HomeBusinessRetail - de-de" %regString%') DO SET o2013=%%B &::globale Erkennung Microsoft Office 2013 (64bit)

rem Office 2010 RegKeys
FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey%\Office14.SingleImage" %regString%') DO SET o2010=%%B &::Microsoft Office Home & Business SingleImage
IF not defined o2010 FOR /F "tokens=2* delims=     " %%A IN ('REG QUERY "%regKey64%\Office14.SingleImage" %regString%') DO SET o2010=%%B &::Microsoft Office Home & Business SingleImage (64bit)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office365_%computername%.log
IF defined o365 (
    Echo "Office 365 erkannt"
    Echo "Office 365 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString365=%o365%>> %log%
    Echo Client "%computername%" wird für Deinstallation überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o365%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office2013_%computername%.log
IF defined o2013 (
    Echo "Office 2013 erkannt"
    Echo "Office 2013 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString2013=%o2013%>> %log%
    Echo Client "%computername%" für Deinstallation wird überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o2013%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\Office2010_%computername%.log
IF defined o2010 (
    Echo "Office 2010 erkannt"
    Echo "Office 2010 erkannt"> %log%
    Echo Start %date% %time%>> %log%
    ECHO UninstallString2010=%o2010%>> %log%
    Echo Client "%computername%" wird für Deinstallation überprüft>> %log%

    set "TRUE="
    IF "%computername%"=="V01WIN7-64.." set TRUE=1
    IF "%computername%"=="EDV-1510d..." set TRUE=1
    IF "%computername%"=="VERTR03-1211.." set TRUE=1
    IF "%computername%"=="VERTR02-1706" set TRUE=1

    IF defined TRUE (
        echo Office-Deinstallation wird in die Wege geleitet>> %log%
        call %o2010%>> %log%
        Echo %date% %time%>> %log%
        echo Office365-Installation wird in die Wege geleitet>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Deinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%
    goto ende
)

:error
echo fehler %errorlevel%
echo Kein gültiges Office erkannt
set log=\\spc\NETLOGON\Scripts\filesStart\logs\Office\OfficeXX_%computername%.log
Echo Kein gültiges Office erkannt> %log%

Echo Berechtigung zur Neuinstallation wird für "%computername% geprüft>> %log%
    set "TRUE="
    IF "%computername%"=="VWIN10-TEST01" set TRUE=1
    IF "%computername%"=="VERTR03-1211.." set TRUE=1
    IF "%computername%"=="VERTR02-1706" set TRUE=1

    IF defined TRUE (
        echo Office365-Installation wird in die Wege geleitet>> %log%
        Echo Start %date% %time%>> %log%
        call \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\setup.exe /configure \\spc\NETLOGON\Scripts\files\Office\ODT\deploymenttool\Office365_2016_16\configuration32bit.xml>> %log%

    )else (
        echo Client ist für Neuinstallation nicht ausgewählt worden>> %log%
    )
    Echo Ende %date% %time%>> %log%

:ende
echo ende