有没有办法在执行之前设置Powershell脚本的处理器相关性



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

我正在呼叫的exe在cygwin中;它似乎在开始使用cmd.exe /c start <command> /affinity 16后改变了亲和力

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

$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 的自动变量。

最新更新