VisualSVN Server:如何通过脚本创建svn用户

时间:2017-06-14 14:58:31

标签: powershell svn visualsvn-server

我有由VisualSVN Server管理的svn存储库。用户通过登录和密码进行身份验证(VisualSVN Server标准版不支持Active Directory单点登录)。

我知道如何通过VisualSVN Server GUI创建svn用户,但我需要可以执行相同操作的脚本。我可以将powershell cmdlet用于此目的吗?如果没有,那么我应该更改什么VisualSVN Server配置文件以添加新的svn用户?

3 个答案:

答案 0 :(得分:1)

我之前只看过VisualSVN通过活动目录或LDAP对用户进行身份验证。但我不明白为什么你不能指出VisualSVN通过本地机器进行身份验证。在这种情况下,你不会通过VisualSVN实际做到这一点,你可以通过该机器的操作系统来做到这一点。在Linux计算机上,您添加用户,然后将该用户添加到svn组。在Windows上,您可能只需要添加用户。

然后在VisualSVN命令窗口中,您右键单击"存储库" (顶级工件)并选择"属性",然后单击"添加"。确保"对象类型"有"用户"选择,从"位置"中选择您的机器,然后输入用户名。默认情况下,所有存储库都将继承此权限,使该人员可以访问所有内容。

要进一步自动化,请在计算机上创建用户组,授予对该组的访问权限,然后只需添加用户,并将用户分配给脚本中的组。然后,您只需要授予群组权限,而您永远不需要触摸VisualSVN。

答案 1 :(得分:0)

要创建用户,您必须有权访问VisualSVN Server MMC管理单元。我不知道你是否可以在远程PC上安装它 - 文档并没有完全说明。

获得该访问权限后,请参阅第8页of the manual

答案 2 :(得分:0)

感谢来自 VisualSVN_User 的课程 C:\ Program Files \ VisualSVN Server \ WMI \ VisualSVNServer.mof
我可以编写自己的cmdlet Add-SvnUser.ps1

[CmdletBinding()]
param(
  [Parameter(Mandatory=$True)]
  [string] $svnHost,

  [Parameter(Mandatory=$True)]
  [string] $user,

  [Parameter(Mandatory=$True)]
  [string] $password
)


$userObj = Get-CimInstance -ComputerName $svnHost `
   -Namespace root\VisualSVN -Class VisualSVN_User | ? {$_.Name -eq $user}

if($userObj -ne $null) {
   Invoke-CimMethod -InputObject $userObj `
      -MethodName "SetPassword" -Arguments @{Password=$password}
} 
else {
   Invoke-CimMethod `
      -ComputerName $svnHost -Namespace root\VisualSVN -Class VisualSVN_User `
      -MethodName Create -Arguments @{Name=$user; Password=$password}
}

使用示例 PS C:\> .\Add-SvnUser.ps1 -svnHost svn.com -user first -pass first