Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Hashtable - Relativ sinnvoll eingesetzt?

Frage Entwicklung Batch & Shell

Mitglied: Marabunta

Marabunta (Level 1) - Jetzt verbinden

22.01.2015, aktualisiert 23.01.2015, 2065 Aufrufe, 3 Kommentare

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.
01.
$users="Hans","Peter","Gustav" 
02.
$Datenerfassung=@{Benutzer="$users";Password="Geben Sie Ihr Kennwort ein.";Username="Geben Sie Ihren Benutzernamen ein.";ID="Geben Sie Ihre ID ein."} 
03.
foreach($user in $users){ 
04.
$ID_User="ID_"+"$User" 
05.
$Username_User="Username_"+"$User" 
06.
$Password_User="Password_"+"$User" 
07.
$Datenerfassung.$ID_User=Read-Host ""$Datenerfassung.ID 
08.
$Datenerfassung.$Username_User=Read-Host ""$Datenerfassung.Username 
09.
$Datenerfassung.$Password_User=Read-Host ""$Datenerfassung.Password 
10.
11.
$datenerfassung.getenumerator() |sort-object -Property key 
12.
 
13.
Name                           Value 
14.
----                           ----- 
15.
Benutzer                       Hans Peter Gustav                               
16.
ID                             Geben Sie Ihre ID ein. 
17.
ID_Gustav                      IDvonGustav 
18.
ID_Hans                        IDvonHans 
19.
ID_Peter                       IDvonPeter 
20.
Password                       Geben Sie Ihr Kennwort ein. 
21.
Password_Gustav                PasswortvonGustav 
22.
Password_Hans                  PasswortvonHans 
23.
Password_Peter                 PasswortvonPeter 
24.
Username                       Geben Sie Ihren Benutzernamen ein. 
25.
Username_Gustav                BenutzernamevonGustav 
26.
Username_Hans                  BenutzernamevonHans 
27.
Username_Peter                 BenutzernamevonPeter
Mitglied: colinardo
22.01.2015, aktualisiert um 16:09 Uhr
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
01.
# Array erstellen das unsere Objects(Zeilen) zusammenfasst 
02.
$allData = @() 
03.
 
04.
# PSCustomObject dem Array hinzufügen / Kannst du natürlich auch mit einer Schleife nutzen 
05.
$allData += New-Object PSObject -Property @{Benutzer="BenutzerA";ID="ID_A";Password='Geheim'} 
06.
$allData += New-Object PSObject -Property @{Benutzer="BenutzerB";ID="ID_B";Password='Geheim'} 
07.
 
08.
$allData
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
Bitte warten ..
Mitglied: Marabunta
22.01.2015, aktualisiert um 16:19 Uhr
Ich dachte schon mit Hashtables hätte ich in der Kategorie Array schon das mächtigste in PS gefunden.
Naja umso besser...thx
Bitte warten ..
Mitglied: colinardo
LÖSUNG 22.01.2015, aktualisiert 23.01.2015
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
Daraus lassen sich nämlich fast alle Klassen auch in Powershell nutzen....denn Powershell basiert auf .NET
.NET Framework-Klassenbibliothek
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

Entwicklung
Powershell Funktion Pipeline oder nicht (4)

Frage von H41mSh1C0R zum Thema Entwicklung ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

SAN, NAS, DAS
+100tb Storagelösung (11)

Frage von Data-Fabi zum Thema SAN, NAS, DAS ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...