基本的にサイトとそのサブサイトのすべてのリストを繰り返し処理し、各ドキュメントまたはアイテムのアクセス許可を一覧表示するスクリプトを作成しました。System.Object []をPowerShellの文字列にエクスポート
:CSVへのアクセス権(メンバー+役割を)書かれているときスクリプトは、しかし、文字列ではなく、CSV出力におけるaproper文字列のSystem.Object[]
(例えばMember: user123 Role: Full Control
)
サンプル出力として書き込まれます作品
Add-PSSnapin Microsoft.SharePoint.PowerShell
function Get-DocInventory([string]$siteUrl) {
$site = New-Object Microsoft.SharePoint.SPSite $siteUrl
$i = 0;
foreach ($web in $site.AllWebs) {
$count = $site.AllWebs.Count
foreach ($list in $web.Lists) {
if ($list.BaseType -ne “DocumentLibrary”)
{
continue
}
foreach ($item in $list.Items) {
$data = @{
"Web Application" = $web.ToString()
"Site" = $site.Url
"Web" = $web.Url
"list" = $list.Title
"Item URL" = $item.Url
"Item Title" = $item["Title"]
"Item Created" = $item["Created"]
"Item Modified" = $item["Modified"]
"File Size" = $item.File.Length/1KB
"Permissions" = foreach($roleAssignment in $item.RoleAssignments)
{
$Permission = ""
foreach($roleDefinition in $roleAssignment.RoleDefinitionBindings)
{
$Permission = $(foreach($roleAssignment in $item.RoleAssignments){$roleAssignment}
{
"Member: " + $roleAssignment.Member.LoginName + " Role: " + $roleDefinition.Name + " "
} -join ',')
$Permission
Write-Progress -activity "Working" -status "Checked Sub-Site $i of $count" -percentComplete (($i/$count)/100)
}
}
}
New-Object PSObject -Property $data
}
}
$web.Dispose();
}
$i++
$site.Dispose()
}
<# Get-DocInventory "https://#####.####.###.##/" | Out-GridView #>
Get-DocInventory "https://#####.####.###.##/" | Export-Csv -NoTypeInformation -Path C:\Users\livob002-lap\Desktop\Permissions-FinanceIntranet.csv
はようSTRIのSystem.Object []のユーザー名をエクスポートすることが可能です:
"Common Hover Panel Actions","https://#######.####.###.##","https://######.######.#####.####","System.Object[]"," Ministry for Finance","Master Page Gallery","12/22/2015 8:34:39 AM","_catalogs/masterpage/Display Templates/Search/Item_CommonHoverPanel_Actions.js","12/22/2015 8:34:39 AM","6.2763671875"
以下のスクリプトですCSVには?名前はGridViewに表示されるように表示されます。
あなたが部分式を試してみましたか? https://blogs.technet.microsoft.com/stefan_stranger/2013/09/25/powershell-sub-expressions/およびhttp://stackoverflow.com/questions/26984637/powershell-variable-syntax-a more information onそれら。 $ Permission = "Member:" + $($ roleAssignment.Member.LoginName)+ "Role:" + $($ roleDefinition.Name)ありがとう、ティム。 –