当社の Web アプリケーションのほとんどには、Deploy.ps1 Powershell スクリプトが含まれています。Octopus Deploy は、本番環境の展開時にアプリを構成するためにこれを使用しますが、開発者のローカル IIS 設定のセットアップにも使用します。Windows 7、Windows 8.1、およびすべての Win2012 本番環境サーバーで完全に正常に動作します。
Windows 10 では動作しません。これは、コマンドレットが効果がないために発生するようですSet-ItemProperty
。エラー メッセージも何も表示されず、何も実行されません。
IISサイトapi.example.comはすでに存在しており、Powershellを使用して/myappアプリケーションを作成し、アプリケーションの物理パスをD:\Projects\Demoに変更します。
PS C:\> IIS:
PS IIS:\> cd Sites\api.example.com
PS IIS:\Sites\api.example.com> New-WebApplication myapp -site api.example.com -PhysicalPath C:\inetpub\wwwroot
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
myapp DefaultAppPool http C:\inetpub\wwwroot
PS IIS:\Sites\api.example.com> set-itemproperty myapp -name PhysicalPath -value D:\Projects\Demo
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http C:\inetpub\wwwroot
^ THIS IS WRONG!
Windows 7 でまったく同じコマンド セットを実行すると、同一の出力が得られますが、最後のステップで PhysicalPath プロパティが予想どおりに変更されています。
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http D:\Projects\Demo
何が起こっているのか分かりますか? IIS10 に新しい管理者制限があるのでしょうか? 既存の Web アプリケーションの設定を変更するには、何らかの追加の昇格された権限が必要ですか?
アップデート: アイテムが IIS サイトの場合は正常に動作するようですが、アイテムが Web アプリケーションの場合は失敗します。これはプロバイダーのバグなのではないかと思います。何かアイデアはありますか?
ベストアンサー1
理由は分かりませんが、設定したいプロパティの最初の文字は小文字例えばphysicalPath
これは動作します:
set-itemproperty myapp -name physicalPath -value D:\Projects\Demo
バグのように思えますが、この表記法 (最初の文字を小文字にする) は他の Windows 環境でも機能するため、有効な回避策になるはずです。