Windows

解析服務路徑名

  • August 18, 2021

(get-ciminstance cim_service).pathname 輸出類似:

C:\WINDOWS\system32\msiexec.exe /V

有誰知道從輸出中刪除所有參數和選項的解決方案?還是一種輸出所有服務執行檔路徑位置的方法?

編輯:我最初的陳述有點誤導我只是在尋找非 system32 服務。所以我的完整腳本看起來像:

$pathnames=(get-ciminstance cim_service).pathnames foreach ($pathname in $pathnames){if ($null -ne $pathname){if ($pathname -like "*system32*"){}else{get-acl $pathname -ErrorAction SilentlyContinue}}}

花了一些時間,但我只是一點一點地解析它

foreach ($pathname in $pathnames){
if ($null -ne $pathname){
   if ($pathname -like "*system32*"){
   }else{
       if($pathname -like '"*" *'){
           foreach ($path in $pathname.split('" ')){
               if ($path -like '"C:*'){
                   $path+'"'
               }
           }
       }elseif($pathname -like '"*'){
               $pathname.replace('"',"'")
           }elseif($pathname -like "\??\*"){
               $pathname
           }else{
               foreach ($path in $pathname.split(' ')){
                   if (!($path -like 'C:\*')){
                   }else{$path}
               }
           }
       }
   }
}

引用自:https://serverfault.com/questions/1074865