Powershell Hashtable - Relativ sinnvoll eingesetzt?
Ich hab das mal geschrieben um für zukünftige Einsätze die Powershell Hastables einsetzen zu können.
Habt ihr da evtl. bessere Wege?
Dabei geht es nicht um Datenerfassung wie im Beispiel, sondern darum ob die Methode die Hashtable zu füllen gut ist oder nicht.
Habt ihr da evtl. bessere Wege?
Dabei geht es nicht um Datenerfassung wie im Beispiel, sondern darum ob die Methode die Hashtable zu füllen gut ist oder nicht.
$users="Hans","Peter","Gustav"
$Datenerfassung=@{Benutzer="$users";Password="Geben Sie Ihr Kennwort ein.";Username="Geben Sie Ihren Benutzernamen ein.";ID="Geben Sie Ihre ID ein."}
foreach($user in $users){
$ID_User="ID_"+"$User"
$Username_User="Username_"+"$User"
$Password_User="Password_"+"$User"
$Datenerfassung.$ID_User=Read-Host ""$Datenerfassung.ID
$Datenerfassung.$Username_User=Read-Host ""$Datenerfassung.Username
$Datenerfassung.$Password_User=Read-Host ""$Datenerfassung.Password
}
$datenerfassung.getenumerator() |sort-object -Property key
Name Value
---- -----
Benutzer Hans Peter Gustav
ID Geben Sie Ihre ID ein.
ID_Gustav IDvonGustav
ID_Hans IDvonHans
ID_Peter IDvonPeter
Password Geben Sie Ihr Kennwort ein.
Password_Gustav PasswortvonGustav
Password_Hans PasswortvonHans
Password_Peter PasswortvonPeter
Username Geben Sie Ihren Benutzernamen ein.
Username_Gustav BenutzernamevonGustav
Username_Hans BenutzernamevonHans
Username_Peter BenutzernamevonPeter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 260792
Url: https://administrator.de/forum/powershell-hashtable-relativ-sinnvoll-eingesetzt-260792.html
Ausgedruckt am: 09.04.2025 um 13:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo marabunta,
eher suboptimal... Wenn du flexibel bleiben willst mach das ganze doch mit einem PSObject, das kannst du später nach Bedarf auch um weitere Daten und Spalten erweitern. Hashtables sind eher nur was für einen Key mit einem Wert, mehr nicht.
Beispiel mit Custom Objects
Der Vorteil mit einem Custom-Object ist z.B. das es sich sehr einfach z.B direkt an das CMDLet export-csv pipen lässt wenn man mal einen Export benötigt. Und nicht nur das, Objekte sind einfach besser zu handhaben und flexibel erweiterbar.
Hashtables haben auch Ihre Berechtigung, es kommt aber eben auf den Verwendungszweck an.
Grüße Uwe
eher suboptimal... Wenn du flexibel bleiben willst mach das ganze doch mit einem PSObject, das kannst du später nach Bedarf auch um weitere Daten und Spalten erweitern. Hashtables sind eher nur was für einen Key mit einem Wert, mehr nicht.
Beispiel mit Custom Objects
# Array erstellen das unsere Objects(Zeilen) zusammenfasst
$allData = @()
# PSCustomObject dem Array hinzufügen / Kannst du natürlich auch mit einer Schleife nutzen
$allData += New-Object PSObject -Property @{Benutzer="BenutzerA";ID="ID_A";Password='Geheim'}
$allData += New-Object PSObject -Property @{Benutzer="BenutzerB";ID="ID_B";Password='Geheim'}
$allData
Hashtables haben auch Ihre Berechtigung, es kommt aber eben auf den Verwendungszweck an.
Grüße Uwe
Zitat von @Marabunta:
Ich dachte schon mit Hashtables hätte ich in der Kategorie Array schon das mächtigste in PS gefunden.
Naja umso besser...thx
Schau dir mal das NET-Framework an, dann weist du was dir entgeht Ich dachte schon mit Hashtables hätte ich in der Kategorie Array schon das mächtigste in PS gefunden.
Naja umso besser...thx
Daraus lassen sich nämlich fast alle Klassen auch in Powershell nutzen....denn Powershell basiert auf .NET
.NET Framework-Klassenbibliothek