SVN 1.6 服务端和客户端安装配置

 

软件下载

服务器和客户端安装

1、软件下载

下载Subversion服务器程序。

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

【注意】如果之前已经安装了Tortoise SVN客户端,必须选择与之配套的SVN服务端版本,否则会出现各种问题,可以从Tortoise SVN的"About"菜单中看到与之对应的Subversion版本!

下载Subversion的Windows客户端TortoiseSVN及简体中文语言安装包【根据个人爱好而定】

http://tortoisesvn.net/downloads

2、服务器和客户端安装

服务器安装,直接运行安装程序,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

安装TortoiseSVN,同样直接运行安装程序,按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关。

重启完毕后安装简体中文语言包, 然后在随便一个目录右击, 就会发现多出了一些SVN相关菜单, 选择其中的TortoiseSVN, 再选择子菜单"Settings", 设置Language为"中文(简体)"。

3、建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

svnadmin create D:/svn/repository

就会在目录D:/svn/repository下创建一个版本库。

如果在命令行中不识别svnserver命令,可以查看系统环境变量path中有无subversion/bin的条目,没有就手动加上。

也可以使用TortoiseSVN图形化界面完成这一步:

在目录D:/svn/repository下"右键->TortoiseSVN->Create repository here",然后可以选择版本库模式,这里使用默认fsfs方式即可,然后就创建了一系列目录和文件。

4、配置用户和权限

     打开D:/svn/repository, 你会发现已经多了一些目录和文件, 打开conf子目录, 打开svnserve.conf文件, 这里行前凡是有#的都等于是被注释忽略了, 你可以把#去掉让那一行生效, 或者自己新添加行. 里面的英文注释已经详细说明了各种设置的含义, 最后你设置[general]小节中行前没有#号的内容为:

anon-access = none
auth-access = write
password-db = passwd

含义是:

未验证用户无任何权限 (如果把none修改为read就是给予读权限)
已验证用户给予写权限 (当然也能读)
密码数据存放到passwd文件中

【注意】anon-access = none这条必须显示写出来,否则会有一个默认权限,别人可能不用登陆就能看到你的项目!

     然后打开同目录的passwd文件来设置帐户:

同样, 设置[users]小节中行前没有#号的内容, 例如:

admin = zhang

含义是:

用户admin的密码为zhang

     该目录下还有一个authz的文件,用来针对不同的目录给用户分配不同的权限。

5、运行独立服务器

安装subversion的bin目录有svnservice.exe。

在dos控制台状态下直接输入svnservice -d -r D:/svn/repository,(最后一个参数是刚才设置的版本库的位置),此时console处于阻塞状态,让它一直开着就行,关闭它就意味着关闭了svnservice的服务了。

建议你到控制面板-管理工具-服务中找到SVNService, 右击选择"属性", 再将其启动类型设置为"自动",这样每次开机自动启动服务,不用手动启动了。如果没有这项服务的话,在命令行输入sc create svnserver binPath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r D:/svn/repository" DisplayName= "subversion" depend= Tcpip start= auto

【注意】“=”前没有空格,之后必须有一个空格!

6、初始化导入

打开"我的电脑", 在你需要进行版本控制的目录上右击, 选择TortoiseSVN, 再选择子菜单"Import...", 设置"文件库url"为svn://localhost 点确定后就会提示文件正在导入.

需要注意的是,这里是svn文件库与svn服务是同一台计算机的情况, 所以可用localhost, 其它机器如果要访问svn服务, 应该用svn://svn服务器的IP地址, 例如svn://192.168.1.125

7、基本客户端操作

没安装TortoiseSVN的计算机先安装它。

创建一个准备用来存放版本控制工程的目录, 例如d:/project, 然后在"我的电脑"中右击这个目录, 选择"SVN取出...", 设置"文件库url"为svn://svn服务器的IP地址, 接下来会问你用户名和帐号, 你就填写前面搭建服务器端所设置的用户admin密码zhang

点确定后就会提示文件正在取出到d:/project

至此, SVN客户端配置完成, 你会看到d:/project及其下面的文件都被标记了绿色对勾

简单日常使用:

要取得工程的当前的最新版本, 右击d:/project, 选择"SVN update"

你更改工程后, 要将你的修改更新到SVN, 右击d:/project, 选择"SVN commit" ,谨慎的话请先更新到SVN最新版本后再提交。

 

创建服务

 

sc create svnserver binPath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r D:/svn/energy" DisplayName= "energy_subversion" depend= Tcpip start= auto

sc create svnserver binPath= "服务全名--service -r 资源库位置" DisplayName= "服务名" depend= 协议 start= 自动

 

SC命令功能

SC命令的功能有
  1、SC可以 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。
  2、可以设置存储在注册表中的服务属性,以控制如何在启动时启动服务应用程序,以及如何将其作为后台程序运行。即更改服务的启动状态。
  3、SC 命令还可以用来删除系统中的无用的服务。(除非对自己电脑中的软硬件所需的服务比较清楚,否则不建议删除任何系统服务,尤其是基础服务)
  4、SC命令 的参数可以配置指定的服务,检索当前服务的状态,也可以停止和启动服务(功能上类似NET STOP/START命令,但SC速度更快且能停止更多的服务)。
  5、可以创建批处理文件来调用不同的 SC 命令,以自动启动或关闭服务序列。
  SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。

 

SC命令列表及格式

  SC命令不能单独使用,必须和其它的命令结合起来一起使用。一共有24个,如下所示
  sc boot sc config sc continue sc control sc create sc delete sc descrīption sc enumdepend
  sc failure sc getdisplayname sc getkeyname sc interrogate sc lock sc pause sc qc
  sc qdescrīption sc qfailure sc query sc queryex sc querylock sc sdset sc sdshow
  sc start sc stop
  在命令行中直接输入SC会显示SC命令的帮助信息,直接输入以上24个命令除sc query 和 sc queryex之外都将显示该SC命令的帮助信息。(输入sc query和sc queryex会显示当前系统中正在运行的所有服务的详细信息,但sc queryex比sc query显示的信息多出来两项:PID和FLAGS)
  SC命令的格式:SC [Servername] command Servicename [Optionname= Optionvalues]
  Servername:指定服务所在的远程服务器的名称。名称必须采用通用命名约定 (UNC) 格式(“//myserver”)。要在本地运行SC.exe,请忽略此参数。
  command :即以上提到的那24个命令(SC后面的那个,如query,start,stop,create,config等)
  Servicename:服务名,也就是要配置的那个服务的名字,例如你要启动一个服务你就输入sc start +你要启动的服务名。(注意这里的服务名不是服务的显示名称,而是服务名称,这个服务名称可以在系统管理工具下的服务中可以看到,例如在服务中双击DHCP Client可以看到其服务名称是Dhcp,而那个DHCP Client是显示名称,可以用sc命令来更改一个服务的显示名称)
  Optionname= Optionvalues:是选项名和选项的值。
  例如你要在开机是系统自动加载themes服务,你可以使用sc config themes start= auto,后面的start就是选项,auto是选项的值。(注意=号后面有个空格,所有的使用选项的在=号后面都要加个空格再加上选项值)

SC命令的用法

  下面给出每个命令详细的用法
  1、sc boot
  表明最近的启动是否应该保存为上次已知的正确配置。
  语法
  Sc [ServerName] boot [{bad | OK}]
  参数
  ServerName:上面已经介绍,在此不在累述(下同)
  [{bad | OK}] 
  指定最近的启动是否错误或它是否应该保存为上次已知的正确启动配置。
  下面的示例显示了如何使用 sc boot 命令:
  sc boot ok 
  sc boot bad
  2、sc config
  修改注册表和“服务控制管理器”数据库中服务项目的值。
  语法
  Sc [ServerName] config [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
  ServiceName
  指定要操作的服务名。(上面也已经介绍,下文不在累述)
  type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}} 
  指定服务类型。
  own
  服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认值。
  share
  服务作为共享进程运行。与其他服务共享可执行文件。
  kernel
  驱动程序。
  filesys
  文件系统驱动程序。
  rec
  文件系统识别驱动程序(标识计算机上使用的文件系统)。
  adapt
  适配器驱动程序(标识键盘、鼠标、磁盘驱动器这样的硬件项)。
  interact
  服务可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。该类型必须与 type= own 或 type= shared(例如,type= interact type= own)结合使用。自身使用 type= interact 将会产生参数无效的错误。
  start= {boot | system | auto | demand | disabled} 
  指定服务的启动类型。 
  boot
  由启动加载程序加载的设备驱动程序。
  system
  在核心初始化过程中启动的设备驱动程序。
  auto
  每次计算机重新启动时都会自动启动、并且即使无人登录到计算机也能正常运行的服务。
  demand
  必须手动启动的服务。如果没有指定 start=,则此项即为默认值。
  disabled
  不能启动的服务。要启动禁用的服务,应将启动类型更改为其他值。
  error= {normal | severe | critical | ignore} 
  如果在启动过程中,服务启动失败,则指定错误的严重性。
  normal
  将记录错误,并且显示消息对话框,通知用户服务启动失败。启动将继续。这是默认设置。
  severe
  记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。这可能导致计算机能够重新启动,但服务却仍然无法运行。
  critical
  记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。如果上次已知正确的配置失败,启动也将失败,启动进程将以停止错误而中止。
  ignore
  错误已记录,启动继续。记录错误超出在事件ri志的范围,不再给用户作出提示。 
  binpath= BinaryPathName
  指定指向服务二进制文件的路径。 
  group= LoadOrderGroup
  指定该服务所属组的名称。组列表存储在注册表的 HKLM/System/CurrentControlSet/Control/ServiceGroupOrder 子项中。默认设置为空值。
  tag= {yes | no} 
  指定是否在 CreateService 调用中获得 TagID。标记仅用于引导启动或系统启动驱动程序。
  depend= dependencies
  指定必须在此项服务之前启动的服务或组的名称。名称以正斜杠 (/) 分隔。
  obj= {AccountName | ObjectName} 
  指定运行服务将使用的帐户名,或指定运行驱动程序将使用的 Windows 驱动程序对象名。默认设置为 LocalSystem。
  displayname= DisplayName
  指定一个可以在用户界面程序中用于为用户标识服务的友好的、有意义的名称。例如,一项服务的子项名是对用户毫无意义的 wuauserv,而显示的名称是“自动更新”。
  password= Password
  指定一个密码。如果使用了非 LocalSystem 的帐户,则此项是必需的。
  备注
  如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
  示例
  下面的示例显示了如何使用 sc config 命令:
  sc config NewService binpath= "ntsd -d c:/windows/system32/NewServ.exe"
  3、sc continue
  为了恢复暂停的服务,要给服务发送一个 CONTINUE 控制请求。
  语法
  Sc [ServerName] continue [ServiceName]
  参数
  ServerName:略
  ServiceName:略
  备注
  使用 continue 操作来恢复暂停的服务。 
  下面的示例显示了如何使用 sc continue 命令:
  sc continue tapisrv
  4、sc control
  向服务发送 CONTROL 。
  语法
  sc [ServerName] control [ServiceName] [{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}]
  参数
  {paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB} 
  指定要发送到服务的控制。
  5、sc create
  在注册表和“服务控制管理器”中为服务创建子项和项目。
  语法
  Sc [ServerName] create [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
  参数:各个参数的作用参见sc config 命令
  下面的示例显示了如何使用 sc create 命令:
  sc //myserver create NewService binpath= c:/windows/system32/NewServ.exe
  sc create NewService binpath= c:/windows/system32/NewServ.exe type= share start= auto depend= "+TDI Netbios"
  6、sc delete
  从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么此服务将标记为删除。
  语法
  Sc [ServerName] delete [ServiceName]
  参数:略
  备注
  使用“添加或删除程序”删除 DHCP、DNS 或任何其他内置的操作系统服务。“添加或删除程序”不仅会删除该服务的注册表子项,而且还会卸载该服务并删除其所有的快捷方式。 
  下面的示例显示了如何使用 sc delete 命令:
  sc delete newserv
  7、sc descrīption
  设置服务的描述字符串。
  语法
  Sc [ServerName] descrīption [ServiceName] [Descrīption]
  参数:略
  描述
  为指定服务指定描述。这个描述的内容可以在控制面板-管理工具-服务里通过查看该服务的属性看到。如果没有指定字符串,则不会修改该服务的描述。不限制服务描述中可包含的字符数。
  示例
  下面的示例显示了如何使用 sc descrīption 命令:
  sc descrīption newserv "Runs quality of service control."
  8、sc enumdepend
  枚举依赖此服务的系统组件,这也可以从控制面板-管理工具-服务里通过查看该服务的属性中的依存关系选项卡看到(“下面的系统组件依赖此服务”下面的部分)
  语法
  Sc [ServerName] enumdepend [ServiceName] [BufferSize]
  参数
  BufferSize
  以字节为单位指定枚举缓冲区的大小。默认值为 1024 字节。
  备注
  如果缓冲区不够大,enumdepend 操作只会部分输出依存关系,并指定输出所有依存关系所需的额外缓冲区大小。如果输出被截断,请重新运行该操作并指定更大的缓冲区大小。
  下面的示例显示了如何使用 sc enumdepend 命令:
  sc enumdepend rpcss 5690
  sc enumdepend tapisrv
  9、sc failure
  指定服务失败时要采取的措施。
  语法
  Sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]
  参数
  reset= ErrorFreePeriod
  指定没有失败的周期长度(单位为秒),此后失败计数应该重置为 0。这个参数必须与 actions= 参数结合使用。
  reboot= BroadcastMessage
  指定服务失败时要广播的消息。
  command= CommandLine
  指定服务失败时要运行的命令行。有关在失败时如何运行批处理或 VBS 文件的详细信息,请参阅“注释”。
  actions= FailureActionsAndDelayTime
  指定失败操作及其延迟时间(单位为毫秒),以正斜杠 (/) 隔开。以下操作均有效:run、restart 和 reboot。此参数必须与 reset= 参数结合使用。失败后不采取任何操作时,请使用 actions= ""。
  备注
  并非所有服务都允许更改其失败选项。其中一些作为服务集的一部分运行。
  要在失败时运行批处理文件,请指定 cmd.exeDrive:/FileName.bat 为 command= 参数,其中 Drive:/FileName.bat 是批处理文件的完全合格的名称。
  要在失败时运行 VBS 文件,请指定 cscrīpt drive:/myscrīpt.vbs 为 command= 参数,其中 Drive:/myscrīpt.vbs 是脚本文件完全合格的名称。
  可以将三种不同的操作指定为 actions= 参数,它们将会在服务的第一次、第二次、第三次失败时使用。
  如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
  下面的示例显示了如何使用 sc failure 命令:
  sc failure msftpsvc reset= 30 actions= restart/5000
  sc failure dfs reset= 60 command= c:/windows/services/restart_dfs.exe actions= run/5000
  sc failure dfs reset= 60 actions= reboot/30000
  sc failure dfs reset= 60 reboot= "The Distributed File System service has failed.Because of this, the computer will reboot in 30 seconds." actions= reboot/30000
  sc failure myservice reset= 3600 reboot= "MyService crashed -- rebooting machine" command= "%windir%/MyServiceRecovery.exe" actions= restart/5000/run/10000/reboot/60000
  10、sc getdisplayname
  获得与特定服务关联的显示名称。
  语法
  Sc [ServerName] getdisplayname [ServiceName] [BufferSize]
  参数
  BufferSize
  指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
  下面的示例显示了如何使用 sc getdisplayname 命令:
  sc getdisplayname clipsrv
  sc getdisplayname tapisrv
  sc getdisplayname sharedaccess
  11、sc getkeyname
  使用特定服务的显示名称作为输入的内容会获得与其相关联的项名。
  语法
  sc [ServerName] getkeyname [ServiceDisplayName] [BufferSize]
  参数
  ServiceDisplayName
  指定服务的显示名称。
  BufferSize
  指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
  备注
  如果 ServiceDisplayName 包含空格,请使用引号将文本引起来(例如,"Service Display Name")。
  下面的示例显示了如何使用 sc getkeyname 命令:
  sc getkeyname "remote procedure call (rpc)"
  sc getkeyname "internet connection sharing"
  sc getkeyname clipbook
  12、sc interrogate
  向服务发送一个 INTERROGATE 控制请求。
  语法
  Sc [ServerName] interrogate [ServiceName]
  参数:略
  备注
  向服务发送 INTERROGATE 会导致该服务使用“服务控制管理器”更新其状态。
  下面的示例显示了如何使用 sc interrogate 命令:
  sc interrogate sharedaccess
  sc interrogate rpcss
  13、sc lock
  锁定“服务控制管理器”的数据库。
  语法
  sc [ServerName] lock
  参数:略
  备注
  锁定“服务控制管理器”的数据库会阻止启动任何服务。如果要确保服务在停止之后不会启动,请使用这个命令。这可以使您不受干扰地进行一些操作(例如,删除服务)。
  使用 lock 操作锁定“服务控制管理器”的数据库,然后通过键入 u 来使数据库解锁。也可停止锁定数据库的进程。
  下面的示例显示了如何使用 sc lock 命令:
  sc lock
  14、sc pause
  向服务发送 PAUSE 控制请求。
  语法
  Sc [ServerName] pause [ServiceName]
  参数:略
  备注
  在终止服务之前使用 pause 操作来暂停它。
  并非所有服务都能够被暂停。
  在暂停时并非所有服务都执行同样的操作。一些服务继续为现有客户端服务,但拒绝接受新的客户端。其他的会终止对现有客户端的服务,同时也会拒绝接受新的客户端。
  下面的示例显示了如何使用 sc pause 命令:
  sc pause tapisrv
  15、sc qc
  查询服务的配置信息。
  语法
  Sc [ServerName] qc [ServiceName] [BufferSize]
  参数
  BufferSize
  指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
  备注
  qc 操作可以显示有关服务的下列信息:
  SERVICE_NAME(服务的注册表子项名称)、TYPE、ERROR_CONTROL、BINARY_PATH_NAME、LOAD_ORDER_GROUP、TAG、DISPLAY_NAME、DEPENDENCIES 和 SERVICE_START_NAME。
  管理员可以使用 SC 来确定任一服务的二进制名称,并查明它是否与其他服务共享一个进程,在命令行下键入下列命令:
  sc qc ServiceName
  SC 有助于将 Microsoft 管理控制台 (MMC) 的服务节点中的服务与“系统监视器”中的进程进行匹配。如果二进制名称是 Services.exe,那么服务共享“服务控制器”进程。
  Services.exe 启动所有的服务。为节约系统资源,几个为 Windows 开发的 Win32 服务被编写为共享 Services.exe 进程。这些服务不作为独立的进程列在“系统监视器”或“任务管理器”之中。Svchost.exe 也是如此,它是许多操作服务共享的服务主机进程。
  因为第三方 Win32 服务也可以配置为共享进程,所以不可能为每一个 Win32 服务创建一个进程。SC 可以用来获得这些服务的配置信息。但是,如果一项服务不与其他服务共享其进程,那么在服务运行时,“系统监视器”中会出现其进程。
  因为 SC 与包含在 Windows 中的 Services.exe 相比,提供了有关服务的更为详细和准确的信息,所以对于服务开发人员来说,SC 更有用处。Services.exe 可以确定服务是正在运行、已停止还是已暂停。尽管这些工具对于正在平稳运行的已调试应用程序已经足够,但它们提供的有关正开发的服务的信息却会使人误解。例如,正在启动的服务不管其实际运行与否都显示为已启动。
  SC 可执行对所有 Windows 服务控制应用编程接口 (API) 函数的调用。通过在命令行下指定这些函数来设置其参数。
  使用 SC,可以查询服务状态,检索存储在状态结构字段中的值。Services.exe 不能提供服务的完整状态,但 SC 可以显示精确的服务状态,以及最新的检查点号码和等待提示。可以将检查点用作调试工具,原因在于它表明了在程序停止响应之前初始化进行的程度。SC 也可以用来指定远程计算机名,以便于在远程计算机上调用服务 API 函数或查看服务状态结构。
  下面的示例显示了如何使用 sc qc 命令:
  sc qc //myserver newsrvice
  sc qc rpcss 248
  16、sc qdescrīption
  显示服务的描述字符串。
  语法
  Sc [ServerName] qdescrīption [ServiceName] [BufferSize]
  参数
  BufferSize
  指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
  下面的示例显示了如何使用 sc qdescrīption 命令:
  sc qdescrīption rpcss
  sc qdescrīption rpcss 138
  17、sc qfailure
  显示指定服务失败时要执行的操作。
  语法
  Sc [ServerName] qfailure [ServiceName] [BufferSize]
  参数
  BufferSize
  指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
  备注
  qfailure 操作可以显示有关服务的下列信息:SERVICE_NAME(服务的注册表子项名)、RESET_PERIOD、REBOOT_MESSAGE、COMMAND_LINE 和 FAILURE_ACTIONS。
  下面的示例显示了如何使用 sc qfailure 命令:
  sc qfailure rpcss
  sc qfailure rpcss 20
  18、sc query
  获得和显示关于指定的服务、驱动程序、服务类型或驱动程序类型的信息。
  语法
  Sc [ServerName] query [ServiceName] [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state= {active | inactive | all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]
  参数
  ServiceName
  指定由 getkeyname 操作返回的服务名。此 query 参数不与其他的 query 参数结合使用(除了 ServerName)。
  type= {driver | service | all} 
  指定需要枚举的内容。默认类型为 service。
  driver
  指定仅枚举驱动程序。
  service
  指定仅枚举服务。
  all
  指定同时枚举驱动程序和服务。
  type= {own | share | interact | kernel | filesys | rec | adapt} 
  指定要枚举的服务类型或驱动程序类型。
  own
  服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认值。
  share
  服务作为共享进程运行。与其他服务共享可执行文件。
  interact
  服务可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。
  kernel
  驱动程序。
  filesys
  文件系统驱动程序。
  state= {active | inactive | all} 
  指定要枚举的服务的已开始状态。默认状态是 active。
  active
  指定所有的活动服务。
  inactive
  指定所有暂停或停止的服务。
  all
  指定所有服务。
  bufsize= BufferSize
  以字节为单位指定枚举缓冲区的大小。默认大小为 1024 字节。当从查询返回的显示结果超过 1024 个字节时,增加枚举缓冲区的大小。
  ri= ResumeIndex
  指定开始或继续枚举的索引号。默认值为 0。 在查询返回的信息超过默认缓冲区能够显示的大小时,请与 bufsize= 参数结合使用这个参数。
  group= GroupName
  指定要枚举的服务组。默认设置为所有组。
  备注
  如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
  query 操作可以显示有关服务的下列信息:SERVICE_NAME(服务的注册表子项名)、TYPE、STATE(以及不可用的状态)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT 和 WAIT_HINT。
  在某些情况下,type= 参数可以使用两次。type= 参数的第一次出现指定是否查询服务、驱动器或所有这些项。type= 参数的第二次出现指定一个由 create 操作进一步缩小查询范围的类型。
  当 query 命令的显示结果超过了枚举缓冲区的大小时,显示类似于以下内容的消息: 
  Enum: more data, need 1822 bytes start resume at index 79
  要显示剩余的 query 信息,请重新运行 query,将 bufsize= 设置为所需的字节数,并将 ri= 设置为指定的索引。例如,在命令行键入下面的指令会显示剩余的输出:
  sc query bufsize= 1822 ri= 79
  下面的示例显示了如何使用 sc query 命令:
  sc query
  sc query messenger
  sc query type= driver
  sc query type= service
  sc query state= all
  sc query bufsize= 50
  sc query ri= 14
  sc query type= service type= interact
  sc query type= driver group= ndis
  19、sc queryex
  获得和显示关于指定的服务、驱动程序、服务类型或驱动程序类型的扩展信息。
  语法
  Sc [ServerName] queryex [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state= {active | inactive | all}] [bufsize= BufferSize] [ri= ResumeIndex][group= GroupName]
  参数
  ServiceName
  指定由 getkeyname 操作返回的服务名。此 queryex 参数不与 ServerName 之外的任何其他 queryex 参数结合使用。
  type= {driver | service | all} 
  指定需要枚举的内容。默认类型为 service。
  driver
  指定仅枚举驱动程序。
  service
  指定仅枚举服务。
  all
  指定同时枚举驱动程序和服务。
  type= {own | share | interact | kernel | filesys | rec | adapt} 
  指定要枚举的服务类型或驱动程序类型。
  own
  服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认值。
  share
  服务作为共享进程运行。与其他服务共享可执行文件。
  interact
  服务可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。
  kernel
  驱动程序。
  filesys
  文件系统驱动程序。
  state= {active | inactive | all} 
  指定要枚举的服务的已开始状态。默认状态是 active。 
  active
  指定所有的活动服务。
  inactive
  指定所有暂停或停止的服务。
  all
  指定所有服务。
  bufsize= BufferSize
  以字节为单位指定枚举缓冲区的大小。默认大小为 1024 字节。
  ri= ResumeIndex
  指定开始或继续枚举的索引号。默认值为 0。
  group= GroupName
  指定要枚举的服务组。默认设置为所有组。
  备注
  如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
  queryex 操作可以显示有关服务的下列信息:SERVICE_NAME(服务的注册表子项名)、TYPE、STATE(以及不可用的状态)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT、WAIT_HINT、PID 和 FLAGS。
  在某些情况下,type= 参数可以使用两次。type= 参数的第一次出现指定是否查询服务、驱动器或所有这些项。type= 参数的第二次出现指定一个由 create 操作进一步缩小查询范围的类型。
  当 queryex 命令的显示结果超过了枚举缓冲区的大小时,显示类似于以下内容的消息: 
  Enum: more data, need 2130 bytes start resume at index 75
  要显示剩余的 queryex 信息,请重新运行 queryex,将 bufsize= 设置为所需的字节数,并将 ri= 设置为指定的索引。例如,在命令行键入下面的指令会显示剩余的输出:
  sc queryex bufsize= 2130 ri= 75
  下面的示例显示了如何使用 sc queryex 命令:
  sc queryex messenger
  sc queryex group= ""
  20、sc querylock
  查询和显示“服务控制管理器”数据库的锁定信息。
  语法
  Sc [ServerName] querylock
  参数:略
  21、sc sdset
  使用“服务描述符定义语言 (SDDL)”来设置服务的安全描述符。
  语法
  Sc [ServerName] sdset ServiceName ServiceSecurityDescrīptor
  参数
  ServiceSecurityDescrīptor
  在 SDDL 中指定服务描述符。
  备注
  有关 SDDL 的详细信息,请参阅 Microsoft 网站上的 Security Descrīptor Definition Language(安全描述符定义语言)。 
  22、sc sdshow
  使用 SDDL 显示服务的安全描述符。
  语法
  Sc [ServerName] sdshow ServiceName
  参数:略
  备注
  有关 SDDL 的详细信息,请参阅 Microsoft 网站上的 Security Descrīptor Definition Language(安全描述符定义语言)。 
  示例
  sc sdshow rpcss
  23、sc start
  启动正在运行的服务。
  语法
  Sc [ServerName] start ServiceName [ServiceArguments]
  参数
  ServiceArguments
  指定传递给要启动的服务的服务参数。
  下面的示例显示了如何使用 sc start 命令:
  sc start tapisrv
  24、sc stop
  向服务发送 STOP 控制请求。
  语法
  Sc [ServerName] stop ServiceName
  参数:略
  备注
  并非所有服务都能够被停止。
  下面的示例显示了如何使用 sc stop 命令:
  sc stop tapisrv

  

 

转载于:https://www.cnblogs.com/huangjihua/archive/2011/02/24/4125195.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。   什么是 TortoiseSVN?   TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。   某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。   TortoiseSVN 的历史   在2002年,Tim Kemp 发现 Subversion 是一个很好的版本控制系统,但是没有好的图形化客户端,创建一个作为 Windows 外壳集成的 Subversion 客户端的创意来自 TortoiseCVS,一个非常类似的 CVS 客户端。   Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,然后开始这个项目,注册了域名 tortoisesvn.org,并将源代码提交到网上。此时 Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 和 TortoiseSVN,由于 TortoiseSVN 还不能够使用,他加入了这个项目并开始编程。很快他便重写了大多数代码,并且开始添加命令和特性,此时,最初的代码都已经不复存在了。   随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们的 Subversion 客户端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了许多漂亮图标和 TortoiseSVN 的 logo,细心照料网站并且管理翻译。   TortoiseSVN 的特性   是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。   外壳集成   TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。   并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。   重载图标   每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。   Subversion 命令的简便访问   所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。   因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:   目录版本控制   CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。   原子提交   提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。   版本控制的元数据   每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。   可选的网络层   Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。   一致的数据处理   Subversion 使用二进制文件差异算法展
集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明:   开始新一天的工作:   1:从服务器下载项目组最新代码。   2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了那些代码,就需要这样做了)。   3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。   这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。   缺点:   1、 服务器压力太大,数据库容量暴增。   2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,   就不能提交,还原,对比等等。   3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。   优点:   1、 管理方便,逻辑明确,符合一般人思维习惯。   2、 易于管理,集中式服务器更能保证安全性。   3、 代码一致性非常高。   4、 适合开发人数不多的项目开发。   5、大部分软件配置管理的大学教材都是使用svn和vss。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值