使用 PowerShell 导出为 CSV
Export to CSV using PowerShell
我正在使用 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 ""
}
为了扩展 Lee 的回答,代码如下所示:
$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
我还没有测试过这个。
我想你需要的是创建一个新对象
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
将外部 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
我正在使用 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 ""
}
为了扩展 Lee 的回答,代码如下所示:
$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
我还没有测试过这个。
我想你需要的是创建一个新对象
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
将外部 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