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. using:

[Environment]::UserName

И убедился, что у учетной записи есть полные разрешения для целевой папки, но я все еще получаю сообщение об отказе в доступе.

Я использую Windows Server 2012 R2 и Powershell 4.0

2
задан 22 February 2016 в 21:53
2 ответа

Кажется, ваш параметр пути указывает на имя папки, из которой вы запускаете скрипт, поэтому вы запускаете скрипт, и он пытается создать файл с именем C: \ temp \ schedule_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

, и все будет в порядке.

4
ответ дан 3 December 2019 в 09:15

Вам необходимо указать имя файла в конце вашей переменной -Path, например:

C: \ temp \ schedule_tasks_audit \ audit.csv

2
ответ дан 3 December 2019 в 09:15

Теги

Похожие вопросы