IT

PowerShell을 사용하여 파일에서 읽기 전용 속성을 삭제하는 방법

itgroup 2023. 4. 18. 22:28
반응형

PowerShell을 사용하여 파일에서 읽기 전용 속성을 삭제하는 방법

PowerShell(버전 1.0) 스크립트를 사용하여 파일에서 ReadOnly 속성을 제거하려면 어떻게 해야 합니까?

사용할 수 있습니다.Set-ItemProperty:

Set-ItemProperty file.txt -name IsReadOnly -value $false

이하:

sp file.txt IsReadOnly $false
$file = Get-Item "C:\Temp\Test.txt"

if ($file.attributes -band [system.IO.FileAttributes]::ReadOnly)  
{  
  $file.attributes = $file.attributes -bxor [system.IO.FileAttributes]::ReadOnly    
}  

위의 코드 스니펫은 이 문서에서 발췌한 것입니다.

업데이트 코멘트에서 Keith Hill의 구현을 사용하여 다음과 같이 됩니다(이것을 테스트했습니다만, 효과가 있습니다).

$file = Get-Item "C:\Temp\Test.txt"

if ($file.IsReadOnly -eq $true)  
{  
  $file.IsReadOnly = $false   
}  

Native PowerShell이 아니더라도 간단한 Attribute 명령을 사용하여 다음을 수행할 수 있습니다.

attrib -R file.txt

또는 다음과 같은 간단한 방법을 사용할 수 있습니다.

get-childitem *.cs -Recurse -File | % { $_.IsReadOnly=$false }

위는 현재 폴더의 하위 트리에 있는 모든 .cs 파일에 적용됩니다.그 외의 타입이 필요한 경우는, 필요에 따라서 「*.cs」를 조정하기만 하면 됩니다.

PowerShell 커뮤니티 확장을 사용하는 경우:

PS> Set-Writable test.txt
PS> dir . -r *.cs | Set-Writable
# Using alias swr
PS> dir . -r *.cs | swr

이와 같이, 그 반대의 조작을 실행할 수 있습니다.

PS> dir . -r *.cs | Set-ReadOnly
# Using alias sro
PS> dir . -r *.cs | sro
Shell("net share sharefolder=c:\sharefolder/GRANT:Everyone,FULL")
Shell("net share sharefolder= c:\sharefolder/G:Everyone:F /SPEC B")
Shell("Icacls C:\sharefolder/grant Everyone:F /inheritance:e /T")
Shell("attrib -r +s C:\\sharefolder\*.* /s /d", AppWinStyle.Hide)

문제를 해결하는데 도움을 주신 분께 감사드립니다이 코드에 도움이 됩니다.

이 코드는 나에게 효과가 있다.읽기 및 쓰기 권한을 가진 모든 사용자와 폴더를 공유하려면 .net에서 이 기능을 사용할 수 있습니다.

위의 솔루션은 폴더와 파일의 읽기 전용 상태를 변경하지 않지만 이 PowerShell 스크립트는 다음과 같은 powershell 명령을 기반으로 합니다.

디렉토리 경유로 폴더의 READ ONLY 상태를 쿼리합니다.정보 오브젝트)

$roStatus = $dirInfo.Attributes -match 'ReadOnly'

디렉토리에서 폴더의 읽기 전용 상태를 변경합니다.정보 오브젝트)

$dirInfo.Attributes += 'ReadOnly'
$dirInfo.Attributes -= 'ReadOnly'

파일 이름 사용 시 파일의 읽기 전용 상태를 쿼리합니다.

$roStatus = Get-ItemPropertyValue -Path $strFileName -Name IsReadOnly

파일의 READ ONLY 상태를 변경합니다(파일 이름 사용).

Set-ItemProperty -Path $strFileName -Name IsReadOnly -Value $false

언급URL : https://stackoverflow.com/questions/893167/how-to-remove-readonly-attribute-on-file-using-powershell

반응형