Windows10 のPowershellの最大メモリサイズの変更

Windows 10(およびWindows Server 2012, 2012 R2, 2016, 2019も同じ)でのPowershellの実行時の最大メモリ数の変更手順。Powershellを実行したときに、メモリを使いすぎたので、制限する。

変更手順

  1. Powershellを管理者モードで起動する
  2. Powershellのバージョン確認する
    $PSversionTable
    ※Powershellが3.0以降の場合は、追加手順あり。
  3. Powershellのメモリ割り当てサイズの確認
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
  4. 設定変更
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  5. プラグインの確認(Ver3.0以降の場合は実行)
    ls WSMan:localhost\Plugin 
  6. プラグインのPowershellの割り当てサイズの確認(Ver3.0以降の場合は実行)
    Get-Item WSMan:localhost\Plugin\microsoft.powershell\Quotas\MaxConcurrentCommandsPerShell 
  7. プラグインのPowershellの割り当てサイズの変更(Ver3.0以降の場合は実行)
    Set-Item WSMan:localhost\Plugin\microsoft.powershell\Quotas\MaxConcurrentCommandsPerShell 2048
  8. 設定変更後WinRMの再起動
    Restart-Service WinRM
  9. 事後確認
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
  10. 32bitのPowershellを管理者モードで起動する
  11. Powershellのメモリ割り当てサイズの確認
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 
    ※もし、32bitのPowershellのメモリが変わっていない場合は、同じように変更する。

作業ログ。

PS C:\WINDOWS\system32> Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Shell

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   MaxMemoryPerShellMB                            2048


PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
警告: 更新された構成は、プラグインあたりのクォータの値が 2048
を超えるプラグインの操作に影響する可能性があります。登録されているすべてのプラグインの構成を確認し、影響を受けるプラグ
インのプラグインあたりのクォータの値を変更してください。
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> ls WSMan:localhost\Plugin


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=Event Forwarding Plugin}      Event Forwarding Plugin
Container       {Name=microsoft.powershell}         microsoft.powershell
Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
Container       {Name=microsoft.powershell32}       microsoft.powershell32
Container       {Name=WMI Provider}                 WMI Provider


PS C:\WINDOWS\system32> Get-Item WSMan:localhost\Plugin\microsoft.powershell\Quotas\MaxConcurrentCommandsPerShell


   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\microsoft.powershell\Quotas

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   MaxConcurrentCommandsPerShell                  2147483647


PS C:\WINDOWS\system32> Set-Item WSMan:localhost\Plugin\microsoft.powershell\Quotas\MaxConcurrentCommandsPerShell 2048
警告: 構成の変更は、WinRM サービスを再起動しないと有効になりません。WinRM
サービスを再起動するには次のコマンドを実行します: 'Restart-Service winrm'
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Restart-Service winrm
PS C:\WINDOWS\system32>

参考
https://tech.guitarrapc.com/entry/2013/08/02/000842

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする