有没有办法在执行之前设置PowerShell脚本的处理器关联?

时间:2015-01-27 13:46:27

标签: powershell powershell-v2.0 processor affinity

有很多示例显示使用Get-Process myprocess来更改处理器关联性,以及一些使用Get-WMIObject的示例;但这些对我的使用不起作用。我想在执行时设置脚本的处理器亲和性。有没有办法在调用powershell.exe时或在脚本本身内声明处理器关联?

我正在调用的exe是在cygwin中;在使用cmd.exe /c start <command> /affinity 16

开始后,它似乎会改变亲和力

1 个答案:

答案 0 :(得分:2)

这似乎对我有用,但我还没有测试过。它似乎更新了任务管理器看到的内容。

$thisProcess = [System.Diagnostics.Process]::GetCurrentProcess();
$thisProcess.ProcessorAffinity = 0x1;

ProcessorAffinity是位掩码,因此0x1是核心1,0x2是核心2,0x4是核心3,0x8是核心4,并且等等。如果你想设置核心1-4,它是0xF,核心1-9,0x1FF等。我认为将它设置回“全部”没有任何神奇的价值。

您也可以使用Get-Process -Id $pid,因为$pid是一个自动变量,当前进程为“PID”。