Powershell
嘗試在 PowerShell 中設置 COM+ 應用程序組件屬性
我有這個腳本,我試圖在組件服務中為 Com+ 中的應用程序組件設置 IISIntrinsic 屬性。
這就是我要打勾的
這是我的PowerShell腳本:
$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog # -- Shut down the running app $comAdmin.ShutdownApplication("MyAppName") # -- Loop through components $applications = $comAdmin.GetCollection("Applications") $applications.Populate() foreach ($application in $applications) { if ($application.Name -eq "MyAppName") { $components = $applications.GetCollection("Components",$application.key) $components.Populate() foreach ($component in $components) { # -- Set property $component.Value("IISIntrinsics") = $true } #-- EDIT - ADDING THIS LINE SOLVED THE ISSUE $components.SaveChanges() } } # -- Save and exit $applications.SaveChanges() # -- start the application again $comAdmin.StartApplication("MyAppName")
將 IISIntrinsics 設置為 true 似乎沒有任何影響。
我的感覺是
- 要麼$applications.SaveChanges() 是錯誤的呼叫 或
- 我設置屬性的方式不正確(我也嘗試將其設置為 1 但沒有成功)
任何幫助將不勝感激!
我發現了問題
上面程式碼中標記為 #– EDIT 的註釋下方的行包含以下內容:
$components.SaveChanges()
這是保存對組件所做的更改所必需的。
另外值得注意的是,在組件服務中,您需要刷新組件視圖才能看到您的更改。
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422展示了一個值得一看的 vbscript 實現。它做了一些奇怪的事情,比如反向循環——我不知道這是否必要。無論如何 - 看起來將值設置為 1 應該可以工作。