goooly
Goto Top

Beautifying PowerShell-Code

Das Script soll Programme startfolder-abhängig überwachen und gegebenfalls starten.
Wie kriege ich die häßliche Fehlermeldung weg?

Hallo,
an mein PowerShell-Script über gebe ich mit Pfadangabe das Programm, dessen ständiges Laufen zu überwachen ist:

$prg = $args
$PF  = $prg.split("\")  
$pN  = $PF[$PF.count - 1]
while ( 1) {
    $(foreach ( $p in $PF ) {
        if ( get-process -name $pN | where-object { $_.path -match $p } ) {}
        else  {   $tmp = [System.Diagnostics.Process]::Start( $prg )     }
    })
    start-sleep 1
}    
Das klappt so, aber es erzeugt den häßlichen Fehlertext, wenn das Programm nicht läuft:

Get-Process : Es kann kein Prozess mit dem Namen "progName" gefunden werden. Überprüfen Sie den Prozessnamen,   
und rufen Sie das Cmdlet erneut auf.
Bei C:\Users\cas\Documents\FinInvest\MT5\MT4\checkRun.ps1:9 Zeichen:25
+         if ( get-process <<<<  -name $pN | where-object { $_.path -match $p } ) {}
    + CategoryInfo          : ObjectNotFound: (terminal64:String) [Get-Process], ProcessCommandException
    + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand

Wie kan ich das denn eleganter machen und ohne checkRun.ps1 "C:\...\prgName.exe" >NULL 2&>1

Zusatzfrage:
Kann es sein, dass so ein Script auf einem Virtual-Server Windows 2008 nicht bearbeietet wird?

Danke, gooooly

Content-Key: 166083

Url: https://administrator.de/contentid/166083

Printed on: April 19, 2024 at 00:04 o'clock