譯 C 控制管理VisualSVN Server

2022-03-06 12:12:37 字數 2612 閱讀 6203

visualsvn server可以用wmi介面管理(windows management instrumentation)。 visualsvn server安裝的計算機中,位於%visualsvn_server%\wmi下的mof檔案描述了該介面。可以用c#**控制管理visualsvn server。

我機器visualsvn安裝在d盤,mof檔案存在位置:d:\program files\visualsvn server\wmi\visualsvnserver.mof

下面一些**供參考:

using system.management;

using system.management.instrumentation;

並新增 system.management,system.management.instrumentation這兩個元件的引用。

1)建立subversion 使用者 'user1',密碼為'secret'

managementclass userclass = newmanagementclass("root\\visualsvn","visualsvn_user",null);

// obtain in-parameters for the method

managementbaseobject inparams =

userclass.getmethodparameters("create");

// add the input parameters.

inparams["name"] = "user1";

inparams["password"] = "secret";

// execute the method and obtain the return values.

managementbaseobject outparams =

userclass.invokemethod("create", inparams, null);

2)建立新的repository 'repo1'

managementclass repoclass = newmanagementclass("root\\visualsvn","visualsvn_repository",null);

// obtain in-parameters for the method

managementbaseobject inparams =

repoclass.getmethodparameters("create");

// add the input parameters.

inparams["name"] = "repo1";

// execute the method and obtain the return values.

managementbaseobject outparams =

repoclass.invokemethod("create", inparams, null);

3)設定sid s-1-5-32-545 ('builtin\users') windows使用者組對'test' repository的讀/寫許可權. fyi: accesslevel 值在mof有描述: "0 - 無許可權, 1 - 唯讀, 2 - 讀/寫".

managementclass userclass = newmanagementclass("root\\visualsvn","visualsvn_windowsaccount",null);

managementclass authzclass = newmanagementclass("root\\visualsvn","visualsvn_securitydescriptor",null);

managementclass permclass = newmanagementclass("root\\visualsvn","visualsvn_permissionentry",null);

managementobject userobject = userclass.createinstance();

userobject.setpropertyvalue("sid","s-1-5-32-545");

managementobject permobject = permclass.createinstance();

permobject.setpropertyvalue("account", userobject);

permobject.setpropertyvalue("accesslevel", 2);

managementobject repo = newmanagementobject("visualsvn_repository.name='test'");

managementbaseobject inparams =

authzclass.getmethodparameters("setsecurity");

inparams["object"] = repo;

inparams["permissions"] = newobject ;

managementbaseobject outparams =

authzclass.invokemethod("setsecurity", inparams, null);

譯 C 控制管理VisualSVN Server

visualsvn server可以用wmi介面管理 windows management instrumentation visualsvn server安裝的計算機中,位於 visualsvn server wmi下的mof檔案描述了該介面。可以用c 控制管理visualsvn server。我...

譯 C 控制管理VisualSVN Server

visualsvn server可以用wmi介面管理 windows management instrumentation visualsvn server安裝的計算機中,位於 visualsvn server wmi下的mof檔案描述了該介面。可以用c 控制管理visualsvn server。我...

利用visualsvn 管理 linux svn庫

用過visualsvn的朋友一定知道,visualsvn的圖形管理做得比較好。主要visualsvn可以將svn庫的目錄結構讀出來這點是很爽的,後來將svn轉移到linux平台,發現許可權控制變成了一件很痛苦的事情。現在給大家介紹一下我的處理方法。在linux下安裝虛擬機器virtualbox 在v...