Powershell:将CSV结果保存到文件夹

这应该是很容易的,但我仍然跑进一堵砖墙。 我正在运行一个Powershell脚本,执行我的任务审计,并将结果保存为CSV。 我不断收到权限错误,但我不知道我失踪。

这是我的代码:

Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns | Where { $_.TaskName -like "test_*"} | Export-Csv -NoTypeInformation -Path C:\temp\scheduled_tasks_audit 

这是我得到的回应:

 Export-Csv : Access to the path 'C:\temp\scheduled_tasks_audit' is denied. At C:\temp\scheduled_tasks_audit\example_task_audit.ps1:6 char:5 + Export-Csv -NoTypeInformation -Path C:\temp\scheduled_tasks_audit + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Export-Csv], UnauthorizedAccessException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand 

我检查了使用Powershell的用户:

 [Environment]::UserName 

并确保该帐户具有目标文件夹的完全权限,但我仍然得到一个访问被拒绝的错误。

我正在运行Windows Server 2012 R2和Powershell 4.0

您的path参数似乎指向您正在运行该脚本的文件夹的名称,因此您运行该脚本,它会尝试创build一个名为C:\ temp \ scheduled_tasks_audit文件已经存在作为文件夹。 如果运行Get-Help Export-CSV -Full,则可以看到Path参数需要文件的名称

  -Path [<String>] Specifies the path to the CSV output file. This parameter is required. Required? false Position? 1 Default value none Accept pipeline input? false Accept wildcard characters? false 

改变你的代码

 Get-ScheduledTask | Where State -ne "Disabled" | Get-ScheduledTaskInfo | Select TaskName,TaskPath,LastRunTime, LastTaskResult,NextRunTime,NumberofMissedRuns | Where { $_.TaskName -like "test_*"} | Export-Csv -NoTypeInformation -Path C:\temp\scheduled_tasks_audit\output.csv 

你应该很好走。

您需要在您的-Pathvariables的末尾指定一个文件名,如下所示:

C:\ TEMP \ scheduled_tasks_audit \ audit.csv