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 Mit Powershell aus .txt bestimmten Wert auslesen und herabsetzen

Mitglied: FISIStew

FISIStew (Level 1) - Jetzt verbinden

14.02.2018 um 13:23 Uhr, 288 Aufrufe, 9 Kommentare

Hallo zusammen,

ich möchte ein PS Script entwerfen mit dem ich bestimmte Dienste von verschiedenen Servern stoppe, aus einer .txt einen bestimmten Wert auslese und diesen mit einem Wert von -1 dann in einem Array speichere und danach an ein SQL Statement übergebe.
Folgendes habe ich bisher geschafft, bleibe aber am auslesen der .txt hängen.

POWERSHELL
#Service auf dem Server 02 stoppen, 15 Sekunden warten und den Status zurück geben
Set-Service -Name Dienst -ComputerName Server1 -Status Stopped
Start-Sleep -Seconds 15
Get-Service -ComputerName Server1 | Where-Object{$_.Name -like "Dienst"} | %{$_.Status}


#Service auf dem Server 01 stoppen, 15 Sekunden warten und den Status zurück geben
Set-Service -Name Dienst -ComputerName Server2 -Status Stopped
Start-Sleep -Seconds 15
Get-Service -ComputerName Server2 | Where-Object{$_.Name -like "Dienst"} | %{$_.Status}


#Service auf dem Server DB stoppen, 15 Sekunden warten und den Status zurück geben
Set-Service -Name Dienst -ComputerName Server3 -Status Stopped
Start-Sleep -Seconds 15
Get-Service -ComputerName Server3 | Where-Object{$_.Name -like "Dienst"} | %{$_.Status}


#Kopieren der EngineConfiguration.config und als test.txt in TEMP speichern
Copy-Item "C:\Program Files\Pfad\EngineConfiguration.config" C:\temp\test.txt



Bis hierher würde alles funktionieren!
Ich möchte allerdings den Wert auslesen, der hinter dem
deleteHistoricalCalculationsOlderThanDays steht, also die 7 wie in dem Auszug der .txt zu sehen und diesen Wert in ein Array schreiben.

TEXTFILE
<?xml version="1.0" encoding="utf-8"?>

<engineConfiguration>
<executor batchSize="50"
loggingLevel="1"
queueModifiedEachCycle="true"
queueAllPeriodically="true"
queuePeriodicallyAt="4"
queuePeriodicallyWeekDays="Sunday"
requeueFailures="false"
deleteHistoricalCalculationsOlderThanDays="7"
extendValidityPeriods="false"
skipQueuingUnresolved="true"
allowedRemoteIPMask="::1,127.0.0.1,172.16.7.29">


Wie kann ich das realisieren?
Da dieser Wert nicht immer zwingend in der selben Zeile steht oder auch der Wert zwischen 1-31 liegen kann benötige ich etwas Hilfe.

Hat hierzu jemand eine Idee?
Vielen Dank im voraus
Mitglied: 135333
14.02.2018, aktualisiert um 14:28 Uhr
Ich möchte allerdings den Wert auslesen, der hinter dem
deleteHistoricalCalculationsOlderThanDays steht, also die 7 wie in dem Auszug der .txt zu sehen und diesen Wert in ein Array schreiben.
Das ist ein XML File, das lässt sich problemlos via XML Object auslesen
01.
$werte = @() 
02.
$werte += ([xml](gc "C:\Program Files\Pfad\EngineConfiguration.config")).engineConfiguration.deleteHistoricalCalculationsOlderThanDays
Gruß Snap
Bitte warten ..
Mitglied: FISIStew
14.02.2018 um 14:39 Uhr
Hey,
erstmal vielen Dank für Deine Antwort!
Allerdings wenn ich den Wert mit write-host $werte ausgeben möchte um zu sehen was er ausgelesen hat, dann hat er nichts ausgelesen
auch das umleiten in eine Textfile bleibt diese leer!
Bitte warten ..
Mitglied: 135333
LÖSUNG 14.02.2018, aktualisiert um 15:27 Uhr
Geht hier einwandfrei, leider postest du nicht den kompletten Inhalt der XML Datei, das ist wichtig um den Baum der Eigenschaften zu kennen.
Von mir aus kannst du es auch mit Regular Expressions extrahieren, das geht ebenfalls
01.
$werte  = @() 
02.
$werte += [regex]::match((gc "C:\Program Files\Pfad\EngineConfiguration.config" -raw), 'deleteHistoricalCalculationsOlderThanDays="(\d+)"').Groups[1].Value
p.s. ich gehe hier bei beiden Skripten von einer aktuellen Powershell >= 3.0 aus!
Bitte warten ..
Mitglied: FISIStew
14.02.2018 um 15:37 Uhr
Super, damit hat es funktioniert, ich bekomme den Wert 7 zurück!
Vielen Dank erstmal
Bitte warten ..
Mitglied: FISIStew
15.02.2018 um 08:26 Uhr
Eine Frage habe ich noch, falls Du mir da auch helfen kannst
Wie kann ich nun den Wert den ich ausgelesen habe und mit

$werte -= 1

bearbeitet wurde, nun in die .config Datei zurückschreiben und diese speichern?

VG
Bitte warten ..
Mitglied: 135333
LÖSUNG 15.02.2018, aktualisiert um 08:39 Uhr
Ich würde dir zwar dringend empfehlen es über die XML Methode zu machen, da du aber anscheinend nicht bereit bist die XML hier im Ganzen zu Posten hier die Replace-Variante.
01.
$path = "C:\Program Files\Pfad\EngineConfiguration.config" 
02.
[regex]::replace((gc $path -raw), 'deleteHistoricalCalculationsOlderThanDays="(\d+)"',{param($m) "deleteHistoricalCalculationsOlderThanDays=`"$([int]$m.Groups[1].Value -1)`""}) | SC $path
p.s. Wenn du noch eine veraltete PS2.0 nutzt dringend updaten, denn die hat viele Bugs und Unzulänglichkeiten.
Bitte warten ..
Mitglied: FISIStew
15.02.2018 um 08:50 Uhr
Guten Morgen,
ich verstehe was Du meinst mit der XML Methode zu lösen, allerdings kann ich Dir aktuell nicht sagen woran es liegt.
Meine PS ist auf dem aktuellsten Stand, allerdings kann ich nur ausschnitte von der XML zeigen, da ich sonst zu viel ändern müsste! Sorry

Vielen Dank für Deine schnelle Antwort und es würde auch funktionieren, allerdings würde ich gerne den Wert aus der $werte übernehmen und nicht einfach nur -1 , Hintergrund ist, das das Script abbricht wenn der Wert aus der config

if ($werte -le 7)

ist.

VG
Bitte warten ..
Mitglied: 135333
15.02.2018, aktualisiert um 09:44 Uhr
Zitat von FISIStew:
Vielen Dank für Deine schnelle Antwort und es würde auch funktionieren, allerdings würde ich gerne den Wert aus der $werte übernehmen und nicht einfach nur -1
Das macht das Skript aber, der Wert wird der XML direkt entnommen und sofort um eins reduziert . If Abfragen kannst du im MatchEvaluator des 3 Parameters von der Replace-Funktion einfügen.
Einfach mal etwas einlesen wäre mal angebracht, dann musst du nicht jeden Furz erfragen.
https://msdn.microsoft.com/de-de/library/ht1sxswy(v=vs.110).aspx
Bitte warten ..
Mitglied: FISIStew
15.02.2018 um 09:44 Uhr
Vielen Dank!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Werte aus CSV in TXT - Powershell
gelöst Frage von Komoran12Batch & Shell20 Kommentare

Hallo Ihr, ich benötige mal wieder Eure Hilfe,kann mir wer mit einem Code aushelfen? Ich habe eine .csv mit ...

PHP

Wert aus txt auslesen und in ein bestimmtes feld setzen

Frage von Dr.BytePHP2 Kommentare

Hallo, ich benutze folgenden Text um bei einem bestimmten Wert einen bestimmten Begriff in ein bestimmtes Feld zu setzen: ...

Entwicklung

Powershell: Werte aus Array gezielt auslesen

gelöst Frage von SunnyRainyDayEntwicklung3 Kommentare

Hallo, Stehe ein wenig auf´m Schlauch. Ich möchte aus einem Array nur den Wert eines Feldes auslesen. Also z.b. ...

Batch & Shell

Powershell: Wert aus Registry auslesen und mit vorhandenem Wert vergleichen

gelöst Frage von BrowserlauserBatch & Shell5 Kommentare

Hallo, ich stehe vor folgendem Problem: Ich möchte per Powershell aus der Registry einen bestimmten Wert auslesen. Beispiel: in ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 2 TagenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 4 TagenHumor (lol)10 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 4 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 5 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail32 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server21 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

Windows Server
Server verliert Dateien und Ordner
gelöst Frage von routeserverWindows Server18 Kommentare

Hallo Freunde, ich habe hier ein Problem, das mich an meine Grenzen treibt und ich würde gerne wissen, ob ...

Windows Tools
User Self Service und Client Management
Frage von OrkansonWindows Tools14 Kommentare

Hallo zusammen, ich hab ein paar verschiedene Fragen: 1. Was benutzt ihr um Software im Unternehmen zu verteilen? 2. ...