如何修改PowerShell脚本导出指定Planner ID至CSV文件
解决方法
你只需要在脚本中添加结果收集逻辑和CSV导出命令即可实现需求,修改后的完整脚本如下:
#Constants $fileSystemPath = "C:\Users\xxxxx\xxxxxxxx\xxxx" $Groups = Import-Csv -Path "$fileSystemPath\xxxx\input.csv" $AdminUrl = "https://xxxxx-admin.sharepoint.com" # 初始化空数组用于存储导出数据 $exportResults = @() # Connect Import-Module PnP.PowerShell Connect-PnPOnline -Url $AdminUrl -Interactive #Connect to Specific Site foreach ($Group in $Groups) { Connect-PnPOnline -Url $Group.siteurl -Interactive # Pull Plan ID $groupDisplayName = Get-PnPMicrosoft365Group -identity $Group.groupname | Select-Object -ExpandProperty DisplayName $plannerId = Get-PnPPlannerPlan -Group $Group.groupname -Identity $Group.planTitle | Select-Object -ExpandProperty Id # 创建包含目标字段的自定义对象 $resultObject = [PSCustomObject]@{ GroupName = $groupDisplayName PlanTitle = $Group.planTitle PlannerId = $plannerId } # 将对象添加到结果数组 $exportResults += $resultObject } # 导出结果到CSV文件,路径可自行修改 $exportResults | Export-Csv -Path "$fileSystemPath\PlannerExportResults.csv" -NoTypeInformation -Encoding UTF8
关键修改说明:
- 新增
$exportResults = @():初始化一个空数组,用于逐个存储每个站点/计划的查询结果 - 循环内创建
[PSCustomObject]:将获取到的组名、计划名、计划ID封装成结构化对象,确保CSV列对应正确 - 新增
Export-Csv命令:循环结束后,将结果数组导出为CSV文件,-NoTypeInformation避免生成多余的类型信息行,-Encoding UTF8保证中文等特殊字符显示正常
注意事项:
- 如果你的PnP连接会话在循环中可以复用,可以去掉
Connect-PnPOnline -Url $Group.siteurl -Interactive这一行,避免重复弹出登录窗口,提升执行效率 - 确保导出路径有写入权限,避免执行时报错
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

