Mit Powershell strings in Variable oder Array zerlegen

Mitglied: Blacksaber

Blacksaber (Level 1) - Jetzt verbinden

13.01.2021 um 14:57 Uhr, 336 Aufrufe, 8 Kommentare, 4 Danke

Hallo zusammen,

ich versuche mich gerade an der Powershell und hänge an einem, wahrscheinlich, trivialem Problem.

Zielsetzung:
Ich benötige ProzessID(s) von einem Terminalserver die einer bestimmten .exe im Dateisystem zugeordnet sind damit ich diese beenden kann und anschließend einen Updateprozess anstossen kann.
Die Prozesse habe ich in einer Liste mittlerweile hinbekommen. Hier werden auch die Pfade zur .exe angezeigt.
Was ich jetzt nicht hinbekomme ist die ProzessID zu extrahieren damit ich den Prozess abschießen kann.

Ich habe folgendes bisher getan:
Ich erhalte folgendes Ergebnis:

Jetzt ist wichtig das ich die richtige Stage beende, also TuI oder Prelive oder Live.
Das habe ich soweit auch hinbekommen mit

Jetzt habe ich in der $ProcessList folgendes stehen:

Wie bekomme ich jetzt die ProzessID in eine Form dass ich damit weiterarbeiten kann? Einfach ausschneiden geht nicht, da die ID von 3 bis 5 stellig sein kann bzw. ich bekomme das einfach nicht hin. Vielleicht mache ich ja auch schon beim Anfang einen Fehler und das ganze geht noch viel einfacher?

Vielen Dank schon im voraus, ich stehe gerade auf dem Schlauch.

Gruß
Klaus aus I
Mitglied: SlainteMhath
13.01.2021 um 15:08 Uhr
Moin,

in etwa so:

lg,
Slainte
Bitte warten ..
Mitglied: manuel-r
13.01.2021 um 15:31 Uhr
Wie wäre es etwa so (ungetestet)
Manuel

PS: Bestimmt kommt auch noch jemand mit 'nem Einzeiler um die Ecke ;-) face-wink
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
13.01.2021, aktualisiert um 15:49 Uhr
Bitte warten ..
Mitglied: Blacksaber
14.01.2021 um 13:09 Uhr
Danke für die Idee. Leider funktioniert diese Lösung nur wenn ich lokal angemeldet bin und nicht remote da der Get-Process über Remote den Pfad nicht ausgibt.

Nur für mich zum Verständnis: Was bewirkt das "?{[IO.Path]::GetFileName($_.Path)"?
Danke
Bitte warten ..
Mitglied: Blacksaber
14.01.2021 um 13:52 Uhr
Danke für den Vorschlag. Mit dem einzeiler hattest Recht... :-) face-smile

So ganz verstehe ich den Vorschlag allerdings nicht. Du willst jeden Prozess der "Prozesse" die entsprechende Kriterien haben in "Prozess" schreiben und diesen dann wenn "getroffen" beenden. Richtig?

Ich bekomme auf meinem Rechner leider keine Ergebnisse geliefert...

Gruß
Bitte warten ..
Mitglied: Blacksaber
14.01.2021 um 13:54 Uhr
Hi, das sieht gut aus. Kann ich hier nochmal filtern? Weil in dieser Form schreibt mir die PS alle gefundenen Prozesse als ProzessID weg. Ich benötige aber nur die, die einer konkreten Stage entsprechen. Wenn ich die Filterung im Vorfeld mache dann habe ich die @ Zeichen vorne dran und mit deiner Methode passiert dann gar nichts mehr...
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
LÖSUNG 14.01.2021, aktualisiert um 15:27 Uhr
Zitat von Blacksaber:

Danke für die Idee. Leider funktioniert diese Lösung nur wenn ich lokal angemeldet bin und nicht remote da der Get-Process über Remote den Pfad nicht ausgibt.
Auch kein Problem, kannst du so auch gleich beenden ...
oder etwas aktueller und schneller mit CIM statt WMI
Nur für mich zum Verständnis: Was bewirkt das "?{[IO.Path]::GetFileName($_.Path)"?
Holt sich nur den Dateinamen aus einem Pfad, die Doku hätte es dir übrigens auch verraten.
https://docs.microsoft.com/de-de/dotnet/api/system.io.path.getfilename?v ...
Bitte warten ..
Mitglied: Blacksaber
14.01.2021 um 16:43 Uhr
Super!!

Vielen Dank. Damit bekomme ich es jetzt hin. Und danke für den Link zur Doku. Ich hätte nicht gewusst wonach ich genau suchen muss... Das hilft mir sehr weiter! Danke nochmal.

Gruß
Bitte warten ..
Heiß diskutierte Inhalte
Netzwerke
Heimnetzwerk für mobiles Arbeiten
Matthias182Vor 1 TagFrageNetzwerke14 Kommentare

Hallo zusammen, Die Corona Pandemie treibt viele Veränderungen, so auch bei uns. Seit Wochen arbeiten meine Frau und ich wieder von zu Hause. Und ...

Microsoft
Massenumbenennung von Dateien und Ordnern
breakballVor 1 TagFrageMicrosoft12 Kommentare

Hallo zusammen, falls der Beitrag in dieser Kategorie falsch ist, bitte in die richtige verschieben. Stehe vor folgender Aufgabe, in einem Datenverzeichnis befinden sich ...

Firewall
Pfsense plus für Geschäftskunden
Looser27Vor 20 StundenInformationFirewall13 Kommentare

Netgate wird in Zukunft die Open Source Firewall pfSense hauptsächlich als kommerzielle Version unter dem Namen pfSense Plus vermarkten. Die "Community Version" wird weiter ...

TK-Netze & Geräte
Hybrid-Telefon für Betrieb an ISDN- sowie VoIP-Anschluss
Datax87Vor 1 TagFrageTK-Netze & Geräte30 Kommentare

Hallo, ich habe eine Frage zu einer geplanten TK-Anlagen-Umstellung. An der betreffenden ISDN-TK-Anlage sind zurzeit 6 ISDN-Telefone angeschlossen. Der dazugehörige Telefon-/Internetanschluss ist zurzeit ein ...

Router & Routing
Wie DMZ ohne doppeltes NAT am VF-Kabel-Internetzugang realisieren?
OldermanVor 1 TagFrageRouter & Routing24 Kommentare

Hallo und guten Tag allerseits! Ich habe mich nach einiger Zeit des Lesens der aufschlussreichen und wertvollen Beiträge hier zum Thema echtes DMZ mit ...

Windows Systemdateien
Windows 10 Kernisolierung: Inkompatible Treiber entfernen
FrankVor 1 TagAnleitungWindows Systemdateien1 Kommentar

Hallo, Eigentlich wollte ich nur den Empfehlungen der Windows Sicherheit nachgehen und unter Einstellungen -> Windows Sicherheit -> Kernisolierung, die Speicher-Integrität einschalten. Die Kernisolierung ...

Vmware
ESXI 6.5 Fehlgeschlagen - Zugriff auf eine Datei nicht möglich, weil sie gesperrt ist
gelöst zeroblue2005Vor 1 TagFrageVmware5 Kommentare

Hallo Zusammen, da meint man es gut und dann geht es in die Hose Aber erst mal zum IST-Zustand: - ESXI 6.5 U1 (Standalone) ...

Batch & Shell
Benutzeranmeldung mit Einschränkung
gelöst FreeBSDVor 1 TagFrageBatch & Shell8 Kommentare

Hallo zusammen, ich habe da ein kleines Problemchen und zwar versuche ich mich im PowerShell einzulernen, habe da eine kleine Aufgabe bekommen, dennoch krieg ...