2009-06-26 4 views
2

드라이브를 검색하여 특정 사용자가 만든 모든 문서를 표시 할 수 있습니까? 나는 powershell이 ​​갈 길이라고 생각했다. 그러나 아마도 또 다른 접근이 가능할 것인가?사용자가 만든 문서를 powershell로 검색 하시겠습니까?

기본적으로 드라이브를 검색하고 모든 * .doc 또는 * .docx 파일을 찾고 단어 속성에 액세스하여 파일 (작성자)을 만든 사람을 확인하고자합니다.

답변

2

이 경우 COM 개체 Word.Application을 사용하여 Word 자체에서 모든 Word 문서를 열어야합니다. 그런 다음 Document 개체의 ContentTypeProperties 컬렉션을 사용하여 문서의 메타 데이터를 볼 수 있습니다. 저자 이름이 있으면 해당 컬렉션에 있습니다.

그러나 시간이 좀 걸릴 것이므로 파일 시스템 ACL을 누가 파일을 만들었는지 확인할 수 있습니다. 그러나 이는 문서를 만든 사람이 아니라 파일을 만든 사용자 만 알려줍니다.

또 다른 옵션은 Powershell에서 Windows 검색을 사용하는 것입니다. 분명히 OLE DB 공급자와 함께 사용할 수 있습니다. 그리고 Windows Search는 Word 문서에서 작성자 정보를 쿼리 할 수 ​​있다고 생각합니다.

+0

PowerShell (또는 바로 C#)에서 System.IO.FileInfo를 사용하여 폴더의 파일 속성을 볼 수 없었습니까? –

+1

그리고 그 책에서 무엇을 읽을 것입니까? 계속 진행하지만 제작자 등은 메타 데이터를 지원하는 모든 파일 형식에 대해 다르게 지정합니다. 그것들은 파일 시스템 메타 데이터가 아닙니다. 따라서 FileInfo (Powershell이 ​​Get-ChildItem과 함께 제공하는 기능)를 사용하면 여기에 도움이되지 않습니다. 실제로 문서 자체에 지정된 작성자 이름이 아니라 작성자의 사용자 이름을 사용하고 싶지 않은 경우 – Joey

+0

좋은 지적. http://www.microsoft.com/technet/scriptcenter/resources/qanda/aug08/hey0813.mspx 솔루션으로 보이지만 아직 작동하지 않습니다. –

2

blog post을보세요. PowerShelly 방식으로이 작업을 수행 할 수 있습니다. :-)

관련 문제