Private/Scripts/TipOfTheDay.ps1
<#
# Tip of the day Beim laden des Modules AKPT wird immer ein Zufalls-Tipp angezeigt. - **Hashtags** TOTD - **Version** 2020.12.06 #> class TipOfTheDay { [int]$Id [ValidateSet("Beginner", "Professional", "Expert", "Humor")] [string]$Professionalism [string]$Tip [String]$Resource } $totdDb = @() $totdDb += [TipOfTheDay]@{Id = 101 ; Professionalism = "Beginner" ; Tip="Auf dem laufenden bleiben, z.B. über meinen RSS-Feed." ; Resource="https://attilakrick.com/feed/"} $totdDb += [TipOfTheDay]@{Id = 102 ; Professionalism = "Beginner" ; Tip="Auf dem laufenden bleiben. Folgenden Sie mir (Attila Krick) auf Twitter." ; Resource="https://twitter.com/AttilaKrick"} $totdDb += [TipOfTheDay]@{Id = 103 ; Professionalism = "Beginner" ; Tip="Auf dem laufenden bleiben. Verbinden Sie sich mit mir (Attila Krick) auf LinkedIn." ; Resource="https://www.linkedin.com/in/attilakrick/"} $totdDb += [TipOfTheDay]@{Id = 104 ; Professionalism = "Beginner" ; Tip="Testen Sie Ihr PowerShell-Wissen in einem Quiz" ; Resource="https://attilakrick.com/powershell/powershell-wissenstest/"} $totdDb += [TipOfTheDay]@{Id = 500 ; Professionalism = "Professional" ; Tip="Artikel: PowerShell-Objekte für die eigenen Zwecke erweitern und einspannen." ; Resource="https://attilakrick.com/powershell/powershell-objekt-erweiterung/"} $totdDb += [TipOfTheDay]@{Id = 501 ; Professionalism = "Beginner" ; Tip="Artikel: Wie kann ich ein mir unbekanntes Cmdlet finden?" ; Resource="https://attilakrick.com/powershell/cmdlet-finden/"} $totdDb += [TipOfTheDay]@{Id = 502 ; Professionalism = "Professional" ; Tip="Artikel: Der ideale Aufbau einer PowerShell-Script-Datei (.PS1, .PSM1)" ; Resource="https://attilakrick.com/powershell/powershell-script-aufbau/"} $totdDb += [TipOfTheDay]@{Id = 503 ; Professionalism = "Beginner" ; Tip="Artikel: PowerShell-Objekte in 3 Schritten erfolgreich analysieren" ; Resource="https://attilakrick.com/powershell/powershell-objekt-analyse/"} $totdDb += [TipOfTheDay]@{Id = 504 ; Professionalism = "Beginner" ; Tip="Artikel: PowerShell 7 Neuerungen und Gründe für den Umstieg" ; Resource="https://attilakrick.com/powershell/neuerungen-powershell-7/"} $totdDb += [TipOfTheDay]@{Id = 505 ; Professionalism = "Professional" ; Tip="Artikel: PowerShell Sicherheit in 6 Schritten produktiv absichern" ; Resource="https://attilakrick.com/powershell/powershell-sicherheit/"} $totdDb += [TipOfTheDay]@{Id = 506 ; Professionalism = "Professional" ; Tip="Artikel: Sensible Daten mit PowerShell verschlüsseln" ; Resource="https://attilakrick.com/powershell/verschluesseln-mit-powershell/"} $totdDb += [TipOfTheDay]@{Id = 507 ; Professionalism = "Beginner" ; Tip="Artikel: PowerShell Seminare für Anfänger und Profis" ; Resource="https://attilakrick.com/powershell/powershell-seminare/"} $totdDb += [TipOfTheDay]@{Id = 508 ; Professionalism = "Beginner" ; Tip="Artikel: Einstieg in PowerShell für Anfänger und Profis" ; Resource="https://attilakrick.com/powershell/powershell-tutorial/"} $totdDb += [TipOfTheDay]@{Id = 509 ; Professionalism = "Professional" ; Tip="Artikel: WPF-GUI mit PowerShell erstellen" ; Resource="https://attilakrick.com/powershell/gui-mit-powershell-erstellen/"} $totdDb += [TipOfTheDay]@{Id = 510 ; Professionalism = "Beginner" ; Tip="Artikel: PowerShell Pipeline Sinn & Nutzen erklärt" ; Resource="https://attilakrick.com/powershell/funktionsweise-powershell-pipeline/"} $totdDb += [TipOfTheDay]@{Id = 511 ; Professionalism = "Beginner" ; Tip="Artikel: Wissenswerte und Nützliche Quellen" ; Resource="https://attilakrick.com/allgemein/wissenswert/"} $totdDb += [TipOfTheDay]@{Id = 714 ; Professionalism = "Beginner" ; Tip="Cmdlet: Get-Hotkeys => Zeigt die wichtigsten Tastatur-Befehle rund um PowerShell an." ; Resource="Get-Hotkeys"} $totdDb += [TipOfTheDay]@{Id = 715 ; Professionalism = "Beginner" ; Tip="Die Syntax für ein Cmdlet erhalten." ; Resource="Get-Command -Name Get-Process -Syntax"} $totdDb += [TipOfTheDay]@{Id = 716 ; Professionalism = "Professional" ; Tip="Detaillierte und vollständige Informationen zu Parametern und ParameterSets eines Cmdlets erhalten." ; Resource="Get-Command -Name Get-Process -ShowCommandInfo"} $totdDb += [TipOfTheDay]@{Id = 717 ; Professionalism = "Beginner" ; Tip="Du kannst Visual Studio Code über die 'settings.json' an Deine Bedürfnis anpassen." ; Resource=".\Private\Wissen\B_Basic\B17_Tool_VisualStudioCode.md"} $totdDb += [TipOfTheDay]@{Id = 718 ; Professionalism = "Beginner" ; Tip="Mittels Pipeline '|' kann der Output eines Cmdlets an das nächste Cmdlet übergeben werden." ; Resource='Get-ChildItem "C:\Windows" | Where-Object "Extension" -EQ ".log"'} $totdDb += [TipOfTheDay]@{Id = 719 ; Professionalism = "Beginner" ; Tip="Alle PowerShell Cmdlets in einem Fenster anzeigen, nach Spalte sortiert und individuell filtern." ; Resource="Get-Command -Name *-* -CommandType Cmdlet, Function | Select-Object -Property Name, ModuleName, Verb, Noun | Out-GridView -OutputMode Multiple"} $totdDb += [TipOfTheDay]@{Id = 720 ; Professionalism = "Beginner" ; Tip="<STRG> + <SPACE> öffnet die Autovervollständigung in Visual Studio Code und in der Console für Cmdlets und Parameter" ; Resource="<STRG> + <SPACE>"} $totdDb += [TipOfTheDay]@{Id = 721 ; Professionalism = "Humor" ; Tip="Mann lernt nicht richtig zu fluchen bis mann Auto fahren lernt." ; Resource="Get-Process | Select-Object -Property *"} $totdDb += [TipOfTheDay]@{Id = 722 ; Professionalism = "Humor" ; Tip="Die PowerShell-Standard-Ausgabe zeigt nie das was man wissen will." ; Resource=""} $totdDb += [TipOfTheDay]@{Id = 723 ; Professionalism = "Beginner" ; Tip="'Get-Alias' ist für kryptische Befehle der erste Schritt zur Auslösung." ; Resource="Get-Alias"} $totdDb += [TipOfTheDay]@{Id = 724 ; Professionalism = "Beginner" ; Tip="'Get-Member' ist immer gut für eine aufschlussreiche Analyse von Variablen und Cmdlet-Rückgabeobjekte." ; Resource="Get-Process | Get-Member"} $totdDb += [TipOfTheDay]@{Id = 725 ; Professionalism = "Beginner" ; Tip="Vergegenwärtigen Sie Ihre Ausgangssituation, Ihr Ziel und lösen Sie Probleme auf atomarer Ebene. => 1. Zielführendes Cmdlet finden. 2. Hilfe zu diesem Cmdlet lesen. 3. Rückgabeobjekte mit Get-Member und Select-Object analysieren. 4. Cmdlet testen. 5. Rückschlüsse ziehen und Zwischenschritt-Lösung einbauen. " ; Resource=""} $nowTotd = $totdDb | Get-Random -Count 1 $esc=$([char]27) @" $esc[90m- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -$esc[0m Tipp des Tages - Nummer: $esc[91m$($nowTotd.Id)$esc[0m Professionalität: $esc[93m$($nowTotd.Professionalism)$esc[0m $esc[36m$($nowTotd.Tip)$esc[0m Ressource: $esc[91m$($nowTotd.Resource)$esc[0m $esc[90m- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -$esc[0m "@ | Out-Host |