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, 782 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 ..
Ähnliche Inhalte
E-Mail
Live.de Email erstellen (2)

Frage von themast zum Thema E-Mail ...

Batch & Shell
gelöst Erstellen von Verknüpfungen mithilfe einer Variablen (3)

Frage von ciNNEx zum Thema Batch & Shell ...

Batch & Shell
gelöst Ich Möchte in einem Batch Programm User erstellen (14)

Frage von Gangster137910 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(1)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...