Это должно быть абсолютно легко, но я все время натыкаюсь на кирпичную стену. Я запускаю сценарий 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
Кажется, что ваш параметр пути указывает на имя папки, из которой вы запускаете скрипт, поэтому вы запускаете скрипт, и он пытается создать файл с именем 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
и вам должно быть хорошо идти.
Вам нужно указать имя файла в конце вашей переменной -Path, например:
C: \ темп \ запланированные_задачи_аудит \ audit.csv