Client Side Object Model (CSOM) を使った SharePoint の操作

これは、PowerShell Advent Calendar 2014 18日目の記事です。

SharePoint でリストなどの情報を、PowerShell から利用するためには、Client Side Object Model (CSOM) を利用する必要があり、以下の二つをインストールする必要があります。

Windows Management Framework 3.0
http://www.microsoft.com/en-us/download/details.aspx?id=34595

SharePoint Server 2013 Client Components SDK
http://www.microsoft.com/en-us/download/details.aspx?id=35585

CSOM を使って、

● 接続
● サイトのタイトルとURLの取得
● SiteCheckリストのタイトル取得

までは、以下のようになります。


# Client Side Object Model の読み込み
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" 
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" 

$WebUrl = 'https://テナント名.sharepoint.com/'
$loginUser = "hoge@テナント名.onmicrosoft.com "
$Password = "パスワード" 

$securePassword = ConvertTo-SecureString $Password -AsPlainText -Force 

# コンテキストを作成
$Context =New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($loginUser, $securePassword) 
$Context.Credentials = $credentials 

if (!$Context.ServerObjectIsNull.Value) 
{ 
    Write-Host $WebUrl " に接続完了" -ForegroundColor Green 
} 

$web = $Context.Web
$Context.Load($web)
$Context.ExecuteQuery()

Write-Host $web.title
Write-Host $web.Url

# SiteCheck というリストの内容を抽出
$listName = "SiteCheck"

$list = $web.Lists.GetByTitle($listName) 
$Context.Load($list)
$Context.ExecuteQuery()

Write-Host $list.Title
Write-Host $list.Description

$query = New-Object Microsoft.SharePoint.Client.CamlQuery
$query.ViewXml = ""

$listItems = $list.getItems($query)
$Context.Load($listItems)
$Context.ExecuteQuery()
$query.ListItemCollectionPosition = $listItems.ListItemCollectionPosition

foreach($item in $listItems)
{
        Write-Host  $item["Title"]
}

カテゴリー: Office 365, PowerShell, SharePoint Server | コメントをどうぞ

admin アカウントのパスワード変更

DocAve は、インストール直後は、ユーザー名/パスワード:admin/admin だけが、管理アカウントになります。
このアカウントのパスワードは、当然、初回ログイン時に変更します。

  1. コントロールパネルのアカウントマネージャー
    無題
  2. 左上のユーザーから、admin をクリック
    無題
  3. 「パスワードを変更する」にチェックを入れて、パスワードを変更無題
  4. OKをクリックして保存
カテゴリー: DocAve Tips | コメントをどうぞ

DocAve 日本語表示への変更

DocAve を、インストールした直後は、管理画面は英語表示になっています。

もちろん、英語のままで使い続けますが、たまには、日本語を見てみたいなぁと思ったときには、

  1. 管理画面右上の「コントロールパネル」をクリック
  2. 「System Options」→ 「General Settings」をクリック
    無題
  3. Language Preference の Display を、「日本語」Locale を、Japanese
    無題
    で、日本語表示
カテゴリー: DocAve Tips | コメントをどうぞ

ActiveDirectory でのログイン

DocAve は、デフォルトのログインは、ローカルDBでのログインですが、当然、Active Directory アカンとでのログインに変更します。

  1. 「コントロールパネル」→「アカウントマネージャー」で、認証マネージャーをクリック
    無題
  2. 左上の「AD統合」をクリック
    無題
  3. 左上の「追加」をクリック
    無題
  4. ドメインの情報を参照できる権限 ( administrators のメンバーでいいでしょう)を入力して、テストをクリック
  5. テストに成功すれば、OKをクリック
  6. 認証マネージャーまで戻って、AD統合を「既定に設定」して、上のタブで、「アカウントマネージャー」をクリックして、移動
    無題
  7. 「ユーザーの追加」をクリック
    無題
  8. 「ユーザータイプ」を、「Active Directory ユーザー/グループ」に変更して、
    Active Directory のアカウントを選択
    下のグループは、DocAve のローカルグループから、割り当てたいグループを選択
    無題
  9. 一旦、ログアウトして、Active Directory のアカウントでログイン
    無題
カテゴリー: DocAve Tips | コメントをどうぞ

DocAve のログイン画面

DocAve のログインは変わっていて、デスクトップのアイコンをクリックすると、https://サーバー名:14000/Index.htm で証明書のエラーが出てから、JAVAScript で、ウィンドウが開きます。

これは、管理用マシンからだとメンドクサイので、直接、ログイン画面を開きましょう

https://サーバー名:14000/DocAve.aspx

が、DocAve のログイン画面です。

image

ちなみに、DocAve Ver.5 では、

http://サーバー名:8080/docave/Login.cgi

が、ログイン画面です。

image

カテゴリー: DocAve Tips | コメントをどうぞ

SkyDrive Pro へのバックアップ

SharePoint に、Visual Studio のプロジェクトファイルなども保存したいので、PowerShell のスクリプトを作ってみた。

保存方法としては、
対象のファイルをzip に圧縮して、SkyDrive Pro のフォルダに保存、SkyDrivePro を使って、SharePoint と同期。

.NET Framework 4.5 から、System.IO.Compression.ZipFile ができたので、簡単に zip ファイルが作成できるようになった。ですので、.NET Framework 4.5が必要です。

C:\Users\hogehoge\Documents\Visual Studio 2012\Projects 内のフォルダを、

SkyDrive Pro の

C:\Users\hogehoge\SharePoint\hogehoge\VS2012_Projects\日付 フォルダに、バックアップ


# バックアップ元のフォルダ

$sourceForderPath = "C:\Users\hogehoge\Documents\Visual Studio 2012\Projects" + "\"

# バックアップ先のフォルダ、日付名:(Get-Date).ToString("yyyyMMdd-hhmm") を付けている

$destFolderPath = "C:\Users\hogehoge\SharePoint\hogehoge\_VS2012_Projects\" + (Get-Date).ToString("yyyyMMdd-hhmm") + "\"

# ファイルの拡張子
$fileExt = ".zip"

# フォルダの作成
New-Item -path $destFolderPath -type directory

foreach ( $s in Get-ChildItem $sourceForderPath )
{

$src_folder = $s.FullName
$destfile = $destFolderPath + $s.Name + $fileExt
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
$includebasedir = $false

[Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" )

[System.IO.Compression.ZipFile]::CreateFromDirectory($src_folder,$destfile,$compressionLevel, $includebasedir )

}
カテゴリー: Office 365, PowerShell | コメントをどうぞ

DocAve Ver.6 エージェントインストール

使用者名と会社名を入力

image

ライセンスの許諾

image

インストール場所

image

インストールの条件確認

image

マネージャーとの接続設定
エージェントマシンのファイヤウォールで、14004 (デフォルト) を開ける

image

エージェントの認証

マネージャーサービスをインストールしたときに、設定したパスフレーズを入力

image

インストール!!!

image

完了 !!!

image

DocAve マネージャーで、サイト構造が確認できれば、完成です。

image

カテゴリー: DocAve | コメントをどうぞ