Export-Csv — доступ к пути «C:\export.csv» запрещен

Я получаю нужную мне информацию из строки, хотя когда я иду экспортировать информацию, я получаю сообщение об ошибке.

Когда я запускаю этот код:

get-process | Export-csv -Path "C:\export.csv" -NoTypeInformation

Я получаю эту ошибку:

Export-csv : Access to the path 'C:\export.csv' is denied.
At line:1 char:14
+ get-process | Export-csv -Path "C:\export.csv" -NoTypeInformation
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Как я могу экспортировать в CSV?


person Dustin Krauss    schedule 10.03.2020    source источник


Ответы (2)


Вам нужно использовать консоль администратора или изменить местоположение CSV-файла на C:\temp или что-то в этом роде. Домашний диск требует прав администратора.

powershell по умолчанию против администратора

РЕДАКТИРОВАТЬ: Требование к повышению прав только для системных каталогов, таких как:

C:\
C:\Windows
C:\Program Files
C:\Program Files (x86)
C:\Users

Обратите внимание, что вы можете изменить C:\Users\<YourUserName>, но не любые другие каталоги в C:\Users. Windows была создана для нескольких пользователей, даже если вы единственный, кто использует ее. Вышеупомянутые каталоги являются общими для всех пользователей, и изменение их содержимого эффективно изменит среду Windows и для других пользователей, поскольку Windows зависит от целостности этих каталогов. Разрешение обычному пользователю удалять/изменять/добавлять файлы к ним может иметь опасные последствия для ОС и других людей, которые ее используют.

Таким образом, он пытается убедиться, что только пользователь с правами администратора имеет право вносить в него изменения. Это также та же причина, по которой у вас запрашиваются права администратора при установке программного обеспечения. Он устанавливается на C:\Program Files или C:\Program Files (x86), вносит изменения в реестр и доступен всем пользователям этого компьютера. То же самое и с удалением. Если программа не требует этого, она не требует прав администратора. Например: портативные программы. Некоторые программы используют только каталог пользователя или каталог пользователей temp C:\Users\<Username>\AppData\Local\Temp. Такие программы доступны только тому пользователю, который их установил.

Если у вас есть собственный каталог, такой как C:\myGames, добавление файлов в него не потребует повышения прав. Итак, C:\Temp — это еще один такой же каталог. Вы также заметите, что C:\ позволит обычному пользователю создать папку, но не файл.

РЕЗЮМЕ: Любые изменения, влияющие на другие пользовательские каталоги или среду Windows, потребуют прав администратора. Другие этого не делают.

person Sid    schedule 10.03.2020
comment
Ну, не чувствую ли я себя совсем глупым! Спасибо за быстрый ответ! Слава вам. Вы случайно не знаете, как заставить его сохраняться в ту же папку, из которой запускается скрипт powershell? (Я поиграю с этим, так как ничего не могу найти, но решил спросить, так как это связано.) Еще раз спасибо! - person Dustin Krauss; 10.03.2020
comment
Ага. Вы можете сделать Export-Csv .\export.csv - person Sid; 10.03.2020
comment
Отличный ответ! Вы случайно не знаете, почему temp — это зарезервированный каталог, который не требует повышения прав? - person KyleMit; 20.05.2020
comment
@KyleMit Требование повышения прав требуется только для системных каталогов, таких как C:\, C:\Windows, C:\Program Files, C:\Program Files (x86), C:\Users и т. д. Windows была создана для нескольких пользователей, даже если вы может быть единственным пользователем. Изменение содержимого этих каталогов эффективно изменит среду Windows и для других пользователей, поскольку Windows зависит от целостности этих каталогов. Таким образом, он гарантирует, что только администратор имеет право изменять его. Если у вас есть собственный каталог, такой как C:\myGames, добавление файлов в него не потребует повышения прав. Итак, C:\Temp — это просто еще один такой каталог. - person Sid; 21.05.2020
comment
Спасибо @KyleMit - person Sid; 22.05.2020

В моем случае ошибка произошла из-за того, что я не указал имя файла. Правильный синтаксис;

Export-Csv -path ".\targetList.csv"

а не -путь.

person Salman Siddiqui    schedule 26.03.2021