2012-08-03 43 views
7

我有一個Sharepoint場設置,並且正在從Windows中連接到我的一個應用程序/搜索服務器7機器在域中使用遠程PowerShell。客戶端和應用程序服務器都有powershell 2,並且執行策略設置爲不受限制並啓用了psremoting。另外,我將cmdlet作爲域管理員帳戶運行。Import-PSSession:由於PowerShell無法驗證其名稱是否安全,所以代理創建已被跳過

我可以使用以下cmdlet創建一個會話到遠程服務器:

$Session = New-PSSession -ConfigurationName "Microsoft.PowerShell" -ConnectionUri "http://app01-spl1:5985/wsman/" -Authentication "Kerberos" 
Import-PSSession $Session -AllowClobber 

然而,當我輸入我得到以下eror會話:

Import-PSSession : Proxy creation has been skipped for '%' command, because PowerShell couldn't verify its name as safe. 
At line:1 char:17 
+ Import-PSSession <<<< $Session -AllowClobber 
    + CategoryInfo   : InvalidData: (:) [Import-PSSession], InvalidOperationException 
    + FullyQualifiedErrorId : ErrorSkippedUnsafeCommandName,Microsoft.PowerShell.Commands.ImportPSSessionCommand 
Import-PSSession : Proxy creation has been skipped for '?' command, because PowerShell couldn't verify its name as safe. 
At line:1 char:17 
+ Import-PSSession <<<< $Session -AllowClobber 
    + CategoryInfo   : InvalidData: (:) [Import-PSSession], InvalidOperationException 
    + FullyQualifiedErrorId : ErrorSkippedUnsafeCommandName,Microsoft.PowerShell.Commands.ImportPSSessionCommand 
Import-PSSession : Could not resolve remote alias 'ise'. 
At line:1 char:17 
+ Import-PSSession <<<< $Session -AllowClobber 
    + CategoryInfo   : OperationTimeout: (:) [Import-PSSession], ArgumentException 
    + FullyQualifiedErrorId : ErrorCouldntResolveAlias,Microsoft.PowerShell.Commands.ImportPSSessionCommand 

任何人都可以幫助解決這個錯誤?

回答

6

我解決了這個問題,只需輸入遠程會話而不是導入它。然後,我可以添加安裝在遠程機器上的SharePoint管理單元並運行我的腳本。

$Session = New-PSSession -ConfigurationName "Microsoft.PowerShell" -ConnectionUri "http://app01-spl1:5985/wsman/" -Authentication "Kerberos" 
Enter-PSSession $Session 
Add-PSSnapin Microsoft.SharePoint.PowerShell 

<Cmdlets or script goes here> 

Exit-PSSession 
Remove-PSSession -ID $Session.ID 
[GC]::Collect() 

另一個選擇是使用帶有ScriptBlock參數的Invoke-Command cmdlet,如下所示。

$Session = New-PSSession -ConfigurationName Microsoft.PowerShell -ConnectionUri "http://app01-spl1:5985/wsman/" -Authentication Kerberos 
Invoke-Command -Session $Session -ScriptBlock { Add-PSSnapin Microsoft.SharePoint.PowerShell } 

Invoke-Command -Session $Session -ScriptBlock { <Your cmdlet here.> } 

Remove-PSSession -ID $Session.ID 
[GC]::Collect() 
1

錯誤在於您試圖從遠程服務器導入整套命令。不太確定你爲什麼允許闖入。

就我個人而言,我只導入相關的SHarePoint模塊而不是所有的遠程工作空間。

是否導入工作?

+0

你說得對,讓撞,不需要選擇,因爲我沒有在我的本地會話,將與遠程會話衝突的任何命令。但是,在我建立遠程連接之前,我無法導入SharePoint模塊,因爲它們未安裝在本地計算機上。 – 2012-08-06 13:58:00

+0

當您導入會話(使用clobber)時,遠程會話中的每個cmdlet都會被本地「代理」函數替代。因此,本地計算機上的「獲取幫助」將被遠程運行的類似命名功能所取代。因此,在本地運行get-help會遠程結束runnign get-help。訣竅是,imho不會在當地爆發。一般來說,我建議你只從遠程會話中導入特定的模塊。 – 2012-08-07 08:19:36

相關問題