前段时间,有客户提出一个需求,写一个程序管理windows的用户、用户组、共享目录及权限,来解决现在手工维护代理的确定因素。
本来使用vb/vc等来开发,应该是比较简单的,呵呵,但是俺不会呀。想着呀,还是用java来实现吧。于是通过Runtime.getRuntime().exec(command);来实现调用windows的命令;
//添加用户
private static final String USER_ADD = "net user {username} {password} /add /COMMENT:\"{remark}\"";
private static final String USER_DEL = "net user {username} /delete";
//添加组
private static final String GROUP_ADD = "net localgroup {groupname} /add /COMMENT:\"{remark}\"";
private static final String GROUP_DEL = "net localgroup {groupname} /delete";
//添加用户到组
private static final String GROUP_ADD_USER = "net localgroup {groupname} {username} /add";
private static final String GROUP_DEL_USER = "net localgroup {groupname} {username} /delete";
//共享
private static final String SHARE_ADD = "net share {sharename}={path}";
//删除共享
private static final String SHARE_DEL = "net share {path} /delete";
// //授权某用户该目录的访问权限
// private static final String ACL_USER = "cacls {path} /t /e /c /g {username}:{acl}";
// //移除某用户访问
// private static final String ACL_REMOVE = "cacls {path} /t /e /c /r {username}";
// //拒绝某用户访问
// private static final String ACL_REFUSE = "cacls {path} /t /e /c /d {username}";
private static final String XACL_ADD = "xcacls {path} /t /e /g {username}:{acl} /y";
private static final String XACL_REMOVE = "xcacls {path} /t /e /r {username} /y";
private static final String XACL_REFUSE = "xcacls {path} /t /e /d {username} /y";
通过读取约定好的excel文件,进行相应的处理。
以上还是缺了部分,比如获取一个用户的归属组,一个组下的用户等类似信息。