(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}}}
答案1
花了一些时间,但我只是一点一点地分析它
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}
}
}
}
}
}