我們的大多數Web應用程序都包含一個Deploy.ps1 Powershell腳本。 Octopus Deploy使用它在生產部署期間配置應用程序,但我們也使用它來設置開發人員的本地IIS設置。在Windows 7,Windows 8.1和我們所有的Win2012生產服務器上都可以正常工作。爲什麼Set-ItemProperty對Windows 10下的IIS應用程序沒有影響?
它不適用於Windows 10,這似乎是因爲Set-ItemProperty
cmdlet不起作用。沒有錯誤信息或任何東西,它只是沒有做任何事情。
IIS站點api.example.com已經存在,而且我們使用PowerShell來創建/ MyApp的應用程序,然後切換到d應用程序的物理路徑:\工程\演示
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應用程序的設置或什麼?
UPDATE:它似乎工作正常,如果該項目是一個IIS站點,但如果該項目是一個Web應用程序失敗,這讓我懷疑這可能只是提供程序中的錯誤。有任何想法嗎?
這是一個錯誤,請投票。 https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/15077202-make-propeties-name-case-insensitive-for-creating – zerocool18