5.1 系统登录.htm
来自「Windows2000后台服务程序开发手册」· HTM 代码 · 共 618 行 · 第 1/4 页
HTM
618 行
<LI
style="LINE-HEIGHT: 25px">由于被设计成一个层次化的样式,登录允许应用程序在它的结构配置下加上它所有拥有的组织。<BR
style="LINE-HEIGHT: 25px">
<LI
style="LINE-HEIGHT: 25px">登录支援多使用者,在实质上分为二个部份:其一为本地端机器设定(HKEY_LOCAL_MACHINE),其二为使用者设定(HKEY_USERS)。<BR
style="LINE-HEIGHT: 25px">
<LI style="LINE-HEIGHT: 25px">登录提供了许可权与稽查的安全能力,它能够被应用在特定的机码上。<BR
style="LINE-HEIGHT: 25px">
<LI
style="LINE-HEIGHT: 25px">登录允许多种资料型别,包括Binary、DWORD、String以及Multistring。<BR
style="LINE-HEIGHT: 25px"> </LI></UL></FONT>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>在开始了解登录的细节前,我们应该先讨论二个在Microsoft Windows
2000上可用来浏览与修改登录档的工具程序,RegEdit.exe与RegEdt32.exe。RegEdit.exe基本上与Microsoft
Windows 98上的登录工具程序相同,但是它缺少了Windows
2000登录中支援的安全性特色。RegEdt32.exe较少被使用,但是它拥有所有登录机码的安全性支援,也提供更多对登录内含值的操作能力。在很多情形下您可以使用这二个工具之一来浏览与修改登录档,但是在某些情况中,您会被限制使用RegEdt32.exe或是一些其他的工具。</FONT></P><A
style="LINE-HEIGHT: 25px" name=205001>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#3e70d7
size=5><B style="LINE-HEIGHT: 25px">系统登录结构<BR
style="LINE-HEIGHT: 25px"> </B></FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>登录是一个有限制性的、可被分享的系统资源。它产生了一些礼仪(或者协定)与规则,并由系统严格地强制执行。在继续之前,简单地说明一下登录的结构。</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>就像之前所提到的,系统登录被安排在一个由机码与值所组成的阶层式架构中。在机码中可以包含一个任意机码(或子机码)与值的数字。子机码等于居民,可以包含一个它们所拥有的任意子机码与值之数字。机码的名称在它们同层级间同组的资料中必须唯一,而且不能包含反斜线符号。图5-1中显示了登录的结构。</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>登录拥有一个逻辑的结构与一个实体的结构。程序设计师通常只关心逻辑结构的部份。在逻辑上,登录包含了一些与驱动A:
类似的一些根机码,并且把驱动C:
视为根目录。一个登录的根机码表示它为登录树上的最高节点。实际上,无论如何登录皆被保存在使用者硬盘上的多个文件中,称为hives。程序设计师只需思考登录中的一个机码路径即可。在内部地处理上,作业系统会决定哪一些hive可包含这个机码,而系统则负责存取适当的文件。</FONT></P>
<P><BR style="LINE-HEIGHT: 25px"> </P>
<CENTER style="LINE-HEIGHT: 25px">
<P><INPUT id=1 style="LINE-HEIGHT: 25px" type=image height=502
width=670 src="5.1 系统登录.files/5-1.gif" border=0
onclick="imgclick"></P></CENTER>
<CENTER style="LINE-HEIGHT: 25px">
<TABLE style="LINE-HEIGHT: 25px" border=0>
<TBODY style="LINE-HEIGHT: 25px">
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px" align=middle><FONT
style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2><FONT style="LINE-HEIGHT: 25px" face=arial
color=#3e80d7 size=2><B
style="LINE-HEIGHT: 25px"> 图5-1 </B></FONT>使用RegEdit.exe所显示的Windows
2000登录结构</FONT></TD></TR></TBODY></TABLE></CENTER>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>Windows
2000之登录提供了五个事先定义的根机码与一个事先定义的执行效能资料机码(HKEY_PERFORMANCE_DATA),显示于表格5-1中。HKEY_LOCAL_MACHINE与HKEY_USERS机码为那些已存在于登录之子机码的根机码。这个在HKEY_LOCAL_MACHINE与HKEY_USERS下之登录的逻辑分割透过提出两个截然不同的需求而提出登录的目的:特定机器之设定资讯的储存以及特定使用者设定资讯的储存。</FONT></P>
<CENTER style="LINE-HEIGHT: 25px">
<TABLE style="LINE-HEIGHT: 25px" border=0>
<TBODY style="LINE-HEIGHT: 25px">
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px" align=middle><FONT
style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2><FONT style="LINE-HEIGHT: 25px" face=arial
color=#3e80d7 size=2><B
style="LINE-HEIGHT: 25px"> 表格5-1 </B></FONT>Windows
2000事先定义的系统登录机码</FONT></TD></TR></TBODY></TABLE></CENTER>
<CENTER style="LINE-HEIGHT: 25px">
<TABLE style="LINE-HEIGHT: 25px" border=1>
<TBODY style="LINE-HEIGHT: 25px">
<TR style="LINE-HEIGHT: 25px">
<TH style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>事先定义的机码名称</FONT> </TH>
<TH style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>说明</FONT></TH></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_LOCAL_MACHINE</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>不管哪一个使用者登录,皆应用在本地端机器上的一组登录资料。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_USERS</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一组应用在特定使用者之登录资料。HKEY_USERS包含了预设使用者以及任何目前已载入之使用者设定档的
树状结构。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_CURRENT_USER</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个在HKEY_USERS下的子树之系统定义书签或别名,可以动态地指向与使用者关联之呼叫线程的登录资讯。有特别关于呼叫线程的规则,使用者可以模拟服务的使用。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_CLASSES_ROOT</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个系统为了HKEY_LOCAL_MACHINE\Software\Classes而定义的书签或别名。这个树状结构中存在着已注册的COM元件与在系统中关于Shell的相关设定
资讯。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_CURRENT_CONFIG</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个提交至HKEY_LOCAL_MACHINE\System\</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>CurrentControlSet\Hardware Profiles\</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>Current中的系统定义书签或别名。这个登录树状结构中存在着硬体设定资讯。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>HKEY_PERFORMANCE_ DATA</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>这个事先定义的机码参考到由系统提供的即时执行效能资料以及应用程序。在登录中,它不会被回复为实际的
值。更确切地说,登录函数提供了一个一致的方法以动
态地取回系统的执行效能资料。</FONT></TD></TR></TBODY></TABLE></CENTER>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>以下叁个事先定义的登录机码是在HKEY_LOCAL_MACHINE与HKEY_USERS机码下方落下之阶层区段的虚拟书签。例如,在HKEY_LOCAL_MACHINE
\Software\Classes下发现的子机码也可以被系统已定义的HKEY_CLASSES_ROOT机码存取。</FONT></P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>如同子机码名称一样,在一个单一子机码下未命名的值,除了预设值以外,所有的值必须拥有唯一的名称。所有的值,包含预设值皆为非必须的。那就是说,一个机码可以包含一个值、很多值或是根本没有值。</FONT></P>
<HR style="LINE-HEIGHT: 25px">
<P><FONT style="LINE-HEIGHT: 25px" face=Arial color=#3e77d7 size=3
Black><B style="LINE-HEIGHT: 25px">说明</B></FONT> </P>
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>诸如系统元件的文件名称、机码名称、子机码名称以及值的名称在Windows的国际版本中并没有特定地位。当然,任何被储存在值里面的资料通常都会使用当地的文字转换。</FONT></P>
<HR style="LINE-HEIGHT: 25px">
<P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2>每一个值皆有资料与它关联。一个值的资料被格式化为一个系统已定义的资料型别,在表格5-2中说明。本章后面将描述有关这些资料型别的一些使用与分派的内容。</FONT></P>
<CENTER style="LINE-HEIGHT: 25px">
<TABLE style="LINE-HEIGHT: 25px" border=0>
<TBODY style="LINE-HEIGHT: 25px">
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px" align=middle><FONT
style="LINE-HEIGHT: 25px" face=arial color=#000000
size=2><FONT style="LINE-HEIGHT: 25px" face=arial
color=#3e80d7 size=2><B
style="LINE-HEIGHT: 25px"> 表格5-2 </B></FONT>登录值之资料型别</FONT></TD></TR></TBODY></TABLE></CENTER>
<CENTER style="LINE-HEIGHT: 25px">
<TABLE style="LINE-HEIGHT: 25px" border=1>
<TBODY style="LINE-HEIGHT: 25px">
<TR style="LINE-HEIGHT: 25px">
<TH style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>登录值之资料型别</FONT> </TH>
<TH style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>说明</FONT></TH></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>REG_BINARY</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个位元组资料流。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>REG_DWORD</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个32位元的数字。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>REG_DWORD_LITTLE_ENDIAN</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>使用little-endian格式的一个32位元数字。所有的Windows系统皆使用little-endian格式来储存数字。</FONT></TD></TR>
<TR style="LINE-HEIGHT: 25px">
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>REG_DWORD_BIG_ENDIAN</FONT></TD>
<TD style="LINE-HEIGHT: 25px"><FONT style="LINE-HEIGHT: 25px"
size=2>一个使用big-endian格式之32位元数字。一些非Windows系统,例如一些执行UNIX与一个多样化的Motorola
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?