2014-04-08 56 views
0
$ErrorActionPreference = "Continue" 
Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction "SilentlyContinue" 
$webApp = "Https://SharePointSite.com" 
$wa = Get-SPWebApplication -identity $webApp 
foreach ($site in $wa.Sites) { 
    foreach ($web in $site.AllWebs) { 
     $siteURL = $web.Url 
    Write-Host $siteURL 
    } 
} 

的問題是,當它擊中聲明的foreach($在$ wa.Sites網站),它不能獲得該網站因訪問被拒絕或任何錯誤,它會停止。我想繼續。我嘗試嘗試捕捉最後,並且它遇到錯誤時仍然停止。PowerShell的 - 遍歷所有的SharePoint網站和繼續時發生錯誤

我試圖把-ErrorAction繼續,但它給我一個錯誤消息 您必須在的右側提供一個值表達式「 - 」操作

怎麼辦我繞過它,所以它會繼續到網站?

我真的很感謝你的幫助。 謝謝

+0

目前尚不清楚哪一步產生錯誤。你能否發佈確切的錯誤信息?另外,*您在哪裏嘗試「放入'-ErrorAction Continue'」? ** Get-SPWebApplication **命令?你可以用** try/catch/finally **發佈該版本以及該錯誤消息嗎?順便說一句,要格式化一段代碼,將整個塊縮進4個空格(可以選中它並單擊'{}'符號),而不是在每行(用於內聯代碼)上加反引號。通過添加'>'作爲第一個字符來爲錯誤信息使用塊引用。 –

回答

0

如果你想使用try..catch,那麼你必須拋出終止錯誤。非終止錯誤不是try..catch塊的句柄。

try { 
    Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction Stop; 
    $webApp = "Https://SharePointSite.com" 
    $wa = Get-SPWebApplication -identity $webApp -ErrorAction Stop; 
    foreach ($site in $wa.Sites) { 
     foreach ($web in $site.AllWebs) { 
      $siteURL = $web.Url 
     Write-Host $siteURL 
     } 
    } 
} 
catch { 
    Write-Host -Object ('Error occurred: {0}' -f $_); 
} 
+0

謝謝Trevor Try/Catch錯誤捕獲塊。我也終於有了。我在打開網站時收到的錯誤消息是Exception,這是由調用的目標引發的。 + categoryInfo:未指定:(:) [],TargetInvocationException。 + FullyQuaflifiedErrorID:System.Reflection.TargetInvocationException。我收到此錯誤的原因是因爲運行腳本的ID無法訪問此網站。但我希望這個過程繼續下去。我可以稍後解決這個問題。我添加了ErrorAction繼續: – user751119

+0

foreach($ web中的$ site.AllWebs -ErrorAction繼續) – user751119

相關問題