2

Sharepoint 2010を操作することを目的とした単純なPowerShellスクリプトがあります。問題を説明するために、最小限に抑えています。

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
$siteURL = "http://intranet/"
$site = Get-SPSite($siteURL)

foreach ($web in $site.AllWebs) {
    Write-Host "Inspecting " $web.Title
}

「foreach」ループを導入すると失敗します(したがって、スナップインはOKをロードし、Get-SPSite($ siteURL)はエラーを引き起こさないようです)。

エラーメッセージは

C:\temp\sp_dm.PS1 : Exception has been thrown by the target of an invocation.
At line:1 char:12
+ .\sp_dm.PS1 <<<<
    + CategoryInfo          : NotSpecified: (:) [sp_dm.PS1], TargetInvocationExceptio
    + FullyQualifiedErrorId : System.Reflection.TargetInvocationException,sp_dm.PS1

問題はスクリプトのline:1ではなく、実行するために入力したコマンドのline:1を参照しています(スクリプトの名前を変更し、それに応じてchar:12を変更しました)。しかし、私が言っているように、エラーはforeachループによって生成され、コードはネット上の多くの例で発生するため、ローカルSharePointには何か問題があります。助言がありますか?

4

4 に答える 4

4

これは遅い回答ですが、Google検索からここに来ました。今後の訪問者のためにこれを解決したいと思います.

まったく同じ問題/原因がここで説明されています: https://sharepoint.stackexchange.com/questions/17247/spsite-allwebs-returns-error

基本的に、これは権限の問題です。問題のサイト コレクションのアクセス許可に関して、スクリプトを実行しているアカウントを追加した場合、このエラーは解消されます。

于 2013-04-02T21:09:52.963 に答える
1

この変更を試してください:

$siteURL = "http://intranet/"
$site = Get-SPWeb($siteURL)

    foreach ($web in $site.Site.AllWebs)
于 2012-10-30T15:31:57.650 に答える
0

昇格された特権ブロックを使用して解決しました。また、sharepoint SPSite および SPWeb オブジェクトを破棄することを忘れないでください。

[Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({
$Site = Get-SPSite $siteUrl
Foreach ($web in $Site.AllWebs)
{
    #do something..
    $web.Dispose()
}   
$Site.Dispose()
}); 
于 2016-02-29T00:40:37.837 に答える
-1

おそらく、エラーメッセージのFullyQualifiedErrorIdは、問題の根本的な原因についてのヒントを提供しますか?

これは、$siteURLにFQDNを含める必要があることを示しているように思われます。多分$siteURL = "http://intranet/"あなたの代わりに必要になるでしょう$siteURL = "http://intranet.yourdomain.com"

于 2012-10-30T20:07:15.933 に答える