2012-10-30 2 views
2

У меня есть простой сценарий powershell, предназначенный для управления Sharepoint 2010. Я разделил его до минимума, чтобы проиллюстрировать проблему.не может получить базовый сценарий powershell sharepoint для запуска

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

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

Это терпит неудачу, когда я ввожу «Еогеасп» цикл (так интегрируемый нагрузок 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 

Проблема не строка: 1 скрипта, сообщение относится к линии: 1 команды, которую я набираю, чтобы запустить его (я изменил название из скрипт и char: 12 соответственно). BUt, как я сказал, ошибка генерируется циклом foreach, и код встречается во многих примерах в Сети, поэтому есть что-то затмение в отношении моего локального SharePoint. Какие-либо предложения?

+0

У вас есть другая ошибка, если вы удалите "-erroraction SilentlyContinue"? Кажется, что если это не удается, вы не хотите, чтобы это происходило молча. –

ответ

1

попробовать это изменение:

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

    foreach ($web in $site.Site.AllWebs) 
-1

Возможно FullyQualifiedErrorId в сообщении об ошибке дает подсказку о первопричине проблемы?

Это, казалось бы, указывает на то, что $ siteURL необходимо включить полное доменное имя. Возможно, вместо $siteURL = "http://intranet/" вам понадобится $siteURL = "http://intranet.yourdomain.com".

+1

FullyQualifiedErrorId - полное имя исключения, а не предложение использовать полное доменное имя в URL-адресе сайта – shufler

4

Это поздний ответ, но я пришел сюда из поиска Google, и я хотел бы разрешить это для любых будущих посетителей.

Тот же самый вопрос/причина описана здесь: https://sharepoint.stackexchange.com/questions/17247/spsite-allwebs-returns-error

В основном, это проблема с разрешениями. Если вы добавили учетную запись, вы запускаете скрипт в отношении разрешений семейства сайтов, о котором идет речь, эта ошибка должна исчезнуть.

0

Решенный для меня использованием блока повышенных привилегий. Кроме того, не забудьте выставить объекты sharepoint SPSite и SPWeb.

[Microsoft.SharePoint.SPSecurity]::RunWithElevatedPrivileges({ 
$Site = Get-SPSite $siteUrl 
Foreach ($web in $Site.AllWebs) 
{ 
    #do something.. 
    $web.Dispose() 
} 
$Site.Dispose() 
}); 
Смежные вопросы