none
Get-Service, Property Status, Verständnisfrage, RRS feed

  • Frage

  • hallo Zusammen

    ich habe gerade aus einem Buch ein Beispiel abgetippt, bei dem bei Get-Service das Property "Status" der Zahlenwert 1-4 ausgegeben wird.

    $_.status


    $excel = New-Object -ComObject Excel.Application
    $workbook = $excel.workbooks.add()
    $excel.visible = $true
    $excel.cells.item(1,1) = "Service Name"
    $excel.cells.item(1,2) = "Service Status"
    $excel.cells.item(1,3) = "Service Status"
    
    $i = 2
    Get-Service |
        foreach{
            $excel.cells.item($i,1) = $_.Name
            $excel.cells.item($i,2) = $_.status
            $excel.cells.item($i,3) = "$($_.status)"
            $i=$i+1
    
        }
    

    wenn ich das gleiche abgekürzt mache kommt ich der Langtext "started oder stopped"? Ich finde keinen Unterschied.

      
      Get-Service |
        foreach{
            $_.status
            "$($_.status)"
         }


    Chris


    Montag, 6. April 2020 17:10

Antworten

  • Moin,

    wenn Du die Zahlenwerte haben willst, bekommst Du sie mit

    Get-Service | ForEach-Object { $_.Status.value__ }
    EDIT: Jetzt verstehe ich, wo Dein Problem liegt. Der Standardtyp einer Excel-Zelle ist Zahl, und es wird versucht, das Ergebnis als Zahl zu casten (was ja auch gelingt, da es ja ein  Enum ist, und der wahre Wert ist der Index...)


    Evgenij Smirnov

    http://evgenij.smirnov.de


    Montag, 6. April 2020 17:29

Alle Antworten

  • Moin,

    wenn Du die Zahlenwerte haben willst, bekommst Du sie mit

    Get-Service | ForEach-Object { $_.Status.value__ }
    EDIT: Jetzt verstehe ich, wo Dein Problem liegt. Der Standardtyp einer Excel-Zelle ist Zahl, und es wird versucht, das Ergebnis als Zahl zu casten (was ja auch gelingt, da es ja ein  Enum ist, und der wahre Wert ist der Index...)


    Evgenij Smirnov

    http://evgenij.smirnov.de


    Montag, 6. April 2020 17:29
  • ganz schön verwirrend. Aber ganz gut erklärt. Da hätte ich noch lange testen können.

    hätte ich mit dem .value auch das selbst aus get-member oder aus der Hilfe herauslesen können?

    ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}                                                                                                  
    Site                      Property      System.ComponentModel.ISite Site {get;set;}                                                                                                           
    StartType                 Property      System.ServiceProcess.ServiceStartMode StartType {get;}                                                                                               
    Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}                                                                                           
    ToString                  ScriptMethod  System.Object ToString(); 


    Chris


    Montag, 6. April 2020 17:35
  • hätte ich mit dem .value auch das selbst aus get-member oder aus der Hilfe herauslesen können?

    Ja:

    Get-Service | Select-Object -ExpandProperty StartType | Get-Member *


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 6. April 2020 17:43