質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

1回答

12016閲覧

WindowsServerの仮想メモリの設定値の変更方法について

teketeke

総合スコア46

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2017/03/28 02:49

###前提・実現したいこと
仮想メモリの設定値をスクリプトで変更させようとしています。
スクリプト作成の為に以下のサイトを参考に致しました。

■参考サイト
https://dirteam.com/sander/2007/12/27/page-files-in-server-core/
https://blogs.technet.microsoft.com/askcorejp/2009/04/20/windows-server-2008-server-core/

###発生している問題・エラーメッセージ
参考サイトを見ると、以下のコマンドで設定できているようなのですが、私の環境だとエラーになってしまいます。

PS C:\Users\Administrator> wmic pagefileset where NAME="C:\\pagefile.sys" set INITIALSIZE=1024,MAXIMUMSIZE=4096 形式が無効です。 ヒント: <assignlist> = <propertyname>=<propertyvalue> [, <assignlist>].

###該当のソースコード

powershell

1try{ 2$result=wmic computersystem set AutomaticManagedPageFile=FALSE 3$result=wmic pagefileset where NAME="C:\\pagefile.sys" set INITIALSIZE=4096,MAXIMUMSIZE=4096 4#Restart-Computer 5} catch { 6exit 1 7}

###試したこと
コマンドを手動で実行しても、以下のようなエラーになりました。
サイズ0 だと成功し、それ以外だと範囲外となってしまうようです。

※wmic computersystem set AutomaticManagedPageFile=FALSE 後に再起動を実施しても変わりありませんでした。

PS C:\Users\Administrator> wmic pagefileset set INITIALSIZE=0 '\\STYLEZ-DC-TEST\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' のプロパティを更新しています プロパティは正しく更新されました。 PS C:\Users\Administrator> wmic pagefileset set INITIALSIZE=16 '\\STYLEZ-DC-TEST\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' のプロパティを更新しています エラー: 説明 = 値が範囲外です PS C:\Users\Administrator> wmic pagefileset set MaximumSize=0 '\\STYLEZ-DC-TEST\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' のプロパティを更新しています プロパティは正しく更新されました。 PS C:\Users\Administrator> wmic pagefileset set MaximumSize=16 '\\STYLEZ-DC-TEST\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' のプロパティを更新しています エラー: 説明 = 値が範囲外です

###補足情報(言語/FW/ツール等のバージョンなど)
WindowsServer2012R2
HDD 50GB
メモリ 1GB

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
PowerShellコンソールからwmic.exeを実行すると大抵の場合、whereset,などがPowerShellの機能とバッティングしてしまうため構文エラーになることが多いです。

一番楽な対処としては以下の様にcmd /cでくるんでしまう事でしょうか。

ps1

1cmd /c 'wmic pagefileset where NAME="C:\\pagefile.sys" set INITIALSIZE=1024, MAXIMUMSIZE=4096'

PowerShellらしくするのであれば以下の様にwmic.exeを使わない方法もあります。

ps1

1$Settings = Get-WmiObject -Class Win32_PageFileSetting | Where-Object { $_.Name -eq 'C:\pagefile.sys' } 2$Settings.InitialSize = 1024 3$Settings.MaximumSize = 4096 4$Settings.Put()

投稿2017/03/28 09:32

stknohg

総合スコア796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teketeke

2017/03/28 11:50

回答頂きありがとうございます。 > PowerShellコンソールからwmic.exeを実行すると大抵の場合、where、set、,などがPowerShellの機能とバッティングしてしまうため構文エラーになることが多いです。 なるほど、気が付きませんでした。 記載頂きました方法で、仮想メモリの設定値を変更することができました。 GUIでの変更後の場合、設定を反映させるには再起動が必要という情報があったので、スクリプトの最後に、「Restart-Computer」を実行するようにしました。
stknohg

2017/03/28 12:52

上手くいった様でよかったです。 > GUIでの変更後の場合、設定を反映させるには再起動が必要 はい。 仮想メモリサイズの変更は再起動時に反映されるのでGUI、CUIどちらで変更しようとも`Restart-Computer`をする必要があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問