경로에 대한 Powershell 액세스가 거부되었습니다.

경로에 대한 Powershell 액세스가 거부되었습니다.

나는 이것이 백만 번 요청되었다고 확신하지만 powershell에서 이 간단한 명령을 실행할 수 없는 이유를 알 수 없습니다.

PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file

나는 영원히 다음과 같은 오류가 발생합니다.

New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.

... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...

그래도,

나는 다음을 모두 시도했지만 아무 소용이 없었습니다.

  • 관리자 권한으로 powershell 실행(예: "관리자 권한으로 실행")
  • Set-ExecutionPolicy RemoteSigned
  • 폴더의 "takeown"
  • 폴더의 보안 설정을 "모든 사람 > 모든 권한"으로 설정합니다.
  • -힘

다음에는 도대체 어디로 답을 찾으러 가야 할까요? 저는 로컬 컴퓨터의 관리자입니다. 어리석은 텍스트 파일을 만드는 것처럼 간단한 일을 할 수 있는 권한이 없다는 것은 매우 실망스러운 일입니다...

머리카락 뽑는 중...

답변1

에서 반환된 DateTime 문자열 형식에는 Get-Date파일 이름에 사용할 수 없는 문자가 포함되어 있습니다. 다음과 같이 시도해 보세요.

new-item -path .\desktop\testfolder -name "$(get-date -format 'yyyyMMdd_HHmm').txt" `
        -value (get-date).toString() -itemtype file

필요에 맞게 형식 문자열을 변경하면 됩니다.

답변2

문제는 -name (get-date).txt와 같지 않다는 것입니다 (get-date) + ".txt". 전자는 반환된 System.DateTime개체에서 "txt"라는 속성을 읽으려고 시도하고 후자는 날짜의 문자열 표현에 ".txt" 문자열을 추가합니다. 전자의 경우 .txt가 $null존재하지 않기 때문에 속성으로 반환됩니다 . 이는 new-item -path .\desktop\folder폴더가 이미 존재하기 때문에 액세스 거부를 반환하는 효과적으로 실행을 시도하고 있음을 의미합니다 .

답변3

또한 읽기 전용 플래그로 인해 이 오류가 발생했습니다. 이 문제는 다음을 사용하여 해결할 수 있습니다.

Set-ItemProperty -Path c:\users\me\desktop\testfolder -Name IsReadOnly -Value $true

관련 정보