PowerShell로 파일 차단 해제?
저는 Win2K8 R2에서 PowerShell이 파일 차단을 해제하도록 노력하고 있습니다.
구문에 대한 포인터를 가지고 있는 사람이 있습니까?
PowerShell v3를 사용하는 경우 cmdlet을 사용할 수 있습니다.
"차단" 부분은 단순히 파일의 대체 데이터 스트림으로, "Zone"이라고 불립니다.식별자".입력 리디렉션을 사용하여 CMD에 표시할 수 있습니다(CMD에서 스트림으로 이동하는 다른 방법은 없음).
H:\Downloads> more < test.exe:Zone.Identifier
[ZoneTransfer]
ZoneId=3
당신은 그것들을 찾을 수 있습니다.dir /r
Windows Vista 이상의 경우:
2009-10-24 12:18 54.538.056 test.exe
24 test.exe:Zone.Identifier:$DATA
또한 CMD에서는 출력 리디렉션을 사용하여 다음과 같이 덮어쓰기를 통해 쉽게 제거할 수 있습니다.
echo.>myDownloadedFile.exe:Zone.Identifier
ADS를 완전히 제거하는 것과 완전히 같지는 않지만 탐색기는 더 이상 불평하지 않습니다.
PowerShell 내에서 ADS를 처리하는 기본 지원은 없는 것 같습니다(여기 PowerShell Guy 블로그에 언급됨).이 기사에는 PowerShell에서 이러한 기능을 활용하는 방법에 대한 정보도 나와 있습니다.하지만 단순히 cmd라고 부를 수 있습니다.
cmd /c "echo.>test.exe:Zone.Identifier"
그것은 PowerShell에서도 작동합니다.
또 다른 옵션은 마크 루시노비치의 유틸리티로 파일의 ADS를 검사하고 삭제할 수 있습니다. 그래서
streams -d myDownloadedFile.exe
효과도 있습니다.
PoshCode 모듈에는 Set-DownloadFlag 및 Remove-DownloadFlag 기능이 포함되어 있으며, 이 기능은 공지된 대로 작동합니다.:) 저는 방금 그 작품을 자체 스크립트 기고문 http://poshcode.org/1430 에 넣었습니다.Add-Type(http://poshcode.org/720 대신 New-Type 기능을 사용하면 PowerShell 1에서도 작동합니다.
모든 어린이(정확한 인용 포함)에 대한 구역 정보(수용된 답변에서 영감을 얻은)를 제거하는 하나의 라이너.
get-childitem -rec | % { cmd /c "echo.>""$($_.FullName)"":Zone.Identifier" }
질문에 엄격하게 답하는 것이 아니라 다음 번에 이 문제를 생각해 낼 때 이미 해결책이 있는지 확인하고 싶습니다 :).
PS. PS 2.0에서 작동
이와 같은 포럼에 게시하는 것은 처음이며 이것은 오래된 주제일 수 있지만 여기 당신이 찾고 있는 것이 있습니다.
get-item -Path "path to file(s)" -Stream "Zone.Identifier" -ErrorAction "SilentlyContinue"
차단된 파일만 나열합니다.
Unblock-File -Path "Path to blocked file(s)"
이렇게 하면 차단이 해제됩니다.
하위 폴더 재귀적(>= PowerShell v3) 폴더 차단을 해제하려면 Get-ChildItem(gci) 명령을 사용합니다.
Get-ChildItem "C:\Temp\" -recurse | Unblock-File
C:\Temp
시작 폴더입니다.
Streams를 사용하여 대체 파일 스트림을 제거합니다.이 게시물 보기: http://www.paraesthesia.com/archive/2010/05/19/unblocking-multiple-files-at-once.aspx
하여 Win32 를하였습니다를 하였습니다.Zone.Identifier
Windows에서 파일을 차단할지 여부를 결정하는 데 사용하는 NTFS 대체 데이터 스트림.
수 에 이 NET은 대체 데이터 스트림에 액세스할 수 없기 때문에 이 기능은 플랫폼 호출이라는 기술을 사용하여 네이티브 Win32 API를 호출합니다.하므로 파일 은 PowerShell부 System.IO.FileInfo
함수에 대한 개체입니다.또한 이 기능은 외부 의존성이 없으며 단순히 콘텐츠를 삭제하는 것이 아니라 실제로 대체 데이터 스트림을 삭제합니다.
http://andyarismendi.blogspot.com/2012/02/unblocking-files-with-powershell.html
적절한 파워셸 cmdlet을 사용하여 이 작업을 수행하는 것으로 보이는 답변을 아직 보지 못했습니다.
여기서 zone.identifier를 포함하는 현재 폴더에서 DLL을 찾을 수 있습니다.
Get-Item -Path .\*.dll -stream * | where {$_.Stream -eq "Zone.Identifier" }
여기서는 다른 스트림에 손상을 줄 수 있는 위의 일부 답변과는 달리 원하지 않는 스트림만 zap합니다.
Remove-Item -Path .\*.dll -stream Zone.Identifier
서버에 Powershell > v3($PSVersionTable)이 없는 경우.PS 버전.메이저-게 3).그렇다면 오래된 신뢰할 수 있는 DOS를 사용합니다.
for /f "tokens=*" %f in ('dir /b *.*') do echo.>"%f":Zone.Identifier
PowerShell 3.0 이상 버전을 사용하는 경우 파일 속성 창에 차단 해제 버튼이 없더라도 차단 해제 파일 PowerShell cmdlet을 사용하면 이 문제를 해결할 수 있습니다.
차단 해제-파일 cmdlet을 사용하면 인터넷에서 다운로드한 파일을 열 수 있습니다.인터넷에서 다운로드한 윈도우즈 PowerShell 스크립트 파일의 차단을 해제하여 윈도우즈 PowerShell 실행 정책이 RemoteSigned인 경우에도 실행할 수 있습니다.기본적으로 이러한 파일은 신뢰할 수 없는 파일로부터 컴퓨터를 보호하기 위해 차단됩니다.
powerShell 창을 열고 아래 구문을 따라가면 됩니다.구문에 대한 자세한 내용을 보려면 여기로 이동하십시오.
예:
unblock-file -path C:\Downloads\MyFileName.chm
경고: 보안되지 않은 파일의 차단을 해제하지 마십시오.
같습니다. @Mike 의에 것입니다. 공간이 있으면 작동하지 않습니다.$_.FullName
예: "C:이)\의 와 같이 을 수행해야 \Program Files")이므로 다음을 수행해야 합니다.
get-childitem -rec | % { cmd /c "echo.>""$($_.FullName)"":Zone.Identifier" }
다음과 같이 차단된 파일을 검색할 수 있습니다.
get-item * -stream zone*
그런 다음 파일 차단을 해제하려면 해당 파일을 제거하는 파이프링하거나 zone.identifier 스트림을 삭제하는 "rm" 파이프링합니다.
get-item * -stream zone* | Remove-Item
재귀적 검색을 원하는 경우:
get-childitem -recurse | get-item -stream zone*
이 말은?
set-executionpolicy remotesigned
이렇게 하면 로컬 스크립트가 서명되지 않은 상태에서 로컬 스크립트를 실행하고, 서명된 경우 원격 스크립트를 실행할 수 있습니다.자세한 정보는 여기에서 확인할 수 있습니다.
언급URL : https://stackoverflow.com/questions/1617509/unblock-a-file-with-powershell
'sourcecode' 카테고리의 다른 글
내 ng 모델이 꼭 점이 있어야 하위 $scope 문제를 피할 수 있습니까? (0) | 2023.10.21 |
---|---|
ASP를 사용하여 그리드를 페이징 및 정렬합니다.순 MVC (0) | 2023.10.21 |
간단한 리눅스 신호 처리 (0) | 2023.10.16 |
jQuery - 입력 요소가 텍스트 상자인지 선택 목록인지 확인합니다. (0) | 2023.10.16 |
Centos7에 LuaSQL 설치 (0) | 2023.10.16 |