我目前正在編寫一個PowerShell模塊來提供安裝/操作SharePoint 2007的功能。 我的一個腳本檢查SharePoint服務器場的運行狀況。強制使用PSSessionOption -NoMachineProfile但SPFarm.Local爲空
所以我使用Remote Powershell:使用New-PSSession。 在我的虛擬測試場(Windows Server 2003中,同一個域中,相同的管理......),則New-PSSession將cmdlet的失敗:
Google上搜尋它之後,我看到唯一的解決辦法是使用NoMachineProfile選項: 這解決了我的問題。
現在的問題: 我需要使用SharePoint對象:SPFarm.Local(所有服務器上)
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[Microsoft.SharePoint.Administration.SPFarm]::Local
此代碼在本地(所有服務器上) 但是當我遠程運行(使用NoMachineProfile選項),SPFarm.Local爲null!
我假設(我無法檢查它),這是因爲SharePoint使用了一些註冊表值,這些註冊表值由於NoMachineProfile選項而未加載。
所以:
1 - 你認爲SPFarm.Local是因爲NoMachineProfile選項的空?
2 - 您知道如何在不使用-NoMachineProfile選項的情況下解決第一個問題?
Thx很多!
Thx爲您的快速回答。 但是,當我嘗試「啓用-WSManCredSSP -Role客戶端-DelegateComputer XXX」時,出現此錯誤: 啓用-WSManCredSSP:此Powershell cmdlet在以下平臺上不可用:Windows XP和Windows Server 2003. 因此,沒有解決方案? – 2011-03-03 01:14:41
對不起,我錯過了XP,Win2003以及之前對此問題的評論...... CredSSP不支持這些版本的操作系統[WinRM中的微軟多跳支持](http://msdn.microsoft.com/ .com/en-us/library/ee309365(VS.85).aspx)...我很抱歉地說,我認爲你在regrad中運氣不佳。如果SP程序集允許明確的用戶名和密碼注入,則可能需要將其作爲選項嘗試。 – jamason1983 2011-03-03 01:25:26
在旁註中...配置文件未加載到遠程會話中。即使您在遠程服務器上有默認的機器配置文件。我所做的是實現了我自己的個性化新pssession風格的功能,我創建一個新的會話,然後運行一個invoke命令,將一系列函數加載到遠程服務器上,就像加載用戶配置文件一樣,這些函數在代碼塊中定義然後調用命令的一部分,然後打開會話並讓大部分命令可供使用。 – jamason1983 2011-03-03 01:33:25