2016-04-08 67 views
16

我们的大多数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应用程序失败,这让我怀疑这可能只是提供程序中的错误。有任何想法吗?

+0

这是一个错误,请投票。 https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/15077202-make-propeties-name-case-insensitive-for-creating – zerocool18

回答

15

我不知道为什么,但您要设置的属性的第一个字母必须是小写字母 e。 G。 physicalPath

这将工作:

set-itemproperty myapp -name physicalPath -value D:\Projects\Demo 

好像给我一个错误,但这个符号(首字母小写),也适用于其他Windows环境因此应是一个有效的解决方法。

-1

这对我的作品(没有设置地点):

Set-ItemProperty IIS:\sites\$sitename\$appName -Name applicationPool -Value $appPoolName 
3

我能复制你的问题。 Set-ItemProperty为我工作,如果我在一个网站工作。

这些cmdlet来自Web管理模块,我已经检查了完整的文档。他们似乎只使用相关示例中的网站。你也可以查看相同的,如果你还没有,在这里:Web Administration (IIS) Provider for Windows PowerShell

正如你指出的,它可能是一个错误。我建议在这里报告:Microsoft Connect - PowerShell

+0

连接被替换为https://windowsserver.uservoice.com/forums/ 301869-的PowerShell –

相关问题