8

マシン上のすべてのアプリ プールを一覧表示できるコマンドがあります。

 Get-WmiObject -namespace "root/MicrosoftIISv2" -class IIsApplicationPool |Select-Object -property @{N="Name";E={$name = $_.Name; $name.Split("/")[2] }} | Format-Table

ボックス上のすべてのアプリ プールのマネージド パイプラインを設定したいと考えています。私はこれを試しました:

Get-WmiObject -namespace "root/MicrosoftIISv2" -class IIsApplicationPool |Select-Object -property @{N="Name";E={$name = $_.Name; $name.Split("/")[2] }} | ForEach-Object {cmd /c "c:\windows\system32\inetsvr\appcmd.exe set apppool $name /managedPipleineMode:"Classic"'}

これにより、「指定されたパスが見つかりません」というエラーが表示されます。これを機能させる方法はありますか?

4

3 に答える 3

7

マネージド パイプライン モード (または AppPool の任意のプロパティ) を設定するには、Set-ItemProperty を使用する必要があります。しかし、それはそれよりも楽しいものになります:

  1. Set-ItemProperty は、パスを入力として受け取ります。ConfigurationElementGet-ChildItem は、Path 文字列ではなく、オブジェクトのコレクションを返します。
  2. ManagedPipelineMode は内部的に整数として格納されるため、渡す正しい "マジック" ナンバーを知る必要があります

これは私にとってはうまくいきました:

Import-Module WebAdministration
Get-ChildItem IIS:\AppPools |
    Select-Object -ExpandProperty PSPath |
    ForEach-Object { Set-ItemProperty $_ ManagedPipelineMode 1 }
于 2014-06-06T20:56:31.787 に答える
1

Powershell V2を使用している場合は、WebAdministrationモジュールを使用します(例:昇格されたプロンプトから)。

Import-Module WebAdministration
Get-ChildItem IIS:\AppPools | Foreach {$_.ManagedPipelineMode = 'Classic'}
于 2012-10-05T16:20:49.090 に答える