SSブログ

VBプログラマのSharePoint開発-(2)- ユーザー追加 [技術情報]

SPS2003で検索を実施するためには各サイトをクロールする必要性があります。
この際にクロールするユーザーアカウントがクロール対象サイトにアクセス権を持っている必要性があります。
しかし、クロールアカウントが入っていないサイトを見つけてアクセス権を登録するのは至難の業です。
そこで今回は特定アカウントを全サイトに登録するコンソールプログラムを作りました。
下記のサンプルはその一部です。パラメータにサイトURLを渡してそのサイト配下の全サブサイトに対して指定のアカウントが存在しなければ追加します。

--------------------------------------------------------------------------
Public Function AdminUserAdd(ByVal SiteUrl As String) As Boolean
Dim GlobalAdmin As New Administration.SPGlobalAdmin
Dim MySPUser As SPUser
Dim MySPWeb As SPWeb
Dim MySPRole As SPRole
Dim tmpLogin As String
Dim admLogin As String = [追加したいユーザーアカウント]
Dim addFlg As Boolean

Try
Dim MyUri As Uri = New Uri(SiteUrl)
Dim MyVirtualServer As Administration.SPVirtualServer = GlobalAdmin.OpenVirtualServer(MyUri)
Dim MySPSite As SPSite = MyVirtualServer.Sites(MyUri.AbsolutePath)

'サイトコレクション内の全サブサイトを調べる
For Each MySPWeb In MySPSite.AllWebs
        '追加フラグ
addFlg = False
Try
'サブサイト内の全ロールを調べる
For Each MySPRole In MySPWeb.Roles
'ロールが管理者か?
If MySPRole.Type = SPRoleType.Administrator Then
'全管理者ユーザーを調べる
For Each MySPUser In MySPRole.Users
'追加したいアカウントが存在するかチェックする。
If MySPUser.LoginName.ToLower = admLogin.ToLower Then
addFlg = True
End If
Next
End If
Next
Catch ex As Exception
System.Console.WriteLine("*** Web Language Not Supported ** " & ex.Message)
System.Console.WriteLine("Site Url = " & MySPWeb.Url)
End Try
'追加したいアカウントが存在しなかった場合、アカウントを追加する。
If addFlg = False Then
MySPRole.AddUser(sUser, sEmail, sShowName, sNotes)
End If
Next
Catch ex As Exception
System.Console.WriteLine(ex.Message)
End Try
End Function


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。