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: Powershell

Port-Test ohne Ping per Powershell

Posted on 18. März 202117. März 2021 By Daniel Lensing Keine Kommentare zu Port-Test ohne Ping per Powershell

Viele kennen das Cmdlet Test-Connection oder Test-NetConnection um Verbindungen zu testen. Dort kann per -TcpPort bzw. -Port kann auch ein Port geprĂĽft werden. Allerdings wird in beiden Varianten ein Ping vorausgesandt.

Es kann aber sein, dass die „Internet Control Message Protocol (ICMP) Echo Requests“ zu denen auch Pings gehören, in Firewalls gesperrt ist. Trotzdem möchte man aber vielleicht den direkten Port testen.

Dabei hilft das unten stehende Skript:

$destination = "192.168.2.1"
$port ="443"

$connection = new-object Net.Sockets.TcpClient
try{
    $connection.Connect($destination, $port)
} catch {}
 
if($connection.Connected)
    {
        $connection.Close()
        $object = [pscustomobject] @{
                        IP = $destination
                        TCPPort = $port
                        Result = $True }
        Write-Output $object
    }
    else
    {
        $object = [pscustomobject] @{
                        IP = $destination
                        TCPPort = $port
                        Result = $False }
        Write-Output $object

    }
    Write-Host $msg
Powershell, Windows 10, Windows Server

Powershell: Zip-Dateien erstellen und entpacken

Posted on 15. März 202114. März 2021 By Daniel Lensing Keine Kommentare zu Powershell: Zip-Dateien erstellen und entpacken

In manchen Exporten werden viele Dateien erstellt. Zum Versand oder weiteren Ablage kann es sinnvoller sein diese zu bündeln. Im Skripting-Umfeld kann eine ZIP-Datei eine einfache Lösung sein.

DafĂĽr kann der folgende Befehl genutzt werden:

Compress-Archive -Path 'C:\Quelle' -DestinationPath 'C:\Ablage\Dokumente.zip'

Dabei wird automatisch die optimale Kompression im Standard verwandt. Bei einer groĂźen Anzahl an Daten kann dieses ĂĽber das Argument „-CompressionLevel“ editiert werden:

  • NoCompression
  • Fastest
  • Optimal

Bei „Fastest“ wird schneller verschlĂĽsselt aber auch die Zieldatei wird größer. Bei „NoCompresssion“ werden die Dateien nur zu einer zusammengefasst.

Mit „-Update“ können weitere Dateien einer vorhandenen ZIP-Datei hinzugefĂĽgt werden. Zum Beispiel könnte man so eine Monatsdatei erstellt werden.

Selbstverständlich gibt es auch einen Befehl zum entpacken:

Expand-Archive -LiteralPath 'C:\Ablage\Dokumente.zip' -DestinationPath 'C:\Zielordner'

Dabei wird die Zip-Datei an den definierten Zielordner entpackt.
Leider gibt es bei diesen Verfahren keine Möglichkeit die Zip-Datei mit einem Passwort zu schützen.

Zu den Commandlets gibt es natĂĽrlich Beschreibungen in den Microsoft Docs

  • Compress-Archive bei Microsoft Docs15
  • Expand-Archive bei Microsoft Docs
Powershell

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

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

Formatierung von Intune-Auditlog-Daten fĂĽr Vergleiche

Posted on 6. Juni 20195. Juni 2019 By Daniel Lensing Keine Kommentare zu Formatierung von Intune-Auditlog-Daten fĂĽr Vergleiche

Im Regelfall können mehrere Administratoren auf die „Profile“ im Intune zugreifen und Ă„nderungen vornehmen. Während einer Fehleranalyse kann es dabei sinnvoll sein, dass man sich die Veränderungen sichtbar macht. Im „Audit Log“ wird dargestellt, wann und wer Veränderungen am jeweiligen Objekt vorgenommen hat. Die Veränderung selber werden in einem Text-Format dargestellt, so dass die Werte „Property“, „New Value“ und „Old Value“ fĂĽr jede Option untereinander dargestellt werden. Dieses ist fĂĽr einen Vergleich etwas unhandlich.

Um dieses passend zu formatieren habe ich das folgende Skript mir geschrieben:

$Quelle = "C:\Intune_Profile_Activity_log\changelog.txt"
$Ziel = "C:\Intune_Profile_Activity_log\changelog_Merge.txt"
 
gcb > $Quelle
 
get-content $Quelle -readcount 3 | foreach  {$_ -join ";"} | out-file $Ziel
(Get-content $Ziel) -replace 'Property: ' | out-file $Ziel
(Get-content $Ziel) -replace 'Old Value: ' | out-file $Ziel
(Get-content $Ziel) -replace 'New Value: ' | out-file $Ziel

Die Daten werden direkt aus der Zwischenablage kopiert und verarbeitet. Somit werden die Daten per Semikolon getrennt in die Zieldatei geschrieben.

Powershell

Seitennummerierung der Beiträge

Vorherige 1 … 3 4 5 … 10 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 (239)
    • Android (8)
    • Fedora (Linux) (5)
    • iOS (6)
    • Mac OS X (6)
    • Peripherie (5)
    • Ubuntu (Linux) (9)
    • Windows 10 (63)
    • Windows 11 (25)
    • 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 (58)
    • Auto (18)
    • Bahn (19)
    • Beinarbeit (6)
    • Flugzeug (4)
    • Zweirad (14)
  • IT-Nachrichten (37)
  • Leben Beruf und Gesundheit (216)
    • #t2dhero (58)
    • Arbeitszimmer (38)
    • Audio (22)
    • Film / Kino (7)
    • Gedanken (81)
    • Gesundheit (38)
    • Internet (7)
    • Lebensmittel & Essen (22)
    • Lesestoff (19)
    • Sport (11)
    • Veranstaltung (3)
  • Lehren & Lernen (49)
    • Forschung (1)
    • Konferenzen (3)
    • Präsentation (4)
    • Zertifizierung (42)
  • Programme (328)
    • Android-Apps (28)
    • Eigene Tools (12)
    • iOS-Apps (7)
    • Office (87)
    • Patchday+Updates (75)
    • Software (151)
    • Spiele (3)
    • Windows Phone-Apps (2)
  • Programmierung (95)
    • AutoIT (1)
    • KiXtart (1)
    • PHP (3)
    • Power Automate (1)
    • Powershell (64)
    • VB.NET (10)
    • VBA (10)
    • VBS (10)
  • Server (161)
    • Citrix XenServer (2)
    • Exchange Server (27)
    • 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 (19)
    • Windows Server 2022 (17)
    • Windows Server 2025 (10)
  • Telekommunikation (38)
    • Festnetz (3)
    • Internet (13)
    • Mobilfunk (23)
  • Verkauf & Verlosung (1)
  • Web-Installationen (37)
    • Joomla (4)
    • Mastodon (1)
    • MediaWiki (10)
    • phpMyAdmin (2)
    • Piwik (4)
    • Wordpress (20)
Mastodon

Copyright © 2025 Daniels Tagesmeldungen.

Powered by PressBook WordPress theme