我經常有客戶請求更改屬性,例如服務器場上所有現有網站上所有文檔庫的版本歷史記錄設置。如何修改現有的SharePoint網站?
到目前爲止,我已經能夠想到的最好的解決方案是在Powershell中編寫腳本,在運行腳本之前測試腳本,然後祈禱我沒有忽略關鍵的事情。 有更好更安全的方法嗎?
我經常有客戶請求更改屬性,例如服務器場上所有現有網站上所有文檔庫的版本歷史記錄設置。如何修改現有的SharePoint網站?
到目前爲止,我已經能夠想到的最好的解決方案是在Powershell中編寫腳本,在運行腳本之前測試腳本,然後祈禱我沒有忽略關鍵的事情。 有更好更安全的方法嗎?
我個人的 「自定義工作流程」 如下:在PowerShell中
它比「在prod服務器上運行腳本」重要得多,但如果您正在尋找一種「更好」的方式來推進自定義,這是在SharePoint中執行此操作的正確方法。 SharePoint的功能和解決方案框架專爲此場景而設計。
是的,我大量使用PowerShell進行原型設計/對象spelunking。
編輯:我沒有提到,但你需要有一個災難恢復計劃,可以恢復所有的自定義設置。這是它開始瘋狂的地方,取決於你所做的定製。在上面的示例中,內容數據庫存儲數據,但其他自定義設置在災難恢復情況下並不容易恢復,尤其是在配置數據庫中存儲SSP和服務器場級自定義設置的情況下,或者修改了網絡.config或IIS元數據庫。
首先進行內容備份,然後運行腳本。
通過stsadm或數據庫進行備份。
不適用於任何中央管理更改。
那麼,如果你想自動化一些東西,PowerShell可能是最好的方法之一。您可以在嘗試之前看到正在運行的實際命令(與編譯時無法達到的內容相比)。
根據PowerShell腳本將要執行的操作,您可以經常使用簡單的參數,例如-WhatIf和-Confirm來對cmdlet產生影響(刪除,移動等)。
-WhatIf規定:指示運行命令時通常執行的動作的輸出。你可以看到將要採取的行動。
確認:在實際執行操作之前,您基本上會被問到「您確定要執行xyz」。
隨着-WhatIf,如果你的所有信息都在屏幕上滾動,你可以簡單地使用Start-Transcript開始你的控制檯會話的日誌,然後你可以查看該日誌仔細查看所有的行爲拍攝。這樣你可以在運行之前確保你的命令是正確的。