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

Hashtable erstellen

Frage Entwicklung Batch & Shell

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

15.08.2014 um 10:20 Uhr, 765 Aufrufe, 7 Kommentare

Hi,
ich wollte kurz fragen ob jemand weiss wie man in Powershell ein Hashtable erzeugt und diese nach und nach füllt. Damit dann zum schluss ein PS Object erstellt werden kann.

Ich habe nämlich eine Forechschleife und die Daten die darauf resultieren sollen der Hashtabelle angefügt werden damit ich später ein psobject draus machen kann.


So sollte es später aussehen:

Zeile Druckername
------------------
1 2

Hinzufügen in der foreach schleife

der wert 2 und 3

Gruß
Matze
Mitglied: colinardo
15.08.2014, aktualisiert um 10:40 Uhr
01.
$ht = @{} 
02.
1..10 | %{$ht[$_] = "BlaBla"} 
03.
$ht
oder direkt ein Objekt erzeugen und es in einem Array hinzufügen, das entspricht vermutlich eher deinen Vorstellungen:
01.
$arr = @() 
02.
for ($i = 1; $i -le 10; $i++){ 
03.
    $arr += new-Object PSObject -Property @{"Zeile"=$i;"Druckername"="BlaBla"} 
04.
05.
$arr
Working with Hash Tables

Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
15.08.2014 um 11:09 Uhr
Hi Uwe...
super jetzzt weiss ich wieder mehr...

öhm habe nur das Problem das ich jetzt noch das den gerade verarbeitendes Object angeben muss...

hier mal der Code
01.
$Location = Read-Host Servername: 
02.
$Server = "$Location"+"W8-S-DC01" 
03.
 
04.
$Session = New-PSSession -ComputerName $Server 
05.
#Enter-PSSession -ComputerName $Server 
06.
Import-PSSession -Session $Session -CommandName "Restart-Service" -Prefix Remote | Out-Null 
07.
 
08.
#Druckernamen mit Jobs 
09.
$Printers = ((Get-WmiObject -ComputerName $Server -Class win32_PrintJob).Name).Split(",") | where {$_ -like "$Location*"} 
10.
$printers_Count = $Printers.Count 
11.
 
12.
#Tabelle erzeugen 
13.
$arr = @() 
14.
 
15.
#Menue erzeugen 
16.
for ($i = 1; $i -le $printers_Count; $i++){ 
17.
    $arr += new-Object PSObject -Property @{"Zeile"=$i;"Druckername"="$Printer"} 
18.
19.
 
20.
$arr 
21.
 
22.
#Spooler neustarten 
23.
#Get-RemoteRestart-Service Spooler 
24.
 
25.
Remove-PSSession -ComputerName $Server 
26.
 
Bitte warten ..
Mitglied: mguenth83
15.08.2014 um 11:16 Uhr
Habs selber...
hab die Zeile hinzugefügt bei Menue erzeugen..
$Printer = ($Printers)[$i-1]
Bitte warten ..
Mitglied: colinardo
15.08.2014, aktualisiert 16.08.2014
würde Zeile 9 so schreiben:
$Printers = Get-WmiObject -ComputerName $Server -Class win32_PrintJob | ?{$_.Name -like "*$Location*"} 
und Zeile 17 dann
$arr += new-Object PSObject -Property @{"Zeile"=$i;"Druckername"=$Printers[$i-1].Name}
Grüße Uwe

Objekte solange Objekte sein lassen wie möglich lautet die Devise!
Bitte warten ..
Mitglied: mguenth83
15.08.2014 um 11:42 Uhr
Hi,
super leider habe ich noch ein lettes Problem...da stand ich schon vor Wochen davor uns hab nur net Notlösung gehabt...

und zwar ist der Output irgendwie ganz nach rechts geschoben in der Console....es sieht so aus als wenn die Tabelle zu viele Leerzeichen enhält, besonders die Spalte "Zeile"

Kann man die Größen der Spalten irgendwie noch anpassen?

Danke und Merci für die Hilfe
Bitte warten ..
Mitglied: colinardo
15.08.2014 um 11:47 Uhr
Zitat von mguenth83:
Kann man die Größen der Spalten irgendwie noch anpassen?
$arr | ft -AutoSize
Bitte warten ..
Mitglied: colinardo
16.08.2014 um 13:04 Uhr
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Netzwerkgrundlagen
IPsec - .conf und .secret erstellen aus Gruppe und User (16)

Frage von MaxMLe zum Thema Netzwerkgrundlagen ...

Batch & Shell
gelöst Powershell Hashtable to Übersichtliche Darstellung (2)

Frage von Marabunta zum Thema Batch & Shell ...

RedHat, CentOS, Fedora
gelöst Erstellen von Desktopverknüpfungen und Anpassung der Taskleiste (2)

Frage von honeybee zum Thema RedHat, CentOS, Fedora ...

Vmware
ESXI Template erstellen (2)

Frage von Phill93 zum Thema Vmware ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...