PowerShell ProccesorAffinity CPU指定

PowerShell ProccesorAffinity CPU指定,powershell,Powershell,我试图设置一个脚本,当服务重新启动时,该脚本会将处理器关联重置为我想要的设置 我在其他项目中使用的代码过去一直有效,但现在失败了 $Process = Get-Process -Name 'SpaceEngineersDedicated' $Process.ProcessorAffinity = 254 $Process = Get-Process -Name 'SpaceEngineersDedicated' $Process.ProcessorAffinity = 255 如果我不得不猜

我试图设置一个脚本,当服务重新启动时,该脚本会将处理器关联重置为我想要的设置

我在其他项目中使用的代码过去一直有效,但现在失败了

$Process = Get-Process -Name 'SpaceEngineersDedicated'
$Process.ProcessorAffinity = 254

$Process = Get-Process -Name 'SpaceEngineersDedicated'
$Process.ProcessorAffinity = 255
如果我不得不猜测的话,这是因为这是我第一次尝试在有两个CPU的服务器上设置这样的脚本。(254255用于只有一个CPU的计算机)服务器总共有16个核心/线程

此脚本的目标是强制服务使用所有核心,因为它最初只使用一个核心/线程(核心0,节点0)。我可以从任务管理器手动执行此操作,因此我不确定它失败的原因


代码抛出的错误表示在此对象上找不到属性ProcessorAffinity

您的
获取进程
调用返回多个进程。在下面的语法中,我们强制这些进程作为进程数组返回,并循环它们以设置属性:

@(Get-Process -Name 'SpaceEngineersDedicated') |
    ForEach-Object { $_.ProcessorAffinity = 255 }
如果返回多个属性,则不能使用成员枚举设置属性:

## This doesn't work unless .Count = 1
@(Get-Process -Name 'SpaceEngineersDedicated').ProcessorAffinity = 255

如果我不得不猜测,您的
Get Process
调用返回了一个进程数组。运行
Get Process | Format Table-Property Name,processor affinity
通过手动设置亲和性,您试图智胜调度程序,这几乎不是一个好主意。您测试了性能差异吗?它明显吗?“你是怎么测试的?”利文基尔斯马科斯是的,差别非常明显。这项服务是针对多人游戏的。当游戏处理大量的物理计算时,差异是“模拟速度”的0.4个实实在在的差异,最大值为1.0。@JosefZ抱歉,我不太清楚你想说什么。