Skip to content

Daniels Tagesmeldungen

Kleine IT-Episoden, der Diabetes & das wahre Leben

  • Startseite
  • About me…
    • Lebenslauf
    • Weiterbildung
  • Diabetes melitus
    • Diabetes melitus – Definition/Typen
    • Diabetes melitus – Podcasts
    • Diabetes Typ-2 – Erläuterung
    • Medikament – Forxiga (Dapagliflozin)
    • Medikament – Eylea (Aflibercept)
    • Medikament – Lucentis (Ranibizumab )
    • Medikament – Metformin
  • Disclaimer
  • Toggle search form

Kategorie: Programmierung

Powershell: AD-Gruppen zweier Benutzer vergleichen

Posted on 3. März 202128. Februar 2021 By Daniel Lensing Keine Kommentare zu Powershell: AD-Gruppen zweier Benutzer vergleichen

Manchmal benötigt man einen schnellen Vergleich über die AD-Gruppen zweier Benutzer-Accounts. Dieses kann einem im Fehlerfall schnell eine Idee für ein Problem identifizieren.

#Samaccountname der zu vergleichen
 
$user1 = "user1"
$user2 = "user2"
 
Compare-Object -ReferenceObject (Get-AdPrincipalGroupMembership $user1 | select name | sort-object -Property name) -DifferenceObject (Get-AdPrincipalGroupMembership $User2 | select name | sort-object -Property name) -property name -passthru |
 
ForEach-Object {
 
if ($_.SideIndicator -eq '=>') {
 
$_.SideIndicator = 'Group is not assigned to ' +$User1
 
} elseif ($_.SideIndicator -eq '<=') {
 
$_.SideIndicator = 'Group is not assigned to ' +$User2
 
}
 
$_
 
}

Es konnte sehr schnell die fehlende AD-Gruppe ermittelt werden. Manuell hätten dieses definitiv mehr Arbeitszeit gekostet.

Powershell

AD: Existiert zum Nebenbenutzer noch ein Hauptbenutzer

Posted on 26. Februar 202125. Februar 2021 By Daniel Lensing Keine Kommentare zu AD: Existiert zum Nebenbenutzer noch ein Hauptbenutzer

In einigen Active Directory-Umgebungen gibt es neben dem Haupt-Benutzer auch Funktionsbenutzer für administrative Berechtigungen oder auch Software-Lösungen. Dabei kann es interessant sein, ob der Hauptaccount überhaupt existiert.

$Prefix_users = get-aduser -filter "samaccountname -like 'pre_*'"
 
Foreach ($u in $Prefix_users.samaccountname)
 
{
 
$query = $(try {get-aduser $u.split('_')[1]} catch {$null})
 
  if ($query -ne $null) {
 
  write-host $u " - "$u.split('_')[1]" - existiert"
 
  } else {
 
  write-host $u " - "$u.split('_')[1]" - existiert nicht"
 
  }
 
}

Die Darstellung des Status ist nur eine der vielen Möglichkeiten. Die Daten können selbstverständlich auch anders verarbeitet werden. Ein Möglichkeit wäre, den Hauptaccount als Manager des Nebenaccounts einzutragen.

Powershell

.Net Framework-Unterstützung von TLS 1.2

Posted on 24. Februar 20215. März 2021 By Daniel Lensing Keine Kommentare zu .Net Framework-Unterstützung von TLS 1.2

Ich habe vor ein paar Jahren ein kleines Tool programmiert. In diesem wurde eine Webschnittstelle abgefragt. Bei einer Aktualisierung wurde nun die interne Schnittstelle ebenfalls auf TLS1.2 umgestellt.

Das .Net Framework unterstützt unterschiedlich das Protokoll:

  • .Net Framework 3.5: Keine direkte Unterstützung von TLS 1.2
    Über KB3156421 vom 10. Mai 2016 wird diese in Windows 10 implementiert
  • .Net Framework 4.0: Keine native Unterstützung von TLS 1.2
    Wenn der Client allerdings .Net Framework 4.5 installiert hat, kann TLS 1.2 angesteuert werden:

    ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
  • .Net Framework 4.5: Native Unterstützung von TLS 1.2
    Das Protokoll ist allerdings nicht als Standard gesetzt:

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
  • .Net Framework 4.6: Native Unterstützung und Standard-Protokoll von TLS 1.2

Genauere Informationen gibt es in diesem Artikel.

Eigene Tools, VB.NET

Powershell: Ordner nach Dateinamen umbenennen

Posted on 13. Januar 202113. Januar 2021 By Daniel Lensing Keine Kommentare zu Powershell: Ordner nach Dateinamen umbenennen

Ein Tweet einer Person, der ich bei Twitter folge, hatte die folgende Aufgabenstellung:

Kennt jemand ein Tool, mit dem man Ordner in Windows genauso benennen kann wie die Datei, die darin liegt, nur ohne Endung?
Bsp: Ordner heißt Data
Datei heisst 12.10.2020 File.mp3
Ordner soll also 12.10.2020 File heißen.

Das Ganze natürlich für viele Ordner auf einmal.

Ich wusste, dass ich so etwas ähnliches in meiner Skript-Sammlung habe.
Nach einer kurzen Anpassung sind die folgenden Code-Zeilen in Powershell entstanden:

$Folder = "E:\Startordner"
 
$items = get-childitem $Folder -Recurse | where { $_.GetType().Name -eq "FileInfo" }
 
foreach ($item in $items) 
{
$folder = $item.DirectoryName
$file= $item.BaseName
 
Rename-Item -path $folder -Newname $file
}

Es wird rekursiv durch $Folder benannten Ordner nach Dateien gesucht.
Der letzte Ordnername des Dateipfades wird nach dem Namen der Datei benannt.

Powershell

PDF-Dateien aus Ordner über Powershell drucken

Posted on 7. Oktober 20206. Oktober 2020 By Daniel Lensing Keine Kommentare zu PDF-Dateien aus Ordner über Powershell drucken

Im vergangenen Jahr musste ich regelmäßig Abrechnungen erstellen. Nicht zu jedem Zeitpunkt stand mir direkt ein Drucker zur Verfügung. Teilweise kam es dabei zu über 20 erforderlichen Ausdrucken. Entsprechend hatte ich auch keine Lust diese Ausdrucke manuell anzusteuern. Somit habe ich mir ein Skript zur automatischen Start der Ausdrucke erstellt.

#Definition des Ordners mit den Druck-Dateien
$Directory = "C:\PDFPrint\"
 
#STEP 1: Ermittle alle PDF-Dateien im Ordner
#STEP 2: Starte für jedes File den Print-Prozess
#STEP 3: Warte bitte 30 Sekunden zwischen den Ausdrucken
 
Get-ChildItem -path $Directory -recurse -include *.pdf | 
ForEach-Object {Start-Process -FilePath $_.fullname -Verb Print -PassThru |
%{sleep 30;$_} |
kill }
 
#STEP 4: Lösche die vorhandenen Dateien
Get-ChildItem -path $Directory -recurse -include *.pdf | Remove-Item -Force

Ich habe bei der Standard-Einstellung für PDF-Dateien die besten Erfahrungen bei der Nutzung des Adobe Readers gemacht. Der Ausdruck erfolgt bei dieser Methode über den Standard-Drucker. Ich berücksichtige auch eventuelle Unterordner im definierten Ordner.

Dieses Vorgehen konnte ich auch schon mit Word- und Excel-Dateien nachstellen.

Powershell

XmlTextreader und DataGridView – Verarbeitung von XML in Tabellenform

Posted on 20. Juli 202018. Juli 2020 By Daniel Lensing 2 Kommentare zu XmlTextreader und DataGridView – Verarbeitung von XML in Tabellenform

Ich habe mich in den letzten 2 Tagen mal wieder etwas mit Programmierung beschäftigt. Dabei wollte ich eine XML-Datei in ein DataGridView importieren. Dabei bin ich auf 3 Themen gestoßen die ich hier gerne dokumentiere.

XmlTextReader und Umlaute:
Der XmlTextReader benötigt in der XML-Datei die Enconding-Information, damit Umlaute eingelesen und dargestellt werden.

encoding="iso-8859-1

Spalten können anhand der Überschriften sortiert werden:
Bei mir habe ich eine vordefinierte XML-Datei. Die Aufteilung der Spalten war für meine Funktion nicht sinnvoll. Entsprechend möchte ich diese in der Darstellung anpassen.

DataGridView1.Columns("TitelA").DisplayIndex = 0
DataGridView1.Columns("TitelC").DisplayIndex = 1
DataGridView1.Columns("TitelB").DisplayIndex = 2

Angeklinkter Wert im DataGridView soll weiterverarbeitet werden:
Ich möchte in meinem Tool den ausgewählten Wert der DataGridView weiter verarbeiten.
Dazu habe lasse ich den Wert in diesem Beispiel in eine Textbox ausgeben

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        TextBox1.Text = ""
        TextBox1.Text = DataGridView1.CurrentCell.Value.ToString
End Sub

Ich habe bewusst den Aufruf „DataGridView1_CellClick“ gewählt.
Mit dem der Funktion „DataGridView1_CellContentClick“ muss man neben der Zelle auch der Text angeklickt werden.

Wenn man neben der Wert auf direkt eine Weiterverarbeitung im Ablauf starten möchte kann auch die Funktion „DataGridView1_CellDoubleClick“ sinnvoll sein.

Man sollte das Attribut „MultiSelect“ der DataGridView auf „False“ setzen. Damit wird der korrekte Wert übernommen.

VB.NET

Power Automate: Terminübersicht per Mail zusenden

Posted on 3. Januar 202027. Dezember 2019 By Daniel Lensing 3 Kommentare zu Power Automate: Terminübersicht per Mail zusenden

Für mich ergibt es in vielen Situationen Sinn, dass ich eine kurze Übersicht der aktuellen Termine aus dem Microsoft Outlook für die kommenden Stunden bekomme. Diese lasse ich mir gerne per Mail zustellen. Außerdem kann ich diese Liste entsprechend weiterleiten, so dass auch weitere Personen davon partizipieren können.

Dazu habe ich mir unter „Microsoft Power Automate“ (ehemals Microsoft Flow) einen Ablauf gebaut. Für mich persönlich macht es am meisten Sinn ihn als Schaltfläche zu starten. Es ist aber auch möglich diesen anzupassen, um diesen zu einer gewissen Uhrzeit zu starten.

Der Ablauf sieht wie folgt aus:

  • Löst einen Flow manuell aus
    Es ist keine Eingabe erforderlich
  • Kalenderansicht der der Termine abrufen (V3)
    Kalender-ID: Kalender
    Startzeit: Ausdruck „utcNow()“
    Endzeit: Ausdruck „addHours(utcnow(),10)“
    Mit der 10 werden die Stunden angegeben, welche im Kalender abgefragt werden
  • Array filtern
    von: „value“
    Im erweiterten Modus bearbeiten „@not(equals(item()?[‚isAllDay‘], True))“
    Damit werden die ganztägigen Termine aus der Übersicht ausgeschlossen
  • Variable initialisieren
    Name: „EventLists“
    Typ: Array

Ab hier wird das Array abgearbeitet:

    • Auf alle anwenden
      Ausgabe von vorherigen Schritten: „Körper“
    • Html to text (Vorschau)
      Content: „Text“
    • Zeitzone konvertieren
      Objekt wurde umbenannt in „KONV Starttime“
      Basiszeit: „Startzeit“
      Formatzeichenfolge: „dd.MM.yyyy HH:mm“
      Quellzeitzone: „(UTC) Koordinierte Weltzeit
      Zielzeitzone (UTC+01:00) Amsterdamm, Berlin, Bern, Rom Stockholm, Wien
      Damit bekommt man die korrekte Zeit in einem gekürzten Format übertragen
    • Zeitzone konvertieren
      Objekt wurde umbenannt in „KONV Endtime“
      Basiszeit: „Endzeit“
      Formatzeichenfolge: „dd.MM.yyyy HH:mm“
      Quellzeitzone: „(UTC) Koordinierte Weltzeit
      Zielzeitzone (UTC+01:00) Amsterdamm, Berlin, Bern, Rom Stockholm, Wien
      Damit bekommt man die korrekte Zeit in einem gekürzten Format übertragen
  • Verfassen
    {
    „Terminname“: „Betreff“,
    „Startzeit“: „Konvertierte Zeit“ aus „KONV Starttime“,
    „Endzeit“: „Konvertierte Zeit“ aus „KONV Endtime“,
    „Ort“: „Standort“
    }
  • Am Arrayvariable anfügen
    Name: „EventLists“
    Wert: „Ausgaben“

Ab hier wird das Array verarbeitet:

    • HTML-Tabelle erstellen
      Von: „EventLists“
      Spalten: „Automatisch“
    • E-Mail senden (V2)
      An: „E-Mail-Adresse des Benutzers“ aus „Löst einen Flow manuell aus“
      Betreff: „[MPA] Terminliste“
      Ich tagge alle Mails aus automatisierten Prozessen gern, um diese schneller wiederzufinden.
      Text: „Ausgabe“ aus „HTML-Tabelle erstellen“
      Priorität: „Normal“
      Ohne Angabe der Priorität wird diese auf „Niedrig“ definiert.

Somit erhält man eine schnelle Übersicht der Termine per Mail.
Zusätzlich war dieser Ablauf ein Test für einen neuen Prozess, den ich in Zukunft erstellen und dann ebenfalls vorstellen möchte.

Microsoft Azure, Power Automate

Seitennummerierung der Beiträge

Vorherige 1 … 3 4 5 … 14 Nächste

Daniel Lensing

Ich betreibe diesen Blog, bei dem ich meine Erfahrungen aus der IT & dem Berufsalltag sowie dem Wahnsinn des Lebens mit Höhen und Tiefen. Darunter meine „Erlebnisreise“ zum Planeten „Diabetes mellitus Typ-2“.

Translate:

Follow us

Kategorien

  • Allgemein (1)
  • Client (235)
    • Android (7)
    • Fedora (Linux) (5)
    • iOS (5)
    • Mac OS X (5)
    • Peripherie (5)
    • Ubuntu (Linux) (8)
    • Windows 10 (60)
    • Windows 11 (21)
    • Windows 7 (100)
    • Windows 8 (36)
    • Windows 8.1 (28)
    • Windows Mobile (2)
    • Windows Vista (65)
    • Windows XP (21)
  • Cloud (15)
    • Amazon AWS (1)
    • Microsoft Azure (7)
    • Office 365 (9)
  • Fortbewegung (57)
    • Auto (18)
    • Bahn (18)
    • Beinarbeit (6)
    • Flugzeug (4)
    • Zweirad (14)
  • IT-Nachrichten (37)
  • Leben Beruf und Gesundheit (204)
    • #t2dhero (53)
    • Arbeitszimmer (31)
    • Audio (20)
    • Film / Kino (7)
    • Gedanken (79)
    • Gesundheit (33)
    • Internet (5)
    • Lebensmittel & Essen (22)
    • Lesestoff (18)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (49)
    • Forschung (1)
    • Konferenzen (3)
    • Präsentation (4)
    • Zertifizierung (42)
  • Programme (325)
    • Android-Apps (27)
    • Eigene Tools (12)
    • iOS-Apps (6)
    • Office (86)
    • Patchday+Updates (74)
    • Software (150)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (92)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (61)
    • VB.NET (10)
    • VBA (10)
    • VBS (10)
  • Server (159)
    • Citrix XenServer (2)
    • Exchange Server (26)
    • Lync Server (1)
    • System Center (4)
    • Ubuntu Server (2)
    • Windows Home Server (2)
    • Windows Server (92)
    • Windows Server 2012 (45)
    • Windows Server 2016 (15)
    • Windows Server 2019 (18)
    • Windows Server 2022 (15)
    • Windows Server 2025 (8)
  • Telekommunikation (38)
    • Festnetz (3)
    • Internet (13)
    • Mobilfunk (23)
  • Verkauf & Verlosung (1)
  • Web-Installationen (36)
    • Joomla (4)
    • Mastodon (1)
    • MediaWiki (9)
    • phpMyAdmin (2)
    • Piwik (4)
    • Wordpress (20)
Mastodon

Copyright © 2025 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme