VisualSVN Server:如何通过脚本创建 svn 用户
VisualSVN Server: how to create svn user via script
我有 VisualSVN 服务器管理的 svn 存储库。用户通过登录名和密码进行身份验证(VisualSVN Server 标准版不支持 Active Directory 单点登录)。
我知道如何通过 VisualSVN Server GUI 创建 svn 用户,但我需要可以执行相同操作的脚本。我可以为此目的使用 powershell cmdlet 吗?如果没有,那么我应该更改什么 VisualSVN 服务器配置文件以添加新的 svn 用户?
要创建用户,您必须有权访问 VisualSVN Server MMC 管理单元。我不知道您是否可以在远程 PC 上安装它 - 文档没有确切说明。
获得该访问权限后,请参阅第 8 页of the manual
我只见过 VisualSVN 通过活动目录或 LDAP 对用户进行身份验证。但我不明白为什么你不能指向 VisualSVN 通过本地机器进行身份验证。在那种情况下,您实际上不会通过 VisualSVN 执行此操作,而是通过该机器的 OS 执行此操作。在 Linux 机器上,您将添加一个用户,然后将该用户添加到 svn 组。在 Windows 上,您可能只需要添加用户。
然后在 VisualSVN 命令 window 中,右键单击 "Repositories"(顶级工件)和 select "Properties",然后单击 "Add".确保 "Object Types" 已 "Users" selected,select 您的机器来自 "Locations",然后输入用户名。默认情况下,所有存储库都将继承此权限,使该人可以访问所有内容。
要进一步自动化,请在您的计算机上创建一个用户组,授予对该组的访问权限,然后只需添加一个用户,并在您的脚本中将该用户分配给该组。然后你只需要给组权限,你永远不需要触摸 VisualSVN。
感谢 VisualSVN_User class 来自
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
我有 VisualSVN 服务器管理的 svn 存储库。用户通过登录名和密码进行身份验证(VisualSVN Server 标准版不支持 Active Directory 单点登录)。
我知道如何通过 VisualSVN Server GUI 创建 svn 用户,但我需要可以执行相同操作的脚本。我可以为此目的使用 powershell cmdlet 吗?如果没有,那么我应该更改什么 VisualSVN 服务器配置文件以添加新的 svn 用户?
要创建用户,您必须有权访问 VisualSVN Server MMC 管理单元。我不知道您是否可以在远程 PC 上安装它 - 文档没有确切说明。
获得该访问权限后,请参阅第 8 页of the manual
我只见过 VisualSVN 通过活动目录或 LDAP 对用户进行身份验证。但我不明白为什么你不能指向 VisualSVN 通过本地机器进行身份验证。在那种情况下,您实际上不会通过 VisualSVN 执行此操作,而是通过该机器的 OS 执行此操作。在 Linux 机器上,您将添加一个用户,然后将该用户添加到 svn 组。在 Windows 上,您可能只需要添加用户。
然后在 VisualSVN 命令 window 中,右键单击 "Repositories"(顶级工件)和 select "Properties",然后单击 "Add".确保 "Object Types" 已 "Users" selected,select 您的机器来自 "Locations",然后输入用户名。默认情况下,所有存储库都将继承此权限,使该人可以访问所有内容。
要进一步自动化,请在您的计算机上创建一个用户组,授予对该组的访问权限,然后只需添加一个用户,并在您的脚本中将该用户分配给该组。然后你只需要给组权限,你永远不需要触摸 VisualSVN。
感谢 VisualSVN_User class 来自
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