PowerShell 보안 및 파일 액세스 문제를 이해하는 데 도움이 필요합니다.
PowerShell을 사용하여 콘솔에서 다음 줄이 포함된 스크립트를 실행하고 있습니다.
$inpath = "C:\users\xxxxx\path\foo\bar"
계속해서 이런 오류가 발생합니다.
Get-Content : Access to the path 'C:\users\xxxxx\path\foo\bar' is denied.
At C:\users\xxxxx\path\foo\testscript.ps1:53 char:12
+ Get-Content <<<< $txtfile | Get-WordCount -Exclude (Get-Content c:\temp\exclude.txt) | select -First 15
+ CategoryInfo : PermissionDenied: (C:\users\xxxxx\path\foo\bar:String) [Get-Content], UnauthorizedAcc
essException
+ FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
스크립트와 대상 파일은 모두 로컬 드라이브에 있습니다.탐색기에서 파일에 액세스하고, NotesPad를 사용하여 파일을 보거나 편집/저장할 수 있으며, 사용 권한 제한이 설정되어 있지 않습니다.명령줄에 있을 때는get-contentcmdlet이 내 경로에 있는 파일에서 성공적으로 실행되었습니다.디렉토리를 변경할 수 있습니다.PS C:> cd C:\users\xxxxx\path\foo\bar그리고 성공적으로 거기에 있는 것을 나열합니다.더 흥미로운 것은 스크립트에서 오류가 있는 행을 복제하고 명령줄에서 오류를 수신하지 않을 수 있다는 점입니다.
PS C:\users\xxxxx\path\foo> $inpath = "C:\users\xxxxx\path\foo\bar"
PS C:\users\xxxxx\path\foo>
이로 인해 '권한 거부' 오류가 실제로는 다른 것이거나 문제 해결을 어떻게 진행해야 할지 전혀 알 수 없을 정도로 모호한 것이 아닌가 의심하게 됩니다.PS가 실행 중인 사용자와 다른 권한을 가질 수 있습니까?이전에 이 행동을 본 사람이 있습니까? 그리고 어떻게 문제를 해결했습니까?제가 모르는 간단한 해결책이 있을 겁니다.
Get-Content : 'C:\users\xxxxx\path\foo\bar' 경로에 대한 액세스가 거부되었습니다. C:\users\xxxxx\path\foo\testscript.ps1:53 문자:12
그 경로는 파일이 아니라 폴더처럼 보입니다.
파일 이름을 폴더에 추가하고 전달하시겠습니까?Get-Content?
추가 플래그를 전달하지 않고 파일인 것처럼 디렉터리를 열려고 하면 Windows에서 액세스 거부 메시지를 표시합니다.NET은 이러한 플래그를 전달하지 않습니다(폴더를 열기 위한 몇 가지 특정 상황이 있지만 여기에는 적용되지 않습니다).
폴더가 아닌 파일의 내용 읽기 내용입니다.아래와 같이 폴더 경로 뒤에 .를 추가하십시오.
Get-Content "D:\Logs\*.*" | ?{($_|Select-String "test")}
아래의 모든 폴더를 살펴보려면 아래와 같이 추가 -재귀를 수행합니다.
Get-Content "D:\Logs\*.*" -Recurse | ?{($_|Select-String "test")}
이 대신: (당신의 의견에 따름)
foreach ($doc in $inpath) { do-function }
사용해 보십시오.
foreach ($doc in (gci $inpath)) { do-function }
당신은 하고 있습니다.foreach폴더 항목 대신 문자열 개체에 있습니다.
언급URL : https://stackoverflow.com/questions/14483711/i-need-help-understanding-powershell-security-and-file-access-issues
'programing' 카테고리의 다른 글
| 토큰은 짧은 기간의 토큰이어야 하며 합리적인 기간이어야 합니다. (0) | 2023.09.03 |
|---|---|
| C++에서 문자열 상수에서 'char*'(으)로 더 이상 사용되지 않는 변환입니다. (0) | 2023.09.03 |
| NaN(판다)에서 필터링하는 방법은 무엇입니까? (0) | 2023.09.03 |
| 도커 공식 레지스트리(도커 허브) URL (0) | 2023.09.03 |
| jQuery에서 CSS 규칙의 백분율 값 가져오기 (0) | 2023.09.03 |