2011年9月9日金曜日

◆PowershellでSharePointサイトのクロール処理を実行する

SharePointのプロキシー設定がメタメタで、色々と調査するのに何度も手動クロールする必要があったため、Powershellスクリプトを作ってみた。
特に、IEのプロキシー設定を変える必要があり、SharePointの管理サイトにつながらない環境でテストするには必須になる。

001
002
003
004
005
006
007
008
009
010
011
012

$sApp = Get-SPEnterpriseSearchServiceApplication "Search Service Application"
$cSource = Get-SPEnterpriseSearchCrawlContentSource
 `
 
-Identity "ローカルの SharePoint サイト" -SearchApplication 
$sApp
$cSource
.StartFullCrawl()
cls
Write-Host
 "■クロールスタート"
Do
{
 
Start-Sleep 3
  Write-Host "*" -NoNewline
}
until($cSource.CrawlStatus -eq "Idle")
$cSource | fl *
<!--E

まずは1行目でサーチサービスアプリケーションのインスタンスを取得。
そのインスタンスを使って2行目でコンテンツソースを取得。
あとは取得したコンテンツソースのStartFullCrawlメソッドを呼んでやるだけ。
終了イベントはなさげだったのでループして監視。
結果はコンテンツソースオブジェクトから取得できる。

この例では一つのソースだけを使っているが、複数のソースを纏めてクロールするには、2行目でIdentityパラメータを省略するとソース全部が返ってくるので、それをループしてやれば良さそうだ。

0 件のコメント:

コメントを投稿