Экспорт в CSV с помощью PowerShell - PullRequest
0 голосов
/ 15 января 2019

Я использую сценарий PowerShell для получения URL-адреса корневого сайта и всех дочерних сайтов на сайте SharePoint и вывода URL-адреса, заголовка и общего количества пользователей, как показано ниже.

Url: http://sourcevideo.f.com | Title: The Source Video | Users: 3345
Url: http://sourcevideo.f.com/AGap | Title: A Gap | Users: 3345
Url: http://sourcevideo.f.com/AVideos | Title: Videos | Users: 417
Url: http://sourcevideo.f.com/BCt | Title: BC Japan | Users: 39

Как бы я мог экспортировать это в CSV с тремя столбцами?

Код:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" |
                   Get-SPSite -Limit All
foreach ($Site in $SiteCollections) {
    foreach ($Web in $Site.AllWebs) {
        Write-Host "Url:"$web.URL "| Title:"$web.Title "| Users:" $web.AllUsers.Count
    }
    Write-Host ""
}

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Я думаю, что вам нужно создать новый объект

New-Object PSObject -Property @{Url=$web.URL;Title=$web.Title;Users=$web.AllUsers.Count}

Вот законченный скрипт, который я написал, но могу проверить, так как у меня нет плагина sharepoint

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" | Get-SPSite -Limit All | %{
    $Site = $_
    $Site | %{
        New-Object PSObject -Property @{Url=$_.URL;Title=$_.Title;Users=$_.AllUsers.Count}
    }
} | export-csv -Path C:\Test\Output.csv -NoTypeInformation
0 голосов
/ 15 января 2019

Назначить внешний foreach переменной и
во внутренней построить [PSCustomObject]

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" |
                   Get-SPSite -Limit All
$Data = foreach ($Site in $SiteCollections) {
    foreach ($Web in $Site.AllWebs) {
        [PSCustomObject]@{
            Url   = $web.URL
            Title = $web.Title
            Users = $web.AllUsers.Count
        }
    }
}
$Data | Export-Csv .\yourName.csv -NoTypeInformation
0 голосов
/ 15 января 2019

Чтобы расширить ответ Ли, код будет выглядеть так:

$WebInfo = @(
“$web.url”
“$web.title”
"$web.allusers.count"
)
$properties = @{'website url'=$WebInfo[0];'website title'=$WebInfo[1];'user count'=$WebInfo[2]}
$WebsiteObject = New-Object -TypeName PSObject -Property $properties
$WebsiteObject | Export-Csv -path "put path here" -NoTypeInformation 

Я не проверял это.

...