背景事件:
需要把旧的服务器仓库的文件,转移到新的服务器上,我直接 拷贝Repositories文件在新服务器上,虽然新的服务器和客户端,可以正常工作了。但是原先旧的服务器却不能正常工作。
我自己的电脑上,有服务器和客户端,客户端可以访问自己的服务器的文件。但是有一天,我把自己服务器的文件夹(即转移服务器仓库)复制到本局域网内的另一台电脑上,但是从那以后,我自己的电脑的客户端访问不了自己的服务器了
解决办法如下,已经解决。
bash
# 以管理员身份运行Windows PowerShell
# 1. 停止VisualSVN服务
Stop-Service "VisualSVN Server"
# 2. 取得Repositories目录所有权
takeown /F "D:\Repositories" /R /A
# 3. 完全重置所有权限
icacls "D:\Repositories" /reset /T /C
# 4. 为VisualSVN服务账户设置完全控制权限
# VisualSVN默认使用Network Service账户
$networkService = "NT AUTHORITY\Network Service"
icacls "D:\Repositories" /grant "${networkService}:(OI)(CI)F" /T
# 5. 为管理员设置权限
icacls "D:\Repositories" /grant "BUILTIN\Administrators:(OI)(CI)F" /T
# 6. 为系统账户设置权限
icacls "D:\Repositories" /grant "NT AUTHORITY\SYSTEM:(OI)(CI)F" /T
# 7. 为Telephone仓库特别设置(如果存在)
$telephonePath = "D:\Repositories\Telephone"
if (Test-Path $telephonePath) {
icacls $telephonePath /grant "${networkService}:(OI)(CI)F" /T
}
$telephonePath = "D:\Repositories\合开电气资料"
if (Test-Path $telephonePath) {
icacls $telephonePath /grant "${networkService}:(OI)(CI)F" /T
}
# 8. 重启服务
Start-Service "VisualSVN Server"
# 9. 验证服务状态
Get-Service "VisualSVN Server"