読者です 読者をやめる 読者になる 読者になる

からめもぶろぐ。

ワタシ SharePoint チョット デキル

SharePoint で更新日時の表示形式を「標準」にする (SharePoint Online 対応版)

PowerShell SharePoint

karamem0.hateblo.jp

こちらの記事ではサーバー オブジェクト モデルを使っていたため SharePoint Online では動作しませんでしたので、クライアント オブジェクト モデルで書き直してみました。

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")

$url = "<サイトの URL>"
$username = "<ユーザー ID>"
$password = "<パスワード>"

$password = ConvertTo-SecureString $password -AsPlainText -Force
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$context = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$context.Credentials = $credentials

$web = $context.Web
$context.Load($web.Lists)
$context.ExecuteQuery()

foreach ($list in $web.Lists) {
    $context.Load($list.Fields)
    $context.ExecuteQuery()

    $field = $list.Fields.GetByInternalNameOrTitle("Created")
    $field = New-Object Microsoft.SharePoint.Client.FieldDateTime($context, $field.Path)
    $context.Load($field)
    $context.ExecuteQuery()
    $field.FriendlyDisplayFormat = [Microsoft.SharePoint.Client.DateTimeFieldFriendlyFormatType]::Disabled
    $field.Update()
    $context.ExecuteQuery()

    $field = $list.Fields.GetByInternalNameOrTitle("Modified")
    $field = New-Object Microsoft.SharePoint.Client.FieldDateTime($context, $field.Path)
    $context.Load($field)
    $context.ExecuteQuery()
    $field.FriendlyDisplayFormat = [Microsoft.SharePoint.Client.DateTimeFieldFriendlyFormatType]::Disabled
    $field.Update()
    $context.ExecuteQuery()
}

サーバー オブジェクト モデルに慣れているとクライアント オブジェクト モデルは勝手が違って大変ですね。でも SharePoint Online を使う場合はどうしても必要になるので、覚えていかないといけない気がします。