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 | コメントをどうぞ

DocAve Ver.6 マネージャーサービスのインストール

使用者名と会社名の入力
2

ライセンスへの同意
3

インストール場所の選択
4

インストール項目の選択
今回は、評価目的なので完全インストール
5

インストールの前提条件の確認
エラーなどがあった場合には、警告や不合格が表示される
Web サーバーについては、以下の役割が必要

  • Web サーバー
  • HTTP 基本機能 (静的なコンテンツ、既定のドキュメント)
  • アプリケーション開発 (ASP.NET、.NET 拡張性、ISAPI 拡張、ISAPI フィルター)
  • 管理ツール (IIS 管理コンソール、IIS 6 管理互換、IIS 6 メタベース互換)

6

DocAve の管理画面を動作させるWebサイトの設定

アプリケーションのアカウント・パスワードを設定
ポートのバッティングがない限り、ポートはそのまま
ここに記載のポートで、ファイヤウォールに穴を開けること

7

DocAve のデータを保存するためのDBサーバーの設定

パスフレーズは、任意の文字列を設定。
この文字列を使って、DocAveマネージャーサービスは、エージェントとの接続を行う。

データベースをクラスタにしているのであれば、チェック

8

ここで、よくあるのが、SQL サーバー側で、ファイアウォールに穴をあけていないことによる、接続できませんでしたエラー
SQL Server の 1433 ポートは、事前に空けておきましょう

image

コントロール用のデータベースの作成確認

image

メディアサービスの構成

ここに記載のポートで、ファイヤウォールに穴を開けること

9

レポートサービスの構成

ここに記載のポートで、ファイヤウォールに穴を開けること

10

レポートサービスのデータベースの構築

11

image

監査用のデータベースの構築

12

image

証明書の設定

DocAve のサイトにアクセスする際には、SSL を利用するので、その証明書の設定
Built-In 証明書で、問題ないです。

13

インストール !!!

14

インストールが完了すると、エージェントとの接続用のパスフレーズが表示される。
エージェントのインストール時に、必要になります。

16

DocAve が作成するデータベースは、今回の設定なら、以下の3つ

image

エージェントと通信できるように、必要に応じて、
マネージャーのマシンのファイヤウォールの以下のポートをあける

  • コントトールサービス :14000
  • メディアサービス         :14001 , 14002
  • レポートサービス         :14003

インストールが終了すると、デスクトップにアイコンが作成されるので、ダブルクリックで起動してください。
Ver. 6 では、SilverLight を利用しているので、SilverLight のインストールが必要です。

image

自己証明書で、SSLを行っているため、証明書のエラーが表示されますが、気にせず、続行

image

Welcome to DocAve 6 !!!

image

image

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

LibreOffice から SharePoint への接続

まず、誰も使うこともないでしょうけど、LibreOffice 4 から、SharePoint Server に対応したらしいので、設定してみた。

以下にある、3つのファイルをダウンロード

http://download.documentfoundation.org/libreoffice/testing/4.0.0/rpm/x86_64/

LibreOffice_4.0.0.3_Linux_x86-64_rpm.tar.gz
LibreOffice_4.0.0.3_Linux_x86-64_rpm_helppack_ja.tar.gz
LibreOffice_4.0.0.3_Linux_x86-64_rpm_langpack_ja.tar.gz

tarball を解凍して、

tar xvf LibreOffice_4.0.0.3_Linux_x86-64_rpm.tar.gz
tar xvf LibreOffice_4.0.0.3_Linux_x86-64_rpm_helppack_ja.tar.gz
tar xvf LibreOffice_4.0.0.3_Linux_x86-64_rpm_langpack_ja.tar.gz

rpm コマンドで、LibreOffice をインストール

rpm -ivh ./LibreOffice_4.0.0.3_Linux_x86-64_rpm/RPMS/*.rpm
rpm -ivh ./LibreOffice_4.0.0.3_Linux_x86-64_rpm/RPMS/desktop-integration/libreoffice4.0-freedesktop-menus-4.0.0-103.noarch.rpm

rpm -ivh ./LibreOffice_4.0.0.3_Linux_x86-64_rpm_helppack_ja/RPMS/libobasis4.0-ja-help-4.0.0.3-103.x86_64.rpm

rpm -ivh ./LibreOffice_4.0.0.3_Linux_x86-64_rpm_langpack_ja/RPMS/*.rpm

LibreOffice を起動して、
メニューの中の「ツール」→「オプション」で、オプションのダイアログを開く

「全般」の中の「開く」ダイヤログと「保存」ダイアログで、

「LibreOffice ダイアログを使用する」にチェック

WS000001

適当にファイルを変種して、
ファイルを保存するダイアログで、ファイルパスの横の「…」をクリック

WS000002

保存先の種類で、「CMIS」を選択

WS000003

サーバーの種類で、「SharePoint 2010」を選択

WS000004

後は、URLを設定して、保存

カテゴリー: 備忘録 | コメントをどうぞ

SharePoint の SSL 設定

評価環境を構築する際に、SharePoint Server へのアクセスに、SSLを設定したので、
その作業内容の覚書

環境 : SharePoint 2013 on Windows Server 2012

自己署名入り証明書では、警告表示が出るので、Active Directory の証明書サービスを利用して、エンタープライズ証明書を発行・設定します。

Windows Server 2012 で、サーバーマネージャーから、Active Directory 証明書サービスをインストール

1

証明書サービスのインストール後、AD CS の構成で、エンタープライズCAを、選択して証明書サービスを構成

2

証明機関のサーバーの C:\WIndows\System32\Certsrv\CertEnroll にある証明書(拡張子.crt)を、コピーしておく

image

ここからは、SharePoint Server 側の作業

コマンドプロンプト( Windows キー + R ) から、mmc を入力して、管理コンソールを起動

「ファイル」→「スナップインの追加と削除」をクリック

image

証明書を選択して、真ん中の「追加」をクリック

image

「コンピューターアカウント」、「ローカルコンピューター」を選択して、完了

image

証明書の管理コンソールで、「信頼された証明機関」→ 「証明書」を右クリックして、

「すべてのタスク」→「インポート」を選択して、上で作った証明書を、インポート

インポート後、証明書が存在することを確認

image

以上で、下準備完了

SharePoint Server 上での設定

「Web アプリケーションの管理」で、SSLにしたいWebアプリケーションを選択して、

リボンの「拡張」をクリック

1

「新しい IIS Web サイトを作成する」で、

ポート443を選択

「SSL (Secure Sockets Layer) の使用  」を、「はい」にチェック

1

続いて、IISマネージャーで、サーバーを選択して、「サーバー証明書」をクリック

1

「サーバー証明書」の画面で、「ドメイン証明書」をクリック

無題

識別名は、ユーザーがアクセスするときのFQDNと同じもの

image

選択から、インポートした証明機関を選択

image

続いて、443ポートへのバインド

IISマネージャーで、443ポートのWebサイトを選択して、バインドをクリック

無題

今ある443の行を選択して、「編集」をクリック

SSL証明書を、適用

image

それでは、SharePoint のサイトへ、https:// で、アクセス

念のため、URL横のカギマークをクリックして、SSLの確認

無題

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