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

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

答案1

您的路径参数似乎指向您正在运行脚本的文件夹的名称,因此您运行该脚本,它会尝试创建一个名为 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

你就可以走了。

答案2

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

C:\temp\scheduled_tasks_audit\audit.csv

相关内容