Exchange Online邮箱统计导出CSV遇路径错误求助
解决Exchange Online邮箱统计导出到桌面CSV的路径错误问题
错误原因
以管理员身份运行PowerShell时,$env:USERPROFILE会指向管理员账户的用户目录,而非当前登录用户的桌面路径,导致脚本试图访问不存在的目标路径,触发DirectoryNotFoundException。
解决方案
方法1:使用系统API获取正确桌面路径(推荐)
通过[Environment]::GetFolderPath('Desktop')可直接获取当前交互式登录用户的桌面路径,不受管理员运行身份影响:
# 获取当前用户的正确桌面路径 $desktopPath = [Environment]::GetFolderPath('Desktop') # 执行Exchange Online邮箱统计并导出到CSV Get-EXOMailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Select-Object DisplayName, TotalItemSize, MailboxGuid | Sort-Object TotalItemSize -Descending | Export-Csv -Path "$desktopPath\MailboxStatistics.csv" -NoTypeInformation
方法2:手动指定绝对路径
若明确知道自己的用户桌面路径,直接替换为实际路径即可:
# 替换为你的实际桌面路径 $desktopPath = "C:\Users\你的用户名\Desktop" # 后续导出命令不变 Get-EXOMailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Select-Object DisplayName, TotalItemSize, MailboxGuid | Sort-Object TotalItemSize -Descending | Export-Csv -Path "$desktopPath\MailboxStatistics.csv" -NoTypeInformation
方法3:添加路径存在性检查(可选)
若担心桌面路径异常,可先验证路径是否存在,不存在则创建(桌面路径一般不会缺失,此步骤为额外保险):
$desktopPath = [Environment]::GetFolderPath('Desktop') # 检查路径,不存在则创建 if (-not (Test-Path -Path $desktopPath)) { New-Item -ItemType Directory -Path $desktopPath | Out-Null } # 执行导出 Get-EXOMailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Select-Object DisplayName, TotalItemSize, MailboxGuid | Sort-Object TotalItemSize -Descending | Export-Csv -Path "$desktopPath\MailboxStatistics.csv" -NoTypeInformation
内容的提问来源于stack exchange,提问作者JG84
相关产品推荐
相关产品推荐

