2011-10-06 50 views
0

我想使用powershell在IIS中的站點上設置windowsauth,這部分腳本已在所有環境中工作到目前爲止,現在失敗了,我找不出原因。Set-WebConfigurationProperty失敗

Set-WebConfigurationproperty system.webServer/security/authentication/anonymousAuthentication -name enabled -value false -PSPath "IIS:\" -location $siteName 
Set-WebConfigurationproperty system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath "IIS:\" -location $siteName 

任何人都有任何想法,爲什麼這個腳本會失敗?

我得到一個「配置節‘system.serviceModel’不能讀,因爲它缺少一個部分聲明」

我可以手動啓用Windows驗證和現場旋轉起來就好了。

乾杯

回答

2

所以事實證明,這個問題沒有安裝.NET 3.5。

由於powershell在.Net2 CLR下運行,沒有安裝3.5,它不知道system.serviceModel在web.config中。

一旦安裝3.5,腳本運行良好

+0

忘了告訴你安裝3.5 SP1 ...!幹得好! –

1

1)確認安裝.NET框架3.0(或更高)。

2)以管理員身份執行以下命令:

「%WINDIR%\ Microsoft.Net \框架\ 3.0 \ Windows通信基礎\ ServiceModelReg.exe」 -i

希望能幫助

+0

我沒有安裝.net 3,但在4.0目錄中找到相同的.exe。該命令要求您指定要安裝的軟件包,因此我使用了-ia,這是所有軟件包。不幸的是,這產生了同樣的錯誤:( – martin308