字符串我創建了一個紙條,通過所有列表基本上迭代的網站和子網站,並列出了每個文件或項目的權限。出口System.Object的[],在PowerShell中
腳本作品,然而,被寫入到CSV權限(會員+角色),當字符串被寫爲System.Object[]
,而不是在CSV輸出aproper字符串(如Member: user123 Role: Full Control
)
輸出示例:
"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"
下面是腳本:
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
是否有可能導出System.Object的[]的用戶名作爲STRI在CSV中?名稱顯示爲他們應該在GridView中。
您是否嘗試過一個子表達式? https://blogs.technet.microsoft.com/stefan_stranger/2013/09/25/powershell-sub-expressions/和http://stackoverflow.com/questions/26984637/powershell-variable-syntax-a有更多信息他們。 $ Permission =「Member:」+ $($ roleAssignment.Member.LoginName)+「Role:」+ $($ roleDefinition.Name)謝謝Tim。 –