2013-03-10 2 views
1

pywin32 라이브러리와 함께이 코드를 사용하여 폴더를 공유합니다. 이제 어떻게 pemissions를 폴더에 추가 할 수 있습니까? 다음 코드는 공유 폴더에 대한 사용 권한을 설정하지 않습니다. 나는/읽기와 같은 특정 사용자를 추가공유 윈도우 폴더에 대한 사용 권한을 파이썬으로 작성

import win32net 
import win32netcon 

shinfo={} 

shinfo['netname']='python test' 
shinfo['type']=win32netcon.STYPE_DISKTREE 
shinfo['remark']='data files' 
shinfo['permissions']=0 
shinfo['max_uses']=-1 
shinfo['current_uses']=0 
shinfo['path']='C:\\sharedfolder' 
shinfo['passwd']='' 
server='192.168.1.100' 

win32net.NetShareAdd(server,2,shinfo) 

답변

3
win32security 모듈 대안 밖으로 겁쟁이 사용이 다소 용이하다 cacls 프로그램을 사용하여, 예를 들면 http://support.microsoft.com/kb/162786/en-us에서 보는 것이다

:

from subprocess import * 

proc = Popen("echo y|cacls filename /E /G BUILTIN\\Users:R", shell=True) 

proc.wait() 

print "Child exited with",proc.returncode 

echo y은이 바보 같은 프로그램이 "정말입니까?"라고 묻기 때문입니다. 문제. Windows 7에서 cacls는 더 이상 사용되지 않지만 여전히 작동합니다. icacls (또는 리소스 키트의 xcalcs)을 사용하십시오.

물론 자식 프로세스를 생성하는 것은 Win32 API를 호출하는 것만 큼 효과적이지 않습니다.

3

당신이 시도하고 win32security 모듈을 사용한다 쓰고 싶어요. This 사이트는 사용자 권한

을 설정하는 데 사용하는 예를 도시
+0

icacls에 반대되는 win32security 모듈을 사용하면 어떤 이점이 있습니까? – TechDude

+1

@TechDude : 효율성 : 하위 프로세스 인 셸과 cacls를 호출하면 API 직접 사용보다 효율성이 떨어집니다. 정기적으로 많은 수의 파일 사용 권한을 변경하면 그 차이가 있음을 알 수 있습니다. – cdarke

관련 문제