2

Microsoft.Office.RecordsManagement.InformationPolicy.ListPolicySettings APIは、リストの保持ポリシーを設定する方法を提供します。

public void SetRetentionSchedule(string retentionXml, string description)

retentionXmlを返すGetRetentionScheduleメソッドがあります。説明を取り戻す方法は?

任意の提案をいただければ幸いです。ありがとう!

4

1 に答える 1

1

これで解決するはずです: http://social.technet.microsoft.com/Forums/en-CA/sharepointgeneralprevious/thread/3a7323f6-a3fd-4e2b-9c67-27a1fc18c1c4

これがpowershellバージョンです:

function Get-RetentionScheduleDescriptionForFolder() {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [Microsoft.SharePoint.SPList]$List
    )
    $policyFile = $List.ParentWeb.GetFile(( Join-Uri list.RootFolder.Url "Forms/RetentionPolicy.Xml"));
    if ($null -ne $policyFile) {
        [xml]$xml = (New-Object System.Text.UTF8Encoding).GetString($policyFile.OpenBinary());
        $xml.RetentionItems.a.Desc;
    } 
}

function Join-Uri () {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$Path,
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$ChildPath )
    $scheme = (([System.Uri]$Path).Scheme)+'://'
    if($scheme -ne '://') {
        $joinedPath = Join-Path -Path $Path.Replace($scheme, '') -ChildPath $ChildPath
        $scheme+($joinedPath.Replace('\', '/'));
    } else {
        $joinedPath = Join-Path -Path $Path -ChildPath $ChildPath
        $joinedPath.Replace('\', '/');
    }
}
于 2012-12-30T20:19:49.443 に答える