これをテストするのが常に最善です:
いくつかのサイト (この場合は 20) を作成する単純なスクリプトから始めましょう。
Param
(
[Parameter(Mandatory=$true)]
[int]
$offset
)
Import-Module WebAdministration
ForEach ($number in 1..20 ) {
$id = $offset + $number
New-WebSite -Name $("Test_" + $id) -Port $id -Id $id -PhysicalPath "$env:systemdrive\inetpub\wwwroot"
}
これをに保存しますC:\temp\New-TestSite.ps1
そのスクリプトを同時に 3 回実行しC:\temp\Run-Test.ps1
て、次の内容の別のスクリプトを作成しました。
start-job -ScriptBlock {& C:\temp\New-TestSite.ps1 -offset 10000}
start-job -ScriptBlock {& C:\temp\New-TestSite.ps1 -offset 20000}
start-job -ScriptBlock {& C:\temp\New-TestSite.ps1 -offset 30000}
を実行Run-Test.ps1
したら、作成したサイトの数を確認します。
ls iis:\sites | group {$_.Name.substring(0,6)} | Select Count,Name | Format-Table -AutoSize
私が得た:
Count Name
----- ----
19 Test_1
18 Test_2
15 Test_3
60 個中 52 個を作成しました
スクリプトごとに 50 個を作成すると、次のようになりました。
Count Name
----- ----
31 Test_1
31 Test_2
30 Test_3
それは150のうち92です
さらに悪いことに、一部のテスト ケースでは、PowerShell プロセスの 1 つがクラッシュしました。

少なくともGet-Job
示しています:
Id Name PSJobTypeName State
36 Job36 BackgroundJob Failed
38 Job38 BackgroundJob Completed
40 Job40 BackgroundJob Completed
したがって、結論として、applicationHost.config を同時に変更することは保存されていないと言えます。
もちろん、これは極端なテスト ケースであり、手動で変更を同時に行ってもうまくいく可能性がありますが、注意が必要です。
サーバー 2012 R2 (IIS 8.5) で実行されたテスト