Top-Themen

Aktuelle Themen (A bis Z)

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 Import-CSV

Frage Entwicklung Batch & Shell

Mitglied: derhoeppi

derhoeppi (Level 2) - Jetzt verbinden

09.07.2013 um 09:43 Uhr, 2699 Aufrufe, 12 Kommentare, 1 Danke

Hallo Leute,

nachdem wir gestern bereits ein Problem bei einer Filterbedingung gelöst haben, möchte ich nun ein anderes Skript, welches ebenfalls auf die CSV zugreift erweitern. Meine CSV-Datei enthält folgende Werte: VMName, Powerstate, VMHost. Die CSV enthält ca. 500 VM's. Darunter befindet sich ebenfalls mein vCenter und der SQL Server auf dem die vCenter Datenbank liegt. Wie bekomme ich es im Skript hin, dass mir der Host dieser beiden Server genannt wird?

Gruß
derhoeppi
Mitglied: colinardo
09.07.2013, aktualisiert um 09:56 Uhr
Hello again derhoeppi,
sind zwar nur spärliche Infos die du hier lieferst aber im groben und ganzen so:
01.
$csv = import-csv "C:\test.csv" 
02.
$csv | ?{$_.Name -eq "nameDeinesvCenterServer"} | select VMHost
Grüße Uwe
Bitte warten ..
Mitglied: derhoeppi
09.07.2013 um 10:51 Uhr
Hallo Uwe,

ich habe meinen Fehler gefunden. Ich habe in einer Variablen den DNS Namen des vCenters stehen. In der CSV steht jedoch nur der Anzeigename, so dass die Option -eq nie gegriffen hat. Ich hätte es durch ein -like ersetzen sollen.
Mit dem Skript möchte ich den Host ermitteln auf dem die VM zum Zeitpunkt der CSV Erstellung lief. Nach einem Shutdown des RZ möchte ich bestimmte Maschinen wieder hochfahren. Da ich zu diesem Zeitpunkt noch kein vCenter zur Verfügung habe, möchte ich mich direkt auf den Host verbinden um das vCenter + SQL Server bzw. eine vApp zu starten. Dazu muss ich die Hosts ermitteln. Gleiches gilt zum Beispiel für einen RZ Shutdown,
Bitte warten ..
Mitglied: kontext
09.07.2013, aktualisiert 10.07.2013
Zitat von derhoeppi:
ich habe meinen Fehler gefunden. ....
Somit sollte das Problem gelöst sein, richtig?
Dann wäre es noch hilfreich die Frage auch als gelöst zu markieren: http://www.administrator.de/faq/32


Da kommt doch noch was (Siehe unten) ...
... da kam der Moderator zu früh in mir zum Vorschein

Gruß
@kontext
Bitte warten ..
Mitglied: derhoeppi
09.07.2013 um 11:10 Uhr
Hallo Uwe,

wenn ich den Import mit dem entsprechenden VMHost in eine Variable schreiben lasse, gibt mir die Variable folgenden Inhalt aus: @{VMHost=VMHostName}. Damit kann ich leider kein Connect-VIServer machen. Warum wird @{VMHost=...} mit in die Variable aufgenommen?

Gruß
derhoeppi

@kontext: Es hat schon seinen Grund weshalb ich diesen Thread nicht als gelöst markiert habe.
Bitte warten ..
Mitglied: colinardo
09.07.2013 um 11:21 Uhr
Weil das Ergebnis ein PSCustomObject ist. Um nur den Inhalt zu erhalten musst du die Eigenschaft "expandieren":
01.
$var = $csv | ?{$_.Name -eq "nameDeinesvCenterServer"} | select -ExpandProperty VMHost
Bitte warten ..
Mitglied: derhoeppi
09.07.2013 um 12:30 Uhr
Hallo Uwe,

super vielen Dank. Eine letzte Frage habe ich noch. In meiner CSV habe ich die Spalte VMHost. In einem Cluster sind meinetwegen 3 Hosts. Kann ich über eine Bedingung die VM's zu einem Host filtern, so dass ich zum Beispiel die VM's auf dem Host herunterfahren oder Starten kann? Vermutlich werde ich hier mit foreach arbeiten müssen?

Gruß
derhoeppi
Bitte warten ..
Mitglied: colinardo
09.07.2013 um 12:36 Uhr
wo stehen die die 3 Hosts ? in einer zusätzlichen Spalte ? mit welchem Trennzeichen voneinander getrennt?
Filtere den Cluster dann musst du mit Split den String mit den Hosts zerlegen und dieses Array mit einer Foreach-Schleife durchlaufen.
Bitte warten ..
Mitglied: derhoeppi
10.07.2013, aktualisiert um 08:22 Uhr
Hallo Uwe,
der Cluster ist nicht in der CSV vermerkt. Nur VMName, Host der VM und Powerstatus.

Ich importiere zum Anfang die CSV-Datei folgendermaßen.

$VMHosts = Import-Csv "CSVDatei.csv" | Select -ExpandProperty VMHosts - unique

Damit erhalte ich die Hosts in der Variablen $VMHosts, die ich nun als Array ansprechen kann. Nun muss ich nur noch in einer Foreach Schleife die Hosts entsprechend auswählen und die VM's auf diesen Hosts erneut importieren, damit ich einen neuen Filter erhalte.

Gruß
derhoeppi
Bitte warten ..
Mitglied: colinardo
10.07.2013, aktualisiert um 08:24 Uhr
Ich verstehe immer noch nicht ganz wo das Problem liegt. Im vorigen Post habe ich das doch beschrieben:
01.
$VMHosts = Import-Csv "CSVDatei.csv" | ?{$_.VMName -eq "NamedergesuchtenVM"} | Select -ExpandProperty VMHosts
(?{} ist eine Abkürzung für ein Where-Object)
Dies liefert in der Variablen $VMHosts ein Array von Strings nur mit dem Namen der Hosts. Dies kannst du dann wieder mit einer Schleife durchlaufen:
01.
$VMHosts | %{echo $_}
(%{} ist eine Abkürzung für ein Foreach-Object)

Zitat:
Select ist ja nur ein Anzeigefilter,
Stimmt so nicht:
Mit dem Cmdlet "Select-Object" werden nur die angegebenen Eigenschaften eines Objekts oder Satzes von Objekten abgerufen. Er kann auch eindeutige Objekte aus einem Array von Objekten oder eine angegebene Anzahl von Objekten vom Anfang oder Ende eines Arrays von Objekten auswählen.
Wenn Sie angegebene Eigenschaften mit Select-Object auswählen, werden die Werte dieser Eigenschaften aus den Eingabeobjekten kopiert und neue Objekte erstellt, die über die angegebenen Eigenschaften und kopierten Werte verfügen.

Grüße Uwe
Bitte warten ..
Mitglied: derhoeppi
10.07.2013 um 08:56 Uhr
So das ganze habe ich nun gelöst. Funktioniert einwandfrei in meiner Testumgebung.
Um das ganze Script noch übersichtlicher zu machen, möchte ich noch mehr Scriptteile in Functionen auslagern. Ich habe nun eine Funktion, die sich um den Verbindungsaufbau zum VMware Host kümmert.

Relativ simpel mit: Connect-VIServer -Server $VMHost
Nun lese ich aber in der obigen Function die VMware Hosts in eine Variable / Array mit der Bezeichnun $Hosts. Wie kann ich diesen Wert an die Funktion zum Verbindungsaufbau übergeben.

Gruß
derhoeppi
Bitte warten ..
Mitglied: colinardo
10.07.2013, aktualisiert um 09:10 Uhr
01.
function deineFunction($arrHosts){ 
02.
... 
03.
... 
04.
}
Aufruf mit Parametern erfolgt dann so
deineFunction $Hosts
oder so
deineFunction -arrHosts $Hosts
Uwe
Bitte warten ..
Mitglied: derhoeppi
10.07.2013 um 09:25 Uhr
Hallo Uwe,

vielen Dank für das extrem schnelle Feedback. Ich markiere den Beitrag nun als gelöst, weil alle Fragen geklärt sind.

Gruß
derhoeppi
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell .csv export und excel import
gelöst Frage von playmenBatch & Shell12 Kommentare

Hallo Ich möchte gerne aus einer bestehenden CSV Daten mit Powershell Exportieren und diesen Daten einzeln einer Variabel zuweisen ...

Batch & Shell
Powershell: Import-CSV ohne mehrfache Werte
gelöst Frage von DanielBodenseeBatch & Shell2 Kommentare

Hallo zusammen, über Import-CSV und -Header lese ich eine Text-Datei in eine Variable $entries, die Zeilen haben mehrere Spalten. ...

Batch & Shell
Powershell Import CSV zum Drucker erstellen mit Port
Frage von pixel0815Batch & Shell2 Kommentare

Hallo liebe Kollegen, folgendes Skript würde ich gerne verwenden aber irgendwie funktioniert das nicht auf meiner Win 2008 R2 ...

Batch & Shell
Powershell Import Computer aus csv in array und Befehl abarbeiten
Frage von Robbi666Batch & Shell4 Kommentare

Hallo zusammen, ich möchte gerne aus einer Liste von Computern mehrere Dinge überprüfen. $Computername = "Computername" if(Test-Connection -ComputerName $Computername) ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 16 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 20 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...