none
Prozess anhand der ID als Variable bearbeiten. RRS feed

  • Frage

  • Hallo,

    Bin nicht sicher ob ich den Titel aussagekräftig gewählt habe...

    Folgendes Szenario:

    Ich habe eine Variable die eine ProzessID beinhaltet:
    PS C:\windows\system32> $id_03

    processID
    ---------
        12296

    Diese möchte ich in einer weiteren Variable speichern um sie weiter zu verarbeiten:
    PS C:\windows\system32> $process = Get-Process -id $id_03

    damit bekomme ich folgende Fehlermeldung:
    Get-Process : Cannot bind parameter 'Id'. Cannot convert the "@{processID=12296}" value of type "Selected.System.Management.Automation.PSCustomObject" to type
    "System.Int32".
    At line:1 char:28
    + $process = Get-Process -id $id_03
    +                            ~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Get-Process], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetProcessCommand

    Wie kann ich meine Variable "$id_03" umwandeln, damit ich sie für "$process = Get-Process -id" benutzen kann.

    Zum Hintergrund:
    Ich habe mehrere Prozesse die ich bearbeiten möchte mit gleichem Namen und kann sie nur durch ihre ID unterscheiden.

    Danke im voraus.

    Viele Grüße

    Amara

    Donnerstag, 19. November 2020 11:55

Antworten

  • Moin,

    wie Du an der Ausgabe siehst, ist der Wert Deiner Variablen keine Zahl oder String, sondern ein Objekt mit einer Property "processID". Wenn Du an den Wert dieser Property willst, musst Du das auch so definieren:

    $id_03.processID

    oder, noch besser, bereits beim Befüllen darauf achten :-)


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Donnerstag, 19. November 2020 13:03

Alle Antworten

  • Wie immer gibts mehrere Methoden, z.B.:

    $var2 = $var1 -as [int]

    oder

    [int]$intNum = [convert]::ToInt32($strNum)

    Donnerstag, 19. November 2020 12:19
  • Moin,

    wie Du an der Ausgabe siehst, ist der Wert Deiner Variablen keine Zahl oder String, sondern ein Objekt mit einer Property "processID". Wenn Du an den Wert dieser Property willst, musst Du das auch so definieren:

    $id_03.processID

    oder, noch besser, bereits beim Befüllen darauf achten :-)


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Donnerstag, 19. November 2020 13:03
  • Amara, hallo erstmal und willkommen im Deutschen Microsoft Windows Powershell Forum. ;-)

    Bin nicht sicher ob ich den Titel aussagekräftig gewählt habe...

    Ich finde es ja schon dankenswert, dass Du das überhaupt versuchst. ... also Danke dafür.

    Wenn Du jetzt beim nächsten Mal noch bitte den Code und Fehlermeldungen oder Konsolen-Output oder - falls nötig - Beispiel-Daten als Code formatierst, wäre das absolut super. ;-) 

    Danke schon mal im Voraus.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 19. November 2020 16:28
  • Hallo,

    $id_03.processID, in Verbindung mit "bereits beim Befüllen darauf achten" war der richtige Denkanstoß für mich.

    Jetzt klappts.

    Vielen Dank.


    Freitag, 20. November 2020 07:53