以下脚本在 Windows 10 中有效,但在 Windows 7 中无效:
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
$Path1= "TEST\TESTLog_$(get-date -f yyyy-MM-dd).txt"
$AffPBS= Get-Process "LLCService.exe" | Select-Object ProcessorAffinity
$AffLC= Get-Process "LCService.exe" | Select-Object ProcessorAffinity
$AffinityLLCFinal = "LLC " + $AffPBS
$AffinityLCFinal = "LC " + $AffLC
$FinalOutput = $LogTime+" " +$AffinityLLCFinal +" " + $AffinityLCFinal
$FinalOutput | Out-File -Append $Path1
我已经以管理员身份运行 Powershell_ISE,并且设置了 Set-ExecutionPolicy RemoteSigned。
我在 Windows 10 上获得的结果:
10-09-2017_03-31-10 LLC @{ProcessorAffinity=63} LC @{ProcessorAffinity=63}
我在 Windows 7 上获得的结果:
10-09-2017_11-23-26 LLC LC
似乎 Get-Process 在 Windows Embedded Standard 上不起作用。还有其他方法吗?
答案1
Get-Process | Format-Table ProcessorAffinity, *
显示我的标准上某些进程的 ProcessorAffinity 为空Windows-8/64位 即使在高海拔地区PowerShell(ISE)。
而且,Process.ProcessName
财产(==Name
别名属性) 不包括.exe
扩展名:
该
ProcessName
属性保存一个可执行文件名,例如 Outlook,不包含.exe
扩展名或路径. 它有助于获取和操作与同一可执行文件关联的所有进程。
例子
PowerShell_ISE,普通用户:
PS D:\PShell> (Get-Process * |
Select-Object Name, ProcessorAffinity) |
Group-Object -Property ProcessorAffinity |
Format-Table -AutoSize # merely for better readability
Count Name Group
----- ---- -----
41 {@{Name=afwServ; ProcessorAffinity=}, @{Name=AppleMobileDeviceService; Proces...
28 3 {@{Name=avgui; ProcessorAffinity=3}, @{Name=avguix; ProcessorAffinity=3}, @{N...
PowerShell 作为行政人员:
PS C:\Windows\system32> (Get-Process * |
>> Select-Object Name, ProcessorAffinity) |
>> Group-Object -Property ProcessorAffinity |
>> Format-Table -AutoSize # merely for better readability
Count Name Group
----- ---- -----
10 {@{Name=afwServ; ProcessorAffinity=}, @{Name=aswidsagenta; ProcessorAffinity...
59 3 {@{Name=AppleMobileDeviceService; ProcessorAffinity=3}, @{Name=avgsvca; Proc...