2016-11-08 8 views
0

機能しない、私は私のSharePointサーバー上で完全にこのスクリプトを実行することができ、かつユーザーのプロフィール写真が更新されます:スクリプトリモートの呼び出しは

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") 
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") 

$siteurl = "http://SHAREPOINTSITE/" 
try { 
    $site = New-Object Microsoft.SharePoint.SPSite($siteurl) 
} catch { 
    New-Item -ItemType File -Path C:\Users\admin\Desktop -Name ERROR1.txt -Value $_.Exception.Message -Force 
} 
try { 
    $context = [Microsoft.Office.Server.ServerContext]::GetContext($site) 
} catch { 
    New-Item -ItemType File -Path C:\Users\admin\Desktop -Name ERROR2.txt -Value $_.Exception.Message -Force 
} 

#This gets the User Profile Manager which is what we want to get hold of the users 
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 
$user = "DOMAIN\user.name" 

#Put it in a loop for iterating for all users 
if ($upm.UserExists($user)) { 
    try { 
     $profile = $upm.GetUserProfile($user) 
     $profile["PictureURL"].Value = "\\Sharepoint\C$\Users\admin\Desktop\1.jpg"; 
     $profile.Commit(); 
    } catch { 
     New-Item -ItemType File -Path C:\Users\admin\Desktop -Name ERROR3.txt -Value $_.Exception.Message -Force 
    } 
} 

New-Item -ItemType File -Path C:\Users\admin\Desktop -Name HELLO.txt -Force 

$site.Dispose() 

しかし、私は、リモートPowerShellセッションからそれを実行したとき、私はいくつかを取得しています奇妙なエラー: "1" 引数(複数可)と ".ctor" を呼び出す

ERROR1.txt

例外:「http://SHAREPOINTSITE/でのWebアプリケーションの可能性見つけられない。 URLを正しく入力したことを確認してください。 URLは、既存のコンテンツを提供する必要がある場合は、システム管理者が意図した用途に新しい要求のURLマッピングを追加する必要があるかもしれません。「

ERROR2.txt

見つかり、複数のあいまいなオーバーロード」 getContext」と引数の数: 『1』

私は可能性hereのすべてをチェックし、まだこの問題を見てきた

これは私がリモートマシンから上記のスクリプトを呼び出す方法です:

$spfarm = "DOMAIN\admin.username" 
$spfarmpw = ConvertTo-SecureString "password123" -AsPlainText -Force 

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $spfarm,$spfarmpw 
$session = New-PSSession SharePoint -Authentication Default -Credential $cred 

Invoke-Command -Session $session -FilePath "\\SharePoint\C$\Users\admin\Desktop\testremote.ps1" 

私は(例えば、いくつかの異なる方法でこれを呼び出して試してみました私のマシン上でスクリプトをホストするか、SharePointサーバ上でホストするか、相対パスを使ってスクリプトを呼び出す)が、私はいつもこれらのエラーを見る。

リモートPCから呼び出すときにこれがなぜ機能しないのか理解してもらえますか?スクリプトは明確に呼び出されていますが(HELLO.txtは常に作成されます)、SharePointプロファイルの画像は決して更新されません。

すべてのヘルプやガイダンスはあまりyy.yy.y.yyは(それがsの正しいIPださ


nslookupを

nslookup SHAREPOINTSITE 

出力

Server: dc1.domain.co.uk 
Address: xx.xx.x.xx 

Name:  sharepoint.domain.co.uk 
Address: yy.yy.y.yy 
Aliases: SHAREPOINTSITE.domain.co.uk 

を高く評価しています私のアドレスは実行時に表示されますping SHAREPOINTSITE

+0

Sharepointサーバーでnslookupを実行すると、SHAREPOINTSITEという名前が正しいIPに解決されますか? –

+0

@MikeGaruccioはいマイクそう思う。私は 'nslookup'の結果で回答を更新しました – Bassie

+0

hmm ok、ブラウザからhttp:// SHAREPOINTSITE /を打つとサイトが正しく表示されますか? –

答えて

1

認証方法をCredSSPに変更してみてください。これは、リモートPowerShellが資格情報を渡せるようにするために必要です。

関連する問題