サーバー2008 R2で、次のPowerShellを使用して、プログラムでCPU LIMITを特定のパーセンテージに設定しました
function Set-UserAccountCPUThrottle
{
[CmdletBinding()]
Param(
[ValidateNotNullOrEmpty()]
[parameter(Mandatory = $true)]
$UserNameToRestrict,
[Parameter(Mandatory = $false)]
[int]$CpuPercentage = 5
)
write-host "about to restrict user account $UserNameToRestrict to use ${CpuPercentage}% CPU"
try
{
$objUser = New-Object System.Security.Principal.NTAccount($UserNameToRestrict)
$local:ResolvedSID= $objUser.Translate([System.Security.Principal.SecurityIdentifier]).Value.trim()
}
catch
{
throw "Cannot resolve the User (or find its SID) for $UserNameToRestrict"
}
$regpath = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System\${local:ResolvedSID}"
#in creating a new key for this sid, it will remove any old item
mkdir $regpath -Force -ErrorAction stop | out-null
#as the old key if existing was removed by the above code, this will create a new value
New-ItemProperty -Path $regpath -Name "CpuRateLimit" -Value $CpuPercentage -PropertyType "DWord" -Force -ErrorAction stop | out-null
}
ただし、これによりhttp://technet.microsoft.com/en-us/library/ff384148(v=ws.10).aspxごとにレジストリ キーが作成されます。
サーバー2012またはWindows 8では無効です。これは壊れていますか、サーバー2012でこれを行う新しい方法はありますか?