Windows
解析服務路徑名
(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} } } } } }