2008年12月30日星期二

Excel单元格处理换行符的方法

在处理Excel文档的时候,需要插入换行符,在google上查到可以使用Alt+数字小键盘10实现,于是尝试了一下,果然见效。
反之,对于已经存在手工换行符的情况,也可以反过来用这个技巧。

2008年12月21日星期日

SQL Server2005数据库事务隔离级别实验记录(2)--Read Committed

Read Committed:SQL 默认级别,读取时设置共享锁,避免其他进程脏读。
实验:初始状态:Ntusername ='1' where rownumber =8

Part I:------------------------------------------------------------------
在默认隔离级别下,执行下面语句(52)进程
begin transaction
update t08102101
set Ntusername ='2'
where rownumber =8
select @@trancount

sp_lock看到的锁信息如下:
52 5 1582628681 1 KEY (08000c080f1b) X GRANT
52 5 1582628681 0 TAB IX GRANT
52 5 1582628681 1 PAG 1:333532 IX GRANT

然后执行下面的语句,(65)进程
set transaction isolation level read committed
select * from t08102101
where rownumber =8
无法完成查询,取不到任何数据,锁信息如下:
52 5 1582628681 1 KEY (08000c080f1b) X GRANT
52 5 1582628681 0 TAB IX GRANT
52 5 1582628681 1 PAG 1:333532 IX GRANT

65 5 1582628681 1 KEY (08000c080f1b) S WAIT
65 5 1582628681 0 TAB IS GRANT
65 5 1582628681 1 PAG 1:333532 IS GRANT

此时执行

select * from t08102101 (nolock)
where rownumber =8

可以得到 Ntusername ='2' where rownumber =8的结果,锁信息没有变化

而在52进程执行
select * from t08102101
where rownumber =8
结果是Ntusername ='2' where rownumber =8

Part II:------------------------------------------------------------------
回滚之前的更新操作,打开read_committed_snapshot开关:
alter database dbcenter
set read_committed_snapshot on

再次执行
begin transaction
update t08102101
set Ntusername ='2'
where rownumber =8
select @@trancount

锁信息如下

52 5 1582628681 1 KEY (08000c080f1b) X GRANT
52 5 1582628681 0 TAB IX GRANT
52 5 1582628681 1 PAG 1:333532 IX GRANT

执行下面的语句,(65)进程
set transaction isolation level read committed
select * from t08102101
where rownumber =8

可以得到Ntusername ='1' where rownumber =8的更新前结果

在另外进程执行(nolock)查询,得到Ntusername ='2' where rownumber =8

此时,sp_lock看到的只有52进程的排他锁信息。

而在52进程中执行
set transaction isolation level read committed
select * from t08102101
where rownumber =8
得到的是Ntusername ='2' where rownumber =8

结论:数据库默认的事务隔离级别是read committed,且该级别不允许读取未提交中的数据

--13:23 2008-12-21

SQL Server2005数据库事务隔离级别实验记录(1)--Read Uncommitted

Read Uncommitted:运行读取其他事务已修改未提交的的数据行:不放置共享锁就读取,即使已经防止排他锁。与nolock效果一致
实验:初始状态:Ntusername ='1' where rownumber =8

在第1进程执行:
begin transaction
update t08102101
set Ntusername ='2'
where rownumber =8
select @@trancount

在第2个进程执行
select * from t08102101
where rownumber =8
进程无法返回数据(第1个进程未提交)
改为下面的第3进程
set transaction isolation level read uncommitted
select * from t08102101
where rownumber =8
或第4进程:
select * from t08102101 (nolock)
where rownumber =8
得到Ntusername ='2',即更新后,但是未提交的数据
在第1个进程提交 commit tran 或 rollback tran后数据或提交或回滚,重新执行允许脏读的两个(3,4)进程,都会得到或提交或回滚后的结果

结论:脏读是从内存中读取,无论是否提交,它读到的都是最新状态,而不一定是结果状态。
注意:设置事务隔离级别是针对连接线程而言的,对第3线程而言,只要没有关闭查询窗口,
只要设置隔离级别的命令一提交,则对该查询窗口且只对该窗口内执行的语句有效。
--11:58 2008-12-21

2008年12月15日星期一

CentOS 设置双网卡绑定双IP的方法

CentOS 设置双网卡绑定双IP的方法

在目录/etc/sysconfig/network-scripts下面有ifcfg-eth0 和ifcfg-eth1
这两个文件对应的是两个网卡的配置
对于一个网卡设置双ip的方法:

将ifcfg-eth0文件拷贝一份到ifcfg-eth0:1,
#cp ifcfg-eth0 ifcfg-eth0:1

然后编辑ifcfg-eth0:1,将DEVICE和IPADDR对应修改

#vi ifcfg-eth0:1
DEVICE=eth0:1
#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=192.168.0.68
NETMASK=255.255.254.0
HWADDR=00:11:43:E1:13:4B
ONBOOT=yes
TYPE=Ethernet

重启后生效:
#/etc/init.d/network restart

相应的eth1也可以照章办理。。。。。。

2008年12月11日星期四

SQL Server 目录操作的扩展存储过程

需要sa权限
SQL2005默认禁止了xp_cmdshell的使用
下面有几个默认可以使用的扩展存储过程:
master.sys.xp_fixeddrives --显示磁盘剩余空间
master.sys.xp_dirtree --查看目录结构
master.sys.xp_create_subdir --创建目录

2008年12月10日星期三

[转载]VI技巧

VI技巧

如何用vi 复制第5行到第10行并粘贴到第12行之后?

方法1:
光标放到第五行,
输入:y6y
光标放到第12行,
输入:p

方法2:
命令行模式下输入
:5,10 co 12

方法3:
我一般都是
先移到第五行 d6
p
再移到12行
p

延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc

然后 :'a,'b co 'c

把 co 改成 m 就成剪切了



那删除呢

是不是5,10 de
刚才试了试,的确可以



也可以把大量的代码保存到一个文件,然后在另一个文件里打开需要拷贝的代码。

在文件一:
光标移到起始行,输入ma
光标移到结束行,输入mb
然后:'a, 'b w filename

在文件二:
光标移到需要赋值的行,输入:
:r filename


行拷贝还有一个比较简单的方法:
操作如下:
找到要复制的行,键盘按下shift+v, 然后用方向键上下或j h 移动想要copy的行,然后按下y

在移动到目的行,按下p即完成拷贝多行。这种方法适合没有行号的多行copy。


Vi 提供了文本移动和复制命令,用户利用这些指令可以方便的复制字符、文字、行还有文本块。
有关的命令如下:
yy 将当前行复制到缓冲区
yw 将当前单词复制到缓冲区
y1 将光标处的一个字符复制到缓冲区
p 将缓冲区的信息粘贴到光标的后面
:行号1 ,行号2 copy 行号3 将行号1到行号2的内容复制到行号3所在行的后面。
:行号1 ,行号2 move 行号3 将行号1到行号2的文本内容移动到行号3所在行的后面。



发表于: 2008-12-06,修改于: 2008-12-06 12:24 已浏览1244次,有评论1条 推荐 投诉

[转载]MySql数据引擎简介与选择方法

一、数据引擎简介
在MySQL5.1中,MySQL AB引入了新的插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中。
使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。采用MySQL服务器体系结构,由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。
MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:
· MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。
· MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。
注释:MEMORY存储引擎正式地被确定为HEAP引擎。
· InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所有MySQL 5.1二进制分发版里,你可以按照喜好通过配置MySQL来允许或禁止任一引擎。
· EXAMPLE存储引擎是一个“存根”引擎,它不做什么。你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。
· NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中,我们想要添加其它平台对这个引擎的支持,包括Windows。
· ARCHIVE存储引擎被用来无索引地,非常小地覆盖存储的大量数据。
· CSV存储引擎把数据以逗号分隔的格式存储在文本文件中。
· BLACKHOLE存储引擎接受但不存储数据,并且检索总是返回一个空集。
· FEDERATED存储引擎把数据存在远程数据库中。在MySQL 5.1中,它只和MySQL一起工作,使用MySQL C Client API。在未来的分发版中,我们想要让它使用其它驱动器或客户端连接方法连接到另外的数据源。
插件式存储引擎体系结构提供了标准的管理和支持服务集合,它们对所有的基本存储引擎来说是共同的。存储引擎本身是数据库服务器的组件,负责对在物理服务器层面上维护的基本数据进行实际操作。
这是一种高效的模块化体系结构,它为那些希望专注于特定应用需求的人员提供了巨大的便利和益处,这类特殊应用需求包括数据仓储、事务处理、高可用性情形等,同时还能利用独立于任何存储引擎的一组接口和服务。
应用程序编程人员和DBA通过位于存储引擎之上的连接器API和服务层来处理MySQL数据库。如果应用程序的变化需要改变底层存储引擎,或需要增加1个或多个额外的存储引擎以支持新的需求,不需要进行大的编码或进程更改就能实现这类要求。MySQL服务器体系结构提供了一致和易于使用的API,这类API适用于多种存储引擎,通过该方式,该结构将应用程序与存储引擎的底层复杂性隔离开来。
在下图中,以图形方式介绍了MySQL插件式存储引擎体系结构:


二、选择存储引擎
与MySQL一起提供的各种存储引擎在设计时考虑了不同的使用情况。为了更有效地使用插件式存储体系结构,最好了解各种存储引擎的优点和缺点。
在下面的表格中,概要介绍了与MySQL一起提供的存储引擎:


下述存储引擎是最常用的:
· MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE
配置变量,能够方便地更改MySQL服务器的默认存储引擎。
· InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。
· BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。
· Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。
· Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。
· Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。
· Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。
· Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。
· Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。
请记住,对于整个服务器或方案,你并不一定要使用相同的存储引擎,你可以为方案中的每个表使用不同的存储引擎,这点很重要。

三、将存储引擎指定给表
可以在创建新表时指定存储引擎,或通过使用ALTER TABLE语句指定存储引擎。
要想在创建表时指定存储引擎,可使用ENGINE参数:
CREATE TABLE engineTest(
id INT
) ENGINE = MyISAM;

也可以使用TYPE选项到CREATE TABLE语句来告诉MySQL你要创建什么类型的表。

CREATE TABLE engineTest(
id INT
) TYPE = MyISAM;

虽然TYPE仍然在MySQL 5.1中被支持,现在ENGINE是首选的术语。

如果你省略掉ENGINE或TYPE选项,默认的存储引擎被使用。一般的默认是MyISAM,但你可以用--default-storage-engine或--default-table-type服务器启动选项来改变它,或者通过设置storage_engine或table_type系统变量来改变。
要想更改已有表的存储引擎,可使用ALTER TABLE语句:
ALTER TABLEengineTestENGINE =ARCHIVE;
ALTER TABLE t ENGINE = MYISAM;
ALTER TABLE t TYPE = BDB;

如果你试着使用一个未被编译进MySQL的存储引擎,或者试着用一个被编译进MySQL但没有被激活的存储引擎,MySQL取而代之地创建一个MyISAM类型的表。当你在支持不同存储引擎的MySQL服务器之间拷贝表的时候,上述的行为是很方便的。(例如,在一个复制建立中,可能你的主服务器为增加安全而支持事务存储引擎,但从服务器为更快的速度而仅使用非事务存储引擎。)

在不可用的类型被指定时,自动用MyISAM表来替代,这会对MySQL的新用户造成混淆。无论何时一个表被自动改变之时,产生一个警告。

MySQL总是创建一个.frm文件来保持表和列的定义。表的索引和数据可能被存储在一个或多个文件里,这取决于表的类型。服务器在存储引擎级别之上创建.frm文件。单独的存储引擎创建任何需要用来管理表的额外文件。

一个数据库可以包含不同类型的表。

四、存储引擎和事务

下述存储引擎支持事务:
· InnoDB:通过MVCC支持事务,允许COMMIT、ROLLBACK和保存点。
· NDB:通过MVCC支持事务,允许COMMIT和ROLLBACK。
· BDB:支持事务,允许COMMIT和ROLLBACK。
事务安全表(TST) 比起非事务安全表 (NTST)有几大优势:
· 更安全。即使MySQL崩溃或遇到硬件问题,要么自动恢复,要么从备份加事务日志恢复,你可以取回数据。
· 你可以合并许多语句,并用COMMIT语句同时接受它们全部(如果autocommit被禁止掉)。
· 你可以执行ROLLBACK来忽略你的改变(如果autocommit被禁止掉)。
· 如果更新失败,你的所有改变都变回原来。(用非事务安全表,所有发生的改变都是永久的)。
· 事务安全存储引擎可以给那些当前用读得到许多更新的表提供更好的部署。
非事务安全表自身有几个优点,因为没有事务开支,所有优点都能出现:
· 更快
· 需要更少的磁盘空间
· 执行更新需要更少的内存
你可以在同一个语句中合并事务安全和非事务安全表来获得两者最好的情况。尽管如此,在autocommit被禁止掉的事务里,变换到非事务安全表依旧即时提交,并且不会被回滚。
虽然MySQL支持数个事务安全存储引擎,为获得最好结果,你不应该在一个事务那混合不同表类型。如果你混合表类型会发生问题,

五、插入搜索引擎
能够使用存储引擎之前,必须使用INSTALL PLUGIN语句将存储引擎plugin(插件)装载到mysql。例如,要想加载example引擎,首先应加载ha_example.so模块:
INSTALL PLUGINha_exampleSONAME 'ha_example.so';
文件.so必须位于MySQL服务器库目录下(典型情况下是installdir/lib)。

六、拔出存储引擎
要想拔出存储引擎,可使用UNINSTALL PLUGIN语句:
UNINSTALL PLUGINha_example;
如果拔出了正被已有表使用的存储引擎,这些表将成为不可访问的。拔出存储引擎之前,请确保没有任何表使用该存储引擎。
为了安装插件式存储引擎,plugin文件必须位于恰当的MySQL库目录下,而且发出INSTALL PLUGIN语句的用户必须具有SUPER权限。
参考资料:MySQL 5.1参考手册

[转载]mysql 中show 命令用法详细介绍

以下所有命令都是在进入mysql监控器中执行的:
a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称
b. show databases; // 显示mysql中所有数据库的名称
c. show columns from table_name from database_name; 或show columns from database_name.table_name; // 显示表中列名称
d. show grants for user_name; // 显示一个用户的权限,显示结果类似于grant 命令
e. show index from table_name; // 显示表的索引
f. show status; // 显示一些系统特定资源的信息,例如,正在运行的线程数量
g. show variables; // 显示系统变量的名称和值

h. show processlist; // 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
i. show table status; // 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间
j. show privileges; // 显示服务器所支持的不同权限
k. show create database database_name; // 显示create database 语句是否能够创建指定的数据库
l. show create table table_name; // 显示create database 语句是否能够创建指定的数据库
m. show engies; // 显示安装以后可用的存储引擎和默认引擎。
n. show innodb status; // 显示innoDB存储引擎的状态
o. show logs; // 显示BDB存储引擎的日志
p. show warnings; // 显示最后一个执行的语句所产生的错误、警告和通知
q. show errors; // 只显示最后一个执行语句所产生的错误

[转载]mysqldump命令使用详解

MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据。有许多的原因我们需要导出数据。一个重要的原因是用于备份数据库。数据的造价常常是昂贵的,需要谨慎处理它们。
MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据。有许多的原因我们需要导出数据。一个重要的原因是用于备份数据库。数据的造价常常是昂贵的,需要谨慎处理它们。经常地备份可以帮助防止宝贵数据地丢失;另外一个原因是,也许您希望导出数据来共享。 在这个信息技术不断成长的世界中,共享数据变得越来越常见。
比方说Macmillan USA维护护着一个将要出版的书籍的大型数据库。这个数据库在许多书店之间共享,这样他们就知道哪些书将会很快出版。医院越来越走向采用无纸病历记录,这样这些病历可以随时跟着你。世界变得越来越小,信息也被共享得越来越多。有很多中导出数据得方法,它们都跟导入数据很相似。因为,毕竟,这些都只是一种透视得方式。从数据库导出的数据就是从另一端导入的数据。这里我们并不讨论其他的数据库各种各样的导出数据的方法,您将学会如何用MySQL来实现数据导出。
  
  使用mysqldump:
  
  (mysqldump命令位于mysql/bin/目录中)

  mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。
  
  因此,如果您像装载整个数据库Meet_A_Geek的内容到一个文件中,可以使用下面的命令:

  bin/mysqldump –p Meet_A_Geek > MeetAGeek_Dump_File.txt
  
  这个语句也允许您指定一个表进行dump(备份/导出/装载?)。如果您只是希望把数据库Meet_A_Geek中的表Orders中的整个内容导出到一个文件,可以使用下面的命令:

  bin/mysqldump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt
  
  这个非常的灵活,您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:

  bin/mysqldump –p –where="Order_ID > 2000" Meet_A_Geek Orders > Special_Dump.txt
  
  mysqldump工具有大量的选项,部分选项如下表:

  选项/Option 作用/Action Performed

  --add-drop-table

  这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除

  --add-locks

  这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作
  
  -c or - complete_insert

  这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。

  --delayed-insert 在INSERT命令中加入DELAY选项

  -F or -flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.

  -f or -force 使用这个选项,即使有错误发生,仍然继续导出

  --full 这个选项把附加信息也加到CREATE TABLE的语句中

  -l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。

  -t or -no-create- info

  这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。
  
  -d or -no-data 这个选项使的mysqldump命令不创建INSERT语句。


在您只需要DDL语句时,可以使用这个选项。

  --opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。

  -q or -quick 这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。

  -T path or -tab = path 这个选项将会创建两个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为table_name.sql,数据文件被命名为table_name.txt.路径名是存放这两个文件的目录。目录必须已经存在,并且命令的使用者有对文件的特权。
  
  -w "WHERE Clause" or -where = "Where clause "

  如前面所讲的,您可以使用这一选项来过筛选将要放到 导出文件的数据。
  
  假定您需要为一个表单中要用到的帐号建立一个文件,经理要看今年(2004年)所有的订单(Orders),它们并不对DDL感兴趣,并且需要文件有逗号分隔,因为这样就很容易导入到Excel中。 为了完成这个人物,您可以使用下面的句子:

  bin/mysqldump –p –where "Order_Date >='2000-01-01'"
  –tab = /home/mark –no-create-info –fields-terminated-by=, Meet_A_Geek Orders

  这将会得到您想要的结果。
  
  schema:模式

  The set of statements, expressed in data definition language, that completely describe the structure of a data base.

  一组以数据定义语言来表达的语句集,该语句集完整地描述了数据库的结构。
  
  SELECT INTO OUTFILE :

  如果您觉得mysqldump工具不够酷,就使用SELECT INTO OUTFILE吧, MySQL同样提供一个跟LOAD DATA INFILE命令有相反作用的命令,这就是SELECT INTO OUTFILE 命令,这两个命令有很多的相似之处。首先,它们有所有的选项几乎相同。现在您需要完成前面用mysqldump完成的功能,可以依照下面的步骤进行操作:
  
  1. 确保mysqld进程(服务)已经在运行

  2. cd /usr/local/mysql

  3. bin/mysqladmin ping ;// 如果这个句子通不过,可以用这个:mysqladmin -u root -p ping

  mysqladmin ping用于检测mysqld的状态,is alive说明正在运行,出错则可能需要用户名和密码。

  4. 启动MySQL 监听程序.

  5. bin/mysql –p Meet_A_Geek;// 进入mysql命令行,并且打开数据库Meet_A_Geek,需要输入密码

  6. 在命令行中,输入一下命令:

  SELECT * INTO OUTFILE '/home/mark/Orders.txt'
  FIELDS
  TERMINATED BY = ','
  FROM Orders
  WHERE Order_Date >= '2000-01-01'
  
  在你按了Return(回车)之后,文件就创建了。这个句子就像一个规则的SELECT语句,只是把想屏幕的输出重定向到了文件中。这意味这您可以使用JOIN来实现多表的高级查询。这个特点也可以被用作一个报表产生器。
  
  比方说,您可以组合这一章中讨论的方法来产生一个非常有趣的查询,试试这个:
  
  在mysql目录建立一个名为Report_G.rpt 的文本文件,加入下面的行:

  USE Meet_A_Geek;
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Vicky");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Kinnard", "Steven");
  INSERT INTO Customers (Customer_ID, Last_Name, First_Name)
  VALUES (NULL, "Brown", "Sam");
  SELECT Last_Name INTO OUTFILE '/home/mark/Report.rpt'
  FROM Customers WHERE Customer_ID > 1;

  然后确认 mysql进程在运行,并且您在mysql目录中, 输入下面的命令:

  bin/mysql < Report_G.rpt检查您命名作为输出的文件,这个文件将会包含所有您在Customers表中输入的顾客的姓。 如您所见,您可以使用今天学到的导入/导出(import/export)的方法来帮助得到报表。

[转载]黄金、美金、黑金的关系及黄金储备对金价的影响

黄金、美金、黑金的关系及黄金储备对金价的影响
北京大军经济观察研究中心特约研究员 田书华
2006年3月2日
E-mail:tianshuhua@chinastock.com.cn

一、黄金、美金、黑金(石油)的关系
黄金、黑金(黑金即石油)与美金(美金即美元)这“三金”在世界经济的发展过程中也一直是人们关注的焦点,而这“三金”之间又有内在的联系。了解这“三金”之间关系有助于我们对国际政治经济形势的分析、判断和把握。
1、黄金与美金的异向变动关系
长期以来,由于黄金的价格以美元计价,受到美元的直接影响,因此,黄金与美元呈现很大的负相关性。
首先,美元的升值或贬值将直接影响到国际黄金供求关系的变化,从而导致黄金价格的变化。从黄金的需求方面来看,由于黄金是用美元计价,当美元贬值,使用其他货币例如欧元的投资者就会发现他们使用欧元购买黄金时,等量资金可以买到更多的黄金,从而刺激需求,导致黄金的需求量增加,进而推动金价走高。相反的,如果美元升值,对于使用其它货币的投资者来说,金价变贵了,这样就抑制了他们的消费,需求减少导致金价下跌。从黄金生产来看,多数黄金矿山都在美国以外,美元的升值或贬值对于黄金生产商的利益产生了一定影响。因为金矿的生产成本以本国货币计算,而金价以美元计算,所以当美元贬值时,相当于美国以外的生产商的生产成本提高了,而出口换回的本国货币减少使利润减少,打击了生产商的积极性,例如南非的金矿在2003年就是由于本币对美元升值(相当于美元贬值)幅度大于黄金价格的上涨幅度,导致黄金矿山非但没有盈利反而陷入亏损的艰难局面,这样最终导致黄金产量下降,供给减少必然抬升金价。
其次,美元的升值或贬值代表着人们对美元的信心。美元升值,说明人们对美元的信心增强,从而增加对美元的持有,相对而言减少对黄金的持有,从而导致黄金价格下跌,反之,美元贬值则导致美元价格上升。例如:20世纪80-90年代以来,美国经济迅猛发展,大量海外资金流入美国,这段时期由于其它市场的投资回报率远远大于投资黄金,投资者大规模地撤出黄金市场导致黄金价格经历了连续20年的下挫。而进入2001年后,全球经济陷入衰退,美国连续11次调低联邦基金利率导致美元兑其他主要国家货币汇率迅速下跌,投资者为了规避通货膨胀和货币贬值,开始重新回到黄金市场,使黄金的走势出现了关键性的转折点。2002年以来,美国经济虽然逐步走出衰退的阴霾,但受到伊拉克战争等负面影响仍使得经济复苏面临诸多挑战。2003年海外投资者开始密切关注美国的双赤字问题,尽管美联储试图采用货币贬值的方法来削减贸易赤字,但这种方法似乎并不奏效,美元对海外投资者的吸引力越来越小,大量资金外流到欧洲和其它市场,黄金投资的规模也出现创纪录的高点。
值得注意的是,我们所说的美元与黄金的负相关性质的是从长期的趋势来看的,从短期情况来看,也不排除例外情况。如2005年便出现了美元与黄金同步上涨的局面,之所以会出现这种情况,
最主要的原因是欧州出现的政治和经济动荡:一体化进程由于法国公投的失败而面临崩溃的危机,欧洲经济一直徘徊不前,英国经济发展出现停滞和倒退,原本应该通过降息来刺激经济的欧央行受到美元升息拉大美元与欧元的利率差的羁绊而左右为难,只能勉强维持现行利息水平,英国央行为了刺激经济而调低利率,欧元和英镑因此而受到市场抛售,投资者短期内只能重新回到美元和黄金市场寻求避险推动了美元和黄金的同步走高。
2、黄金与黑金的同向变动关系
自西方工业革命后,黑金(石油)一直充当现代工业社会运行血液的重要战略物资,它在国际政治、经济、金融领域占有举足轻重的作用,“石油美元”的出现足以说明石油在当今世界经济中的重要性。
黄金与石油之间存在着正相关的关系,也就是说黄金价格和石油价格是通向变动的。石油价格的上升预示着黄金价格也要上升,石油价格下跌预示着黄金价格也要下跌。
首先,油价波动将直接影响世界经济尤其是美国经济的发展,因为美国经济总量和原油消费量均列世界第一,美国经济走势直接影响美国资产质量的变化从而引起美元升跌,从而引起黄金价格的涨跌。据国际货币基金组织估算,油价每上涨5美元,将削减全球经济增长率约0.3个百分点,美国经济增长率则可能下降约0.4个百分点。当油价连续飙升时,国际货币基金组织也随即调低未来经济增长的预期。油价已经成为全球经济的“晴雨表”,高油价也意味着经济增长不确定性增加以及通胀预期逐步升温,继而推升黄金价格。
在黄金、黑金、美金这三者的关系里,黄金价格主要是用美金来计价,石油也同样是。上世纪70年代初,二战后搭建的世界货币体系——布雷顿森林体系崩溃之后,黄金价格与石油价格双双脱离了与美金的固定兑换比例,出现了价格大幅飙升的走势。
特别是上世纪七八十年代,石油危机爆发后,“三金”之间的关系变得更加微妙,既有紧密联系又相互有所制衡,在彼此波动之中隐藏着相对的稳定,在表面稳定之中又存在着绝对的变动。从中长期来看,黄金与原油波动趋势是基本一致的,只是大小幅度有所区别。如下图1与2所示,可以看出石油与黄金的价格走势基本一致。
图1:1971年1月-2006年1月世界石油价格走势


图2:1971年1月-2006年1月世界黄金价格走势


在过去三十多年里,黄金与石油按美金计价的价格波动相对平稳,黄金平均价格约为300美元/盎司,石油的平均价格为20美元/桶左右。黄金与黑金的兑换关系平均为1盎司黄金兑换约16桶石油。
在上个世纪70年代初期,1盎司黄金兑换约10桶原油,在布雷顿森林体系解体后,黄金与石油曾达到在了1盎司黄金兑换30桶以上的石油,随后,在整个70年代中期到80年代中期,尽管中间黄金与石油的价格都出现过大幅的上涨,但二者关系仍保持在10-20倍之间。80年代中期以后,石油价格骤跌,一度又达到1盎司黄金兑换约30桶原油的水平。按2005年的石油平均价格56美元/桶和国际黄金价格均价445美元/盎司计算,这个比例大平均约维持在1盎司黄金兑换约8桶石油的水平。就2006年1月的数据来说,这一数字稍有提高。从目前石油与黄金的兑换比例来看,黄金价格依然有上升空间。
图3:1971年1月-2006年1月黄金与石油的兑换关系(单位:桶原油/盎司黄金)

注:以上图表均根据世界黄金协会和Financial Forecast Center.
3、美金与黑金的异向变动关系
美国经济长期依赖石油和美元两大支柱,其依赖美元的铸币权和美元在国际结算市场上的垄断地位,掌握了美元定价权;又通过超强的军事力量,将全球近70%的石油资源及主要石油运输通道,置于其直接影响和控制之下,从而控制了全球石油供应,掌握了石油的价格。长期来说,当美元贬值时,石油价格上涨;而美元趋硬时,石油价格呈下降趋势。尽管近期美国经济一改前几年增长乏力状况,但双赤字仍严重,美元反弹程度有限。这种状况如长久持续,则容易动摇世界各国持有美元的信心,因此美国借另一“硬通货石油”来支撑弱势美元,以保证美国经济的持续发展。
总的来说,美元与石油价格是异向的变动关系,即美元贬值就会引起油价上涨,美元升值引起油价下跌。
4、从“三金”关系看黄金价格走向
从以上分析我们可以看出,黄金、黑金(石油)与美金(美元)这“三金”之间有内在的联系,从目前的情况来看:黄金价格依然有上涨的空间,这是因为:首先,由于资源的稀缺性,黄金非可再生资源,供给的增加呈下降态势,而需求却不断攀升,价格必然不断上升;第二,由于石油与黄金价格的同向变动关系,世界经济对石油的耗费量日益扩大,石油价格的上涨带动黄金价格同方向变动;另外,从历史上黄金与石油的兑换关系来看,目前每盎司黄金兑换石油桶数较低(如上图三),黄金价格应该有上升空间。最后,由于美国贸易赤字的扩大,从长期来看,美元走软不可避免,从而扩大对黄金的需求,促使黄金价格上涨。
 
二、国际黄金储备量的变化及其对黄金价格的影响
摘要:黄金开始被人们发现就充当了货币,就肩负着货币的职能。尽管黄金在制度层面被取消了流通货币地位,但在实际经济生活中,黄金一直在执行货币的储备功能。
由于黄金有国际储备功能,因此黄金被当作具有长期储备价值的资产被广泛应用于公共以及私人资产的储备中。其中黄金的官方储备占有相当大的比例,例如:目前全球已经开采出来的黄金约15万吨,各国央行的储备金就约有4万吨,个人储备的有3万多吨。因此,国际上黄金官方储备量的变化将会直接影响国际黄金价格的变动,一般来说,官方黄金储备增加时会引起黄金价格的上涨,官方黄金储备减少时会引起黄金价格的下跌。
另外,黄金价格与世界官方黄金储备量占各国外汇储备的比例有关,一般来说随着这个比例的缩小,黄金价格也会上涨。
从保值、增值的角度来看,应加强我国外汇储备结构多元化,包括提高黄金的储备比例,应该说从长期来看,我国增加黄金储备是必然趋势。但是,外汇储备结构的调整应该是一个长期的、持续的、动态的过程,不能一蹴而就。特别是在目前国际金价连创新高的情况下,应加强对国际政治、经济形势进行综合分析的基础上做出决断,在具体的操作上注意掌握技术处理手段,做好风险管理。
一、黄金一直在执行货币的国际储备功能
1、黄金是天然的货币
马克思说过:“货币天然不是金银,金银天然是货币。”黄金拥有许多特有的金属特性:数量稀少,生产成本高,又具有良好的延展性,不易腐蚀,便于分割和携带等。这些不可替代的特性决定了黄金成为最适宜充当货币的商品。因此,黄金开始被人们发现就充当了货币,就肩负着货币的职能。
2、黄金的货币功能虽历经数次波折,但一直在执行货币的国际储备功能
从18 世纪初英国开始建立金本位制度以来,黄金的货币功能经历数番波折:一战结束之后,已经实行了200多年的金本位制崩溃,黄金铸币逐渐退出了商品流通领域。 1944年,布雷顿森林会议建立了一个美元与黄金挂钩的国际货币制度,黄金的货币地位重新回归。但随着形势的变化,美国无力实现美元兑换黄金的重任, 1971年,美国宣布对外停止美元兑换黄金,黄金货币地位开始动摇。1976年,国际货币基金组织达成“牙买加协议”,规定黄金不再作为成员国货币定值标准,这标志着黄金迈上了非货币化道路,其价值尺度和流通手段职能丧失。
尽管黄金在制度层面被取消了流通货币地位,但在实际经济生活中,黄金一直在执行货币的储备功能。目前全球已经开采出来的黄金约15万吨,各国央行的储备金就约有4万吨,个人储备的有3万多吨。
二、布雷顿森林体系的瓦解导致国际黄金价格大幅度波动
从历史上看,上个世纪70 年代以前,国际黄金价格基本比较稳定,波动不大。国际黄金的大幅波动是上个世纪70年代以后才发生的事情。例如:1900年美国实行金本位,当时一盎司 20.67美元,金本位制保持到大萧条时期,1934年罗斯福将金价提高至一盎司35美元。1944年建立的布雷顿森林体系实际是一种“可兑换黄金的美元本位”,由于这种货币体系能给战后经济重建带来一定积极影响,金价保持在35 美元,一直持续到1970年。上个世纪70年代,随着布雷顿森林体系的瓦解,尼克松政府宣布将不再允许美元可兑换黄金,1973年,金价彻底和美元脱钩并开始自由浮动。从此以后黄金价格的波动最大程度的体现了黄金货币属性和商品属性的均衡影响。如下面的百年黄金价格走势图(1905-2005)。
百年黄金价格(1905-2005)
三、国际黄金储备量的变化及其对黄金价格的影响
由于黄金有国际储备功能,因此黄金被当作具有长期储备价值的资产被广泛应用于公共以及私人资产的储备中。其中黄金的官方储备占有相当大的比例,例如:目前全球已经开采出来的黄金约15万吨,各国央行的储备金就约有4万吨,个人储备的有3万多吨。因此,国际上黄金官方储备量的变化将会直接影响国际黄金价格的变动。事实上从上个世纪70年代以来国际黄金价格的变动情况来看,也能看出官方储备对黄金价格的影响。
上个世纪70年代,浮动汇率制度开始登上历史舞台,黄金的货币性职能受到削弱,作为储备资产的功能得到加强,各国官方黄金储备量增加,直接导致了上世纪70年代之后,国际黄金价格大幅度上涨。
上个世纪八九十年代,各中央银行开始重新看待黄金在外汇储备中的作用。中央银行日渐独立以及日益市场化,使其更加强调储备资产组合的收益。在这种背景下,没有任何利息收入的黄金(除了参与借贷市场能够得到一点收益外)地位有所下降。部分中央银行决定减少黄金储备,结果1999年比80年的黄金储备量减少了10%,正是由于主要国家抛售黄金,导致当时黄金价格处于低迷状态。
近年来,由于主要西方国家对黄金抛售量达成售金协议CBGA1 规定CBGA成员每年售金量不超过400吨,同时,对投放市场的黄金总量设定了上限,同时还有一些国家特别是亚洲国家在调整它们的外汇储备——增加黄金在外汇储备中的比例。例如俄罗斯、阿根廷以及南非2005年就决定将提高黄金储备,对亚洲央行来说更有理由多持黄金,因为亚洲国家的黄金储备只占外汇储备的很小一部分,而他们却拥有2.6万亿的美元外汇储备,有能力买入黄金从而对冲美元贬值的风险。应该说,对亚洲央行来说,增加黄金储备只是时间的问题。
附表:截止到2005年12月,世界黄金储备前10名的国家、地区和组织如下表:
序号 国家、地区和组织 黄金储备量(吨) 占外汇总储备的百分比(%)
1 美国 8133.5 67.5
2 德国 3427.8 52.4
3 国际货币基金组织 3217.3 不确定
4 法国 2856.8 59.3
5 意大利 2451.8 59.4
6 瑞士 1290.1 35.2
7 日本 765.2 1.4
8 欧洲中央银行 719.9 22.2
9 荷兰 716.9 52.4
10 中国 600.0 1.2
资料来源:世界基金协会(WORLD GOLD COUNCIL)
到2005年底,世界各国持有黄金量已达到与50年前相近的水平,约32000吨。但是,与巨额的外汇储备总量相比,仍显得微不足道。
四、对我国黄金储备的看法
据最新数据统计,2005年底中国外汇储备余额为8188.72亿美元,同比增长34.3%,增幅比上年下降17个百分点。全年外汇储备增加2089亿美元,同比多增加22亿美元。
从储备资产来看,我国外汇储备结构较为单一,即使在目前美元贬值的情况下,仍主要以美元资产为组成部分。黄金作为国际主要储备资产之一,而我国黄金储备600亿吨,仅占我国外汇储备总额的1.2%,远远低于国际上发达国家的水平。
从保值、增值的角度来看,应加强我国外汇储备结构多元化,包括提高黄金的储备比例,应该说从长期来看,我国增加黄金储备是必然趋势。但是,外汇储备结构的调整应该是一个长期的、持续的、动态的过程,不能一蹴而就。特别是在目前国际金价连创新高的情况下,应加强对国际政治、经济形势进行综合分析的基础上做出决断,在具体的操作上注意掌握技术处理手段,做好风险管理。
田书华简历:
 田书华,数学理学学士、经济学硕士、管理学博士、管理学博士后。中国证券有限责任公司高级研究员,主要从事钢铁行业与黄金行业研究。
 右图为田书华出席国际学术研讨会和欧元之父、诺贝尔奖金获得者蒙代尔在一起。
 田书华在中国钢铁行业、黄金行业、证券行业具有较大影响。曾多次被邀请在国际、国内的钢铁、黄金会议和证券投资会议上作主题发言。
 《经济日报》就曾对本人进行四次专访;《瞭望》等高层刊物曾十多次特邀本人进行撰稿。近年来在《中国证券报》、《上海证券报》、《证券时报》、《21世纪经济报道》等主流财经媒体发表文章近百篇。
 2005年年初,本人预测——“和谐”基调将会影响钢铁行业,钢铁行业应该进入平稳发展和调整期,并购重组将成为未来几年钢铁行业的主基调。
 2005年年初以来,本人看好国际黄金价格走势,当05年9月份黄金价格处于十几的高位、很多投资者产生观望、犹豫之时,从国际金融体系的演变、国际政治经济局势的角度分析,认为黄金依然有上升空间。
 目前田书华为《金融时报》黄金版专栏作者。

源文档

[转载]在CMD下对网络进行安全配置

在CMD下对网络进行安全配置

系统自带的关于网络的命令行工具很多,比如大家熟悉的ping,tracert,ipconfig,telnet,ftp,tftp,netstat,还有不太熟悉的nbtstat,pathping,nslookup,finger,route,netsh......

这些命令又可分成三类:网络检测(如ping)、网络连接(如telnet)和网络配置(如netsh)。前面两种相对简单,本文只介绍两个网络配置工具。

netsh
  在远程shell中使用netsh首先要解决一个交互方式的问题。前面说过,很多shell不能再次重定向输出输出,所以不能在这种环境下交互地使用ftp等命令行工具。解决的办法是,一般交互式的工具都允许使用脚本(或者叫应答文件)。比如ftp -s:filename。netsh也是这样:netsh -f filename。

netsh命令的功能非常多,可以配置IAS、DHCP、RAS、WINS、NAT服务器,TCP/IP协议,IPX协议,路由等。我们不是管理员,一般没必要了解这么多,只需用netsh来了解目标主机的网络配置信息。

1,TCP/IP配置

echo interface ip >s
echo show config >>s
netsh -f s
del s

由此你可以了解该主机有多个网卡和IP,是否是动态分配IP(DHCP),内网IP是多少(如果有的话)。
这个命令和ipconfig /all差不多。

注意,以下命令需要目标主机启动remoteaccess服务。如果它被禁用,请先通过导入注册表解禁,然后
net start remoteaccess

2,ARP

echo interface ip >s
echo show ipnet >>s
netsh -f s
del s

这个比arp -a命令多一点信息。

3,TCP/UDP连接

echo interface ip >s
echo show tcpconn >>s
echo show udpconn >>s
netsh -f s
del s

这组命令和netstat -an一样。

4,网卡信息
如果netsh命令都有其他命令可代替,那它还有什么存在的必要呢?下面这个就找不到代替的了。

echo interface ip >s
echo show interface >>s
netsh -f s
del s

netsh的其他功能,比如修改IP,一般没有必要使用(万一改了IP后连不上,就"叫天不应叫地不灵"了),所以全部略过。

IPSec
首先需要指出的是,IPSec和TCP/IP筛选是不同的东西,大家不要混淆了。TCP/IP筛选的功能十分有限,远不如IPSec灵活和强大。下面就说说如何在命令行下控制IPSec。

XP系统用ipseccmd,2000下用ipsecpol。遗憾的是,它们都不是系统自带的。ipseccmd在xp系统安装盘的SUPPORT \TOOLS\SUPPORT.CAB中,ipsecpol在2000 Resource Kit里。而且,要使用ipsecpol还必须带上另外两个文件:ipsecutil.dll和text2pol.dll。三个文件一共119KB。

IPSec可以通过组策略来控制,但我找遍MSDN,也没有找到相应的安全模板的语法。已经配置好的IPSec策略也不能被导出为模板。所以,组策略这条路走不通。IPSec的设置保存在注册表中(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\ Windows\IPSec\Policy\Local),理论上可以通过修改注册表来配置IPSec。但很多信息以二进制形式存放,读取和修改都很困难。相比之下,上传命令行工具更方便。

关于ipsecpol和ipseccmd的资料,网上可以找到很多,因此本文就不细说了,只是列举一些实用的例子。
在设置IPSec策略方面,ipseccmd命令的语法和ipsecpol几乎完全一样,所以只以ipsecpol为例:

1,防御rpc-dcom攻击

ipsecpol -p myfirewall -r rpc-dcom -f *+0:135:tcp *+0:135:udp *+0:137:udp *+0:138:udp *+0:139:tcp *+0:445:tcp *+0:445:udp -n BLOCK -w reg -x

这条命令关闭了本地主机的TCP135,139,445和udp135,137,138,445端口。
具体含义如下:
-p myfirewall 指定策略名为myfirewall
-r rpc-dcom 指定规则名为rpc-dcom
-f ...... 建立7个筛选器。*表示任何地址(源);0表示本机地址(目标);+表示镜像(双向)筛选。详细语法见ipsecpol -?
-n BLOCK 指定筛选操作是"阻塞"。注意,BLOCK必须是大写。
-w reg 将配置写入注册表,重启后仍有效。
-x 立刻激活该策略。

2,防止被ping

ipsecpol -p myfirewall -r antiping -f *+0::icmp -n BLOCK -w reg -x

如果名为myfirewall的策略已存在,则antiping规则将添加至其中。
注意,该规则同时也阻止了该主机ping别人。

3,对后门进行IP限制
假设你在某主机上安装了DameWare Mini Remote Control。为了保护它不被别人暴破密码或溢出,应该限制对其服务端口6129的访问。

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.89+0:6129:tcp -n PASS -w reg -x

这样就只有123.45.67.89可以访问该主机的6129端口了。
如果你是动态IP,应该根据IP分配的范围设置规则。比如:

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.*+0:6129:tcp -n PASS -w reg -x

这样就允许123.45.67.1至123.45.67.254的IP访问6129端口。

在写规则的时候,应该特别小心,不要把自己也阻塞了。如果你不确定某个规则的效果是否和预想的一样,可以先用计划任务"留下后路"。例如:

c:\>net start schedule
Task Scheduler 服务正在启动 ..
Task Scheduler 服务已经启动成功。

c:\>time /t
12:34

c:\>at 12:39 ipsecpol -p myfw -y -w reg
新加了一项作业,其作业 ID = 1

然后,你有5分钟时间设置一个myfw策略并测试它。5分钟后计划任务将停止该策略。
如果测试结果不理想,就删除该策略。

c:\>ipsecpol -p myfw -o -w reg

注意,删除策略前必须先确保它已停止。不停止它的话,即使删除也会在一段时间内继续生效。持续时间取决于策略的刷新时间,默认是180分钟。

如果测试通过,那么就启用它。

c:\>ipsecpol -p myfw -x -w reg

最后说一下查看IPSec策略的办法。
对于XP很简单,一条命令搞定--ipseccmd show filters
而ipsecpol没有查询的功能。需要再用一个命令行工具netdiag。它位于2000系统安装盘的SUPPORT\TOOLS\SUPPORT.CAB中。(已经上传了三个文件,也就不在乎多一个了。^_^)

netdiag需要RemoteRegistry服务的支持。所以先启动该服务:

net start remoteregistry

不启动RemoteRegistry就会得到一个错误:

[FATAL] Failed to get system information of this machine.

netdiag这个工具功能十分强大,与网络有关的信息都可以获取!不过,输出的信息有时过于详细,超过命令行控制台cmd.exe的输出缓存,而不是每个远程cmd shell都可以用more命令来分页的。

查看ipsec策略的命令是:
netdiag /debug /test:ipsec

然后是一长串输出信息。IPSec策略位于最后。

软件安装
一个软件/工具的安装过程,一般来说只是做两件事:拷贝文件到特定目录和修改注册表。只要搞清楚具体的内容,那么就可以自己在命令行下实现了。(不考虑安装后需要注册激活等情况)

WinPcap是个很常用的工具,但必须在窗口界面下安装。在网上也可以找到不用GUI的版本(但还是有版权页),其实我们完全可以自己做一个。

以WinPcap 3.0a 为例。通过比较安装前后的文件系统和注册表快照,很容易了解整个安装过程。
除去反安装的部分,关键的文件有三个:wpcap.dll,packet.dll和npf.sys。前面两个文件位于system32目录下,第三个在system32\drivers 下。而注册表的变化是增加了一个系统服务NPF。注意,是系统服务(即驱动)不是Win32服务。

作为系统服务,不但要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下增加主键,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root下也增加主键。而后者默认只有 SYSTEM身份才可以修改。幸运的是,并不需要手动添加它,winpcap被调用时会自动搞定。甚至完全不用手动修改注册表,所有的事winpcap都会自己完成,只需要将三个文件复制到合适的位置就行了。

作为范例,还是演示一下如何修改注册表:利用前面说过的inf文件来实现。

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=NPF,,winpcap_svr
[winpcap_svr]
DisplayName=Netgroup Packet Filter
ServiceType=0x1
StartType=3
ErrorControl=1
ServiceBinary=%12%\npf.sys

将上面这些内容保存为_wpcap_.inf文件。
再写一个批处理_wpcap_.bat:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %CD%\_wpcap_.inf
del _wpcap_.inf
if /i %CD%==%SYSTEMROOT%\system32 goto COPYDRV
copy packet.dll %SYSTEMROOT%\system32\
copy wpcap.dll %SYSTEMROOT%\system32\
del packet.dll
del wpcap.dll
:COPYDRV
if /i %CD%==%SYSTEMROOT%\system32\drivers goto END
copy npf.sys %SYSTEMROOT%\system32\drivers\
del npf.sys
:END
del %0

然后用winrar将所有文件(5个)打包为自解压的exe,并将『高级自解压选项』->『解压后运行』设置为_wpcap_.bat,命令行的winpcap安装包就制作完成了。

注意,批处理最后一行没有回车符。否则会因为正在运行而无法删除自己。

所有的软件安装,基本上可以套用这个思路。但也有例外的,那就是系统补丁的安装。
由于系统补丁有可能要替换正在被执行或访问的文件,所以用copy命令是不行的。
幸好,Windows补丁包支持命令行安装。
比如:

KB824146.exe -n -z -q

-n 不保留备份
-z 不重起
-q 安静模式

如果有一堆补丁要打,那么用RAR打包成自解压文件,外加一个批处理。

for %%f in (KB??????.exe) do %%f -n -z -q
for %%f in (KB??????.exe) do del %%f
del %0

Windows脚本
很多事用脚本来做是很简洁的。下面给出几个常用脚本的echo版。

1,显示系统版本

@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_operatingsystem").instances_ >>ps.vbs
@echo wscript.echo ps.caption^&" "^&ps.version:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs

2,列举进程

@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs

3,终止进程

@echo for each ps in getobject _ >pk.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pk.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pk.vbs

要终止PID为123的进程,使用如下语法:
cscript pk.vbs 123

如果显示一个0,表示终止成功。

然后:
del pk.vbs

4,重启系统

@echo for each os in getobject _ >rb.vbs
@echo ("winmgmts:{(shutdown)}!\\.\root\cimv2:win32_operatingsystem").instances_ >>rb.vbs
@echo os.win32shutdown(2):next >>rb.vbs & cscript //nologo rb.vbs & del rb.vbs

5,列举自启动的服务

@echo for each sc in getobject("winmgmts:\\.\root\cimv2:win32_service").instances_ >sc.vbs
@echo if sc.startmode="Auto" then wscript.echo sc.name^&" - "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs

6,列举正在运行的服务

@echo for each sc in getobject("winmgmts:\\.\root\cimv2:win32_service").instances_ >sc.vbs
@echo if sc.state="Running" then wscript.echo sc.name^&" - "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs

7,显示系统最后一次启动的时间

@echo for each os in getobject _ >bt.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_operatingsystem").instances_ >>bt.vbs
@echo wscript.echo os.lastbootuptime:next >>bt.vbs & cscript //nologo bt.vbs & del bt.vbs

源文档

[转载]Linux的内存管理

Linux的内存管理

源文档


Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。这对用户全透明:运行于Linux的程序只看到大量的可用内存而不甘心哪部分在磁盘上。当然,读写硬盘比真的内存慢(慢千倍),所以程序运行较慢。用做虚拟内存的这部分硬盘叫 对换空间。

Linux可以使用文件系统中的普通文件或单独的分区作为对换空间。对换分区更快,但对换文件更易于改变大小(无须对硬盘重分区)。如果知道要多少对换空间,应该用对换分区;如果不能确认,可以先用对换文件,用一段时间后再根据所需空间建立对换分区。

Linux允许同时使用多个对换分区和/或对换文件。即如果偶尔需要更多的对换空间,可以随时建立一个额外的对换文件。

产生对换空间

对换文件是普通文件,对核心没有什么特别的。唯一不同是它没有孔,用 mkswap 准备。必须在本地盘上,不能在通过NFS mount的文件系统中。

关于孔,是重要的。对换文件保留了磁盘空间,使核心能快速对换出一页,而不必经过如文件的定位磁盘扇区的全部事情。核心只用分配给这个文件的所有扇区。由于文件中的孔意味着没有为文件中这个位置分配磁盘扇区,这对核心使用不利。

产生没有孔的对换文件的一个好办法是通过如下命令:

$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024

1024 0 records in

1024 0 records out

$

/extra-swap 是对换文件名,大小由count=给出. 大小最好是4的倍数,因为核心写出的内存页是4KB。如果不是4的倍数,最后那几KB将不可用。

对换分区也没什么特别。就象产生其他分区一样产生;唯一的不同是它作为原始分区使用,即没有任何文件系统,最好将对换分区标记为类型82(Linux swap),虽然这对核心没有影响,但这使分区列表更清晰。

产生对换文件或对换分区后,需要写个标记起用它,这包括核心要用的一些管理信息。命令是 mkswap , 用法如下:

$ mkswap /extra-swap 1024

Setting up swapspace, size = 1044480 bytes

$

注意对换空间现在还没用,它存在,但核心还没用它提供虚拟内存。

请一定小心使用mkswap , 因为它不检查文件或分区是否被其他东西使用。 你可能用mkswap 很容易地覆盖了重要文件和分区! 幸好,你只需在你安装系统时使用mkswap 。

Linux内存管理限制了每个对换空间约为127MB(由于技术原因,实际限制是127.6875MB)。 可以同时使用最多16个对换空间,总计差不多2GB。

使用对换空间

用swapon 将一个初始化的对换空间可用。此命令告诉核心对换空间可以用了,对换空间的路径作为参数,启动一个临时对换文件可以用如下命令:

$ swapon /extra-swap

$

对换空间如果列入/etc/fstab ,就可自动使用。

/dev/hda8 none swap sw 0 0

/swapfile none swap sw 0 0

启动手稿运行命令swapon -a, 它将启动/etc/fstab 中所列的所有对换空间。因此swapon 命令只有在启动额外的对换空间时才使用。

可以用free 监视对换空间的使用,它将给出所有使用的对换空间。

$ free

total used free shared buffers

Mem: 15152 14896 256 12404 2528

-/ buffers: 12368 2784

Swap: 32452 6684 25768

$

前一行输出(Mem显示物理内存。 Total列不显示核心使用的物理内存(通常大约1MB)。Used列显示被使用的内存总额(第二行不计缓冲)。 Free列显示全部没使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。

后一行(Swap对对换空间,显示的信息类似上面。如果这行为全0,那么没使用对换空间。

通过top ,或使用proc文件系统的/proc/meminfo 文件可以得到相同的信息。得到某个对换空间的使用信息目前还比较困难。

可用swapoff 取消对换空间,一般不必这样,除非是临时对换空间。对换空间中的要用的页被换入(swap->RAM),如果没有足够的物理内存,就被换出(RAM ->swap,到其他对换空间)。如果没有足够的虚拟内存放进所有页面,Linux将开始震荡(thrash); 很长时间以后应该能恢复,但此时系统不可用。取消一个对换空间前,应该检查(例如用free )是否有足够的物理内存。

用swapon -a自动使用的所有对换空间可以用swapoff -a取消。它查看文件/etc/fstab 得知要取消什么。任何手工起用的对换空间将依然使用着。

即使有许多空闲的物理内存,有时许多对换空间也被使用着。这种情况是由于在某个时间需要对换,但后来一个占用大量物理内存的大进程终止并释放了内存。直到被换出的数据要被使用之前它们并不自动换入。不必顾虑这种情况,但知道为什么会发生这种情况会更安心。

与其他共享对换空间

许多内置虚拟内存。由于他们只需在运行时使用,即,不会同时,那么除了当前运行的,其他所有对换空间都浪费着。如果他们共享同一个对换空间将更有效。这是可能的但需要一些Hacking工作。 Tips-HOWTO包含了一些如何完成这项任务的忠告。

分配对换空间

也许有人告诉你,应该分配2倍于物理内存的对换空间,但这是个虚假的规律。下面说明如何正确:

估计你的全部内存需求。这是你可能需要的最大量,即你要同时运行的所有程序所需的内存要求的总和。你可以同时运行你可能同时运行的所有程序试试。

例如,如果你想运行X,你得分配8MB给他,gcc要求数MB(有些文件偶尔可能需要很大量,数十MB,但一般4MB差不多),等等。核心自己使用1MB,Shell和一些小工具可能需要几百KB(或说,总共1MB)。不必太精确,粗略估计就行,但可以较悲观地考虑。

记得如果将有多人同时使用系统,他们将都消耗内存。如果2个人同时运行相同的程序,总内存消耗一般并非加倍,因为代码页和共享库是单一的。

free 和ps 命令对估计内存需求很有用。

第一步的估计加上一些安全量。因为对程序大小的估计很可能是错误的,因为你可能忘了一些要运行的程序,并确定你有一些额外空间。应该有数MB。(分配太多对换空间比分配太少好,但不必过分,因为不使用的对换空间是浪费;见后文:关于增加对换空间。) Also,since it is nicer to deal with even numbers, you can round the value up to the next full megabyte.

[转载]Liunx磁盘管理&操作

磁盘管理


在Liunx系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术。本章讲述如何查看系统中存储空间的使用情况、如何进行文件的转储、以及如何进行软盘的格式化。


磁盘空间管理


系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中。因此,应该随时监视磁盘空间的使用情况。Linux系统提供了一组有关磁盘空间管理的命令。


df命令


功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。


语法:df [选项]


说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。


该命令各个选项的含义如下:


-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。

-k 以k字节为单位显示。

-i 显示i节点信息,而不是磁盘块。

-t 显示各指定类型的文件系统的磁盘空间使用情况。

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

-T 显示文件系统类型。


例1:列出各文件系统的磁盘空间使用情况。


$ df

Filesystem 1 K-blocks Used Available Use% Mounted on

/dev/hda2 1361587 1246406 44823 97% /


df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。


例2:列出各文件系统的i节点使用情况。


$ df -ia

Filesystem Inodes IUsed IFree Iused% Mounted on

/dev/ hda2 352256 75043 277213 21% /

none 0 0 0 0% /proc localhost:(pid221) 0 0 0 0% /net


例3:列出文件系统的类型。


$ df -T

Filesystem Type 1K-blocks Used Available use% Mounted on

/dev/hda2 ext2 1361587 1246405 44824 97% /


本例中的文件系统是ext2类型的。


du命令


du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。


功能:统计目录(或文件)所占磁盘空间的大小。


语法:du [选项] [Names…]


说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。


该命令的各个选项含义如下:


-s 对每个Names参数只给出占用的数据块总数。

-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。

-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。

-k 以1024字节为单位列出磁盘空间使用情况。

-c 最后再加上一个总计(系统缺省设置)。

-l 计算所有的文件大小,对硬链接文件,则计算多次。

-x 跳过在不同文件系统上的目录不予统计。


下面举例说明du命令的使用:


例1:查看/mnt目录占用磁盘空间的情况。


$ cd /mnt $ ls -lFR total 10 -rwxrwxrwx 2 root root ll0 Ju1 3l 00:33 aa*


drwxr-xr-x 2 root root l024 Ju1 20 14:16 dev/

-rw-r--r-- 1 root root 6229 Aug 2 0l:39 s1ack

drwxrwxrwx 2 root root 1024 Aug 2 02:09 var/

1rwxrwxrwx 1 root root l0 Aug 2 0l:51 wei->/home/wei/

dev:

tota1 0

lrwxrwxrwx 1 root root 8 Ju1 20 l4:l6 cdrom->/dev/hdb

var:

tata1 37

-r-xr-xr-x l root root 36064 Aug 2 02:09 rawrite. exe*


例2:列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间。


$ du

l . /dev

38 . /var

48 .


输出清单中的第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录名称。 注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:


$ du –s /mnt

/mnt


例3:列出所有文件和目录所占的空间(使用a选项),而且以字节为单位(使用b选项)来计算大小。


$ du -ab

8 ./dev/cdrom

l032 ./dev

36064 ./var/rawrite. exe

37088 ./var

6229 ./s1ack

1l0 ./aa

l0 ./wei

45493 .


磁 盘 操 作


dd命令


功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。


语法:dd [选项]


if =输入文件(或设备名称)。

of =输出文件(或设备名称)。

ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

cbs = byte 一次转换bytes字节。

count=blocks 只拷贝输入的blocks块。

conv = ASCII 把EBCDIC码转换为ASCIl码。

conv = ebcdic 把ASCIl码转换为EBCDIC码。

conv = ibm 把ASCIl码转换为alternate EBCDIC码。

conv = block 把变动位转换成固定字符。

conv = ublock 把固定位转换成变动位。

conv = ucase 把字母由小写转换为大写。

conv = lcase 把字母由大写转换为小写。

conv = notrunc 不截短输出文件。

conv = swab 交换每一对输入字节。

conv = noerror 出错时不停止处理。

conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。


例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:


$ dd if =/dev/fd0 of = /tmp/tmpfile


拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:


$ dd if = /tmp/tmpfile of =/dev/fd0


软盘拷贝完成后,应该将临时文件删除:


$ rm /tmp/tmpfile


例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。 (注意:软盘中的内容会被完全覆盖掉)


$ dd if = net.i of = /dev/fd0 bs = 16384


例3:将文件sfile拷贝到文件 dfile中。


$ dd if=sfile of=dfile


fdformat 命令


软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系统。


功能:低级格式化软盘


语法:format [-n] device


说明:该命令的作用是对软盘进行格式化。


-n 软盘格式化后不作检验。


device 指定要进行格式化的设备,通常是下述设备之一:


/dev/fd0d360

/dev/fd0h1200

/dev/fd0D360

/dev/fd0H360

/dev/fd0D720

/dev/fd0H720

/dev/fd0h360

/dev/fd0h720

/dev/fd0H1440


思 考 题


1. 显示出你的系统磁盘空间使用情况。


2. 显示出你的当前目录下所有文件所占的空间。


3. 请格式化一张软盘,并把text这个文件写入软盘中。

SQLServer 数据文件的妙用

数据文件的妙用
当数据库所在的磁盘分区不足的时候,可以使用添加数据文件的方式解决,sql系统在准备扩充文件空间的时候,会优先检查所有的数据文件的空间大小,如果还有可用空间,则首先考虑使用它;等所有的磁盘文件空间都用完时,系统会按顺序扩充各文件,扩一个用一个,用完了再用下一个

[转载]FTP命令详解 

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令。 熟悉并灵活应用FTP的内部 命令,可以大大方便使用者,并收到事半功倍之效。 
FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息; -n 限制ftp的自动登录,即不使用; .n etrc文件; -d 使用调试方式; -g 取消全局文件名。

ftp使用的内部命令如下(中括号表示可选项):

1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如: !ls*.zip.

2.$ macro-ame[args]:执行宏定义macro-name.

3.account[password]:提供登录远程系统成功后访问系统资源所需的补 充口令。

4.append local-file[remote-file]:将本地文件追加到远程系统主机, 若未指定远程系统文件名,则使用本地文件名。

5.ascii:使用ascii类型传输方式。

6.bell:每个命令执行完毕后计算机响铃一次。

7.bin:使用二进制文件传输方式。

8.bye:退出ftp会话过程。

9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。

10.cd remote-dir:进入远程主机目录。

11.cdup:进入远程主机目录的父目录。

12.chmod mode file-name:将远程主机文件file-name的存取方式设置为 mode,如: chmod 777 a.out 。

13.close:中断与远程服务器的ftp会话(与open对应)。

14.cr:使用asscii方式传输文件时,将回车换行转换为回行。

15.delete remote-file:删除远程主机文件。

16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命 令,如: deb up 3,若设为0,表示取消debug。

17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本 地文件local-file。

18.disconnection:同close。

19.form format:将文件传输方式设置为format,缺省为file方式。

20.get remote-file[local-file]: 将远程主机的文件remote-file传至 本地硬盘的local-file。

21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名, 同命令行的-g参数。

22.hash:每传输1024字节,显示一个hash符号(#)。

23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。

24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。

25.image:设置二进制传输方式(同binary)。

26.lcd[dir]:将本地工作目录切换至dir。

27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本 地文件local-file。

28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结 束。

29.mdelete[remote-file]:删除远程主机文件。

30.mdir remote-files local-file:与dir类似,但可指定多个远程文件, 如: mdir *.o.*.zipoutfile 。

31.mget remote-files:传输多个远程文件。

32.mkdir dir-name:在远程主机中建一目录。

33.mls remote-file local-file:同nlist,但可指定多个文件名。

34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方 式。

35.modtime file-name:显示远程主机文件的最后修改时间。

36.mput local-file:将多个文件传输至远程主机。

37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同 名文件的时间更近,则重传该文件。

38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并 存入本地硬盘的local-file。

39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输 时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1,$2].[$2,$3],则 传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX 机的情况。

40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。

41.open host[port]:建立指定ftp服务器连接,可指定连接端口。

42.passive:进入被动传输方式。

43.prompt:设置多个文件传输时的交互提示。

44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许 连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open, 以首先建立两个服务器间的连接。

45.put local-file[remote-file]:将本地文件local-file传送至远程主 机。

46.pwd:显示远程主机的当前工作目录。

47.quit:同bye,退出ftp会话。

48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如: quote syst.

49.recv remote-file[local-file]:同get。

50.reget remote-file[local-file]:类似于get,但若local-file存在, 则从上次传输中断处续传。

51.rhelp[cmd-name]:请求获得远程主机的帮助。

52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否 则显示文件状态。

53.rename[from][to]:更改远程主机文件名。

54.reset:清除回答队列。

55.restart marker:从指定的标志marker处,重新开始get或put,如: restart 130。

56.rmdir dir-name:删除远程主机目录。

57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀 ..1,.2等。

58.send local-file[remote-file]:同put。

59.sendport:设置PORT命令的使用。

60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。

61.size file-name:显示远程主机文件大小,如:site idle 7200。

62.status:显示当前ftp状态。

63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时 使用stream结构。

64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。

65.system:显示远程主机的操作系统类型。

66.tenex:将文件传输类型设置为TENEX机的所需的类型。

67.tick:设置传输时的字节计数器。

68.trace:设置包跟踪。

69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如: type binary,设置二进制传输方式。

70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如: umask 3。

71.user user-name[password][account]:向远程主机表明自己的身份, 需要口令时,必须输入口令,如:user anonymous my@email。

72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有 响应都将显示给用户,缺省为on.


73.?[cmd]:同help.

[转载]完全理解端口及常见端口作用

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-1-31

现在讲一下什么是端口号,一个端口就是一个潜在的通讯通道,也是一个入侵通道,开放一个端口就是一台计算机在网络上打开了一扇窗户,黑客入侵的方法就是用手工扫描或利用扫描软件找到服务器所开放的端口,去根据其相应的漏洞对服务器进行入侵或攻击,因此对端口的了解是非常重要的。
      现在讲一下什么是端口号,一个端口就是一个潜在的通讯通道,也是一个入侵通道,开放一个端口就是一台计算机在网络上打开了一扇窗户,黑客入侵的方法就是用手工扫描或利用扫描软件找到服务器所开放的端口,去根据其相应的漏洞对服务器进行入侵或攻击,因此对端口的了解是非常重要的。 

 端口大概分为三类: 


1:公认端口(well known ports):从0-1023,他们是绑定于一些服务。通常这些端口的通信明确表明了某种服务的协议。比如,21端口是FTP服务所开放的。 

2:注册端口(registrerd ports):从1024-49151,他们松散的绑定于一些服务也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。比如,许多系统处理动态端口是从1024开始的。 

3:动态或私有端口(dynamic and/or private ports):从49512-65535,理论上不应该为服务分配这些端口。实际上,计算机通常从1024开始分配动态端口。当然也有例外的,SUN的RPC端口从32768开始。 

下边附常用端口列表: 

端口大全 

不同的端口有不同的作用希望大家能有所收获。 

0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。 

1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的帐户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。许多管理员安装后忘记删除这些帐户。因此Hacker们在Internet上搜索tcpmux并利用这些帐户。 

7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。 

11 sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。这为入侵者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或帐户的程序。这与UNIX系统中“ps”命令的结果相似。再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11。 

19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。 

21 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers 利用这些服务器作为传送warez (私有程序) 和pron的节点。 

22 ssh PcAnywhere 建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。(建议在其它端口运行ssh)。还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程序的人无意中扫描到。UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0x1600)位交换后是0x0016(使进制的22)。 

23 Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。 

25 smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总被关闭,他们需要拨号连接到高带宽的e-mail服务器上,将简单的信息传递到不同的地址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。 

53 DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录53端口。需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并假设这是对DNS查询的回复。Hacker常使用这种方法穿透防火墙。 

67&68 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。 

69 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文件。 

79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。 

80 HTTP服务器所用到的端口。 

98 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此外因为它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等) 

109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。 

110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。 

111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看允许哪些RPC服务的最早的一步。常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服务的特定端口测试漏洞。记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。   

113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多机器的信息(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是FTP, POP, IMAP, SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。 

119 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:news://news.hackervip.com/. 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。 

135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户连接到机器时,它们查询end-point mapper找到服务的位置。同样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本?这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻击直接针对这个端口。 

137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息。 

139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。 

143 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过程中进入。记住:一种Linux蠕虫(admw0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认允许IMAP后,这些漏洞变得流行起来。Morris蠕虫以后这还是第一次广泛传播的蠕虫。这一端口还被用于IMAP2,但并不流行。已有一些报道发现有些0到143端口的攻击源于脚本。

161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。 

162 SNMP trap 可能是由于错误配置 

177 xdmcp 许多Hacker通过它访问X-Windows控制台, 它同时需要打开6000端口。 

513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很有趣的信息。 

553 CORBA IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。 

600 Pcserver backdoor 请查看1524端口。 

一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统-- Alan J. Rosenthal

635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。 

1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。 

1025,1026 参见1024 

1080 SOCKS 这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。 

1114 SQL 系统本身很少扫描这个端口,但常常是sscan脚本的一部分。 

1243 Sub-7木马(TCP) 

1433 MSSQL数据库服务端口 

1524 ingreslock 后门许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。 

161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。 

162 SNMP trap 可能是由于错误配置 

177 xdmcp 许多Hacker通过它访问X-Windows控制台, 它同时需要打开6000端口。 

513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很有趣的信息。 

553 CORBA IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。 

600 Pcserver backdoor 请查看1524端口。 

一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统-- Alan J. Rosenthal. 

635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。 

1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。 

1025,1026 参见1024 

1080 SOCKS 这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。 

1114 SQL 系统本身很少扫描这个端口,但常常是sscan脚本的一部分。 

1243 Sub-7木马(TCP) 

1433 MSSQL数据库服务端口 

1524 ingreslock 后门许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。

2008年12月9日星期二

绿色先锋

CHKenPlayer
文件32K,播放MP3仅需要2.8M内存......

  一个几十KB功能非常强大的播放器,可以播放.swf(FLash)、mp3、wmv、wma、asf、avi、mpeg、mpg、rm、rmvb、mms、rtsp...等等等格式的播放器!用过Ken软件的人对它已经不陌生了!
  CHKen Player有哪些优点?
  1.CHKen Player 具有全局热键功能,可以让您在游戏中,或工作中,轻松的控制音乐或影视的播放!
  2.CHKen Player 小巧,不是一般的小,是非常之小,高效的C++,纯API编写,下载用不了你多少时间!
  3.CHKen Player 功能多,有浮动窗口,更加能发辉鼠标的功能,而不会影响您工作的桌面!
  4.CHKen Player 在Flash播放上功能之特别,网络的上Flash播放软件无一能和它相比!
  5.CHKen Player 支持拖拉,想得出,就可以拖!支持多文件,文件夹,文本,URL等等的拖拉
  6.CHKen Player 是完全由中国人开发的!



经典的类unix客户端绿色软件——putty

PuTTY (the Telnet and SSH client itself)
PSCP (an SCP client, i.e. command-line secure file copy)
PSFTP (an SFTP client, i.e. general file transfer sessions much like FTP)
PuTTYtel (a Telnet-only client)
Plink (a command-line interface to the PuTTY back ends)
Pageant (an SSH authentication agent for PuTTY, PSCP and Plink)
PuTTYgen (an RSA and DSA key generation utility).


CodeHelp

主要功能
基本算作是绿色的,安装完后的目录拷贝到别处一样用,之所以推荐是因为便于收集、归类日常脚本,并且后台存储使用Access数据库,便于迁移。

★ CodeHelp是专门为我们程序员设计的一款源代码管理软件。它能方便的管理您在编程和学习中有用的源代码,
减少经常到处查找资料的劳动,节省您在开发中的时间和精力。

★ 知识管理越来越被大家所重视,源代码也应该做为一种知识资源,纳入知识管理体系中去。利用CodeHelp,
可以方便的管理你的各种技术资料和源代码。

★ CodeHelp 支持多个数据库文件,能够新建数据库、打开数据库、压缩和备份数据库。

★ CodeHelp 以目录树来管理代码文件,你可以自由定义目录,并能够自由拖拽、移动、修改,支持无限分支延伸。
采用分段读入方式,能支持超大的目录树。

★ CodeHelp 支持“语法突出”方式显示代码,目前支持 C/C++、Pascal、Java、VB.Net、XML、HTML等方式,
您也可以按照规则自己添加“语法突出”格式。

★ CodeHelp 采用 TabView 来显示多个源代码文件,查看起来非常方便。

★ 源代码编辑器多数没有自动换行功能,CodeHelp 的源代码编辑器增加了手动格式化功能,能够把所选文字
格式成多行或一行文本。

★ CodeHelp 能够为每个文章添加多个附件,并能够在临时目录中打开附件、导出附件。

★ CodeHelp 中能够在数据库中按标题查找文章,并支持书签功能。



Notepad++

Notepad++ 是在微軟視窗環境之下的一個免費的代碼編輯器。


mRemote
如果需要管理多台电脑,而它们又使用不同的远程连接方式,那么开源软件mRemote绝对会让你事半功倍。mRemote可以在一个界面下管理RDP、VNC、SSH、TELNET、HTTP、Rlogin、RAW等多种协议的远程控制。mRemote利用目录组织大量连接,并能保存链接信息,使用Tab页面同时控制
多台电脑,可以大幅提高工作效率。
需要.net环境支持。

2008年12月4日星期四

[转载]Windows Server 操作系统中的常用SID

Windows Server 操作系统中的常用SID
SID:S-1-0
名称:Null Authority
描述:标识符颁发机构。
SID:S-1-0-0
名称:Nobody
描述:无安全主体。
SID:S-1-1
名称:World Authority
描述:标识符颁发机构。
SID:S-1-1-0
名称:Everyone
描述:包括所有用户(甚至匿名用户和来宾)的组。成员身份由操作系统控制。
SID:S-1-2
名称:Local Authority
描述:标识符颁发机构。
SID:S-1-3
名称:Creator Authority
描述:标识符颁发机构。
SID:S-1-3-0
名称:Creator Owner
描述:可继承访问控制项 (ACE) 中的占位符。当 ACE 被继承时,系统用对象创建者的 SID 替换此 SID。
SID:S-1-3-1
名称:Creator Group
描述:可继承 ACE 中的占位符。当 ACE 被继承时,系统用对象创建者的主要组 SID 替换此 SID。主要组仅供 POSIX 子系统使用。
SID:S-1-3-2
名称:Creator Owner Server
描述:Windows 2000 中不使用此 SID。
SID:S-1-3-3
名称:Creator Group Server
描述:Windows 2000 中不使用此 SID。
SID:S-1-4
名称:Non-unique Authority
描述:标识符颁发机构。
SID:S-1-5
名称:NT Authority
描述:标识符颁发机构。
SID:S-1-5-1
名称:Dialup
描述:一个包括所有通过拨号连接登录的用户的组。成员身份由操作系统控制。
SID:S-1-5-2
名称:Network
描述:一个包括所有通过网络连接登录的用户的组。成员身份由操作系统控制。
SID:S-1-5-3
名称:Batch
描述:一个包括所有通过批队列工具登录的用户的组。成员身份由操作系统控制。
SID:S-1-5-4
名称:Interactive
描述:一个包括所有以交互方式登录的用户的组。成员身份由操作系统控制。
SID:S-1-5-5-X-Y
名称:Logon Session
描述:登录会话。这些 SID 的 X 和 Y 值因会话而异。
SID:S-1-5-6
名称:Service
描述:一个包括所有作为服务登录的安全主体的组。成员身份由操作系统控制。
SID:S-1-5-7
名称:Anonymous
描述:一个包括所有以匿名方式登录的用户的组。成员身份由操作系统控制。
SID:S-1-5-8
名称:Proxy
描述:Windows 2000 中不使用此 SID。
SID:S-1-5-9
名称:Enterprise Controllers
描述:一个由使用 Active Directory 目录服务的林中的所有域控制器组成的组。成员身份由操作系统控制。
SID:S-1-5-10
名称:Principal Self
描述:Active Directory 中的帐户对象或组对象上可继承 ACE 中的一个占位符。当 ACE 被继承时,系统用持有此帐户的安全主体的 SID 替换此 SID。
SID:S-1-5-11
名称:Authenticated Users
描述:一个包括登录时已经过身份验证的用户的组。成员身份由操作系统控制。
SID:S-1-5-12
名称:Restricted Code
描述:此 SID 保留供以后使用。
SID:S-1-5-13
名称:Terminal Server Users
描述:一个包括所有登录到终端服务服务器的用户的组。成员身份由操作系统控制。
SID:S-1-5-18
名称:Local System
描述:操作系统使用的服务帐户。
SID:S-1-5-19
名称:NT Authority
描述:本地服务
SID:S-1-5-20
名称:NT Authority
描述:网络服务
SID:S-1-5-域-500
名称:Administrator
描述:系统管理员的用户帐户。默认情况下,它是唯一能够完全控制系统的用户帐户。
SID:S-1-5-域-501
名称:Guest
描述:无个人帐户的人员的用户帐户。此用户帐户不需要密码。默认情况下,Guest 帐户被禁用。
SID:S-1-5-域-502
名称:KRBTGT
描述:密钥分发中心 (KDC) 服务使用的服务帐户。
SID:S-1-5-域-512
名称:Domain Admins
描述:一个全局组,其成员被授权管理该域。默认情况下,Domain Admins 组属于所有加入域的计算机(包括域控制器)上的 Administrators 组。Domain Admins 是该组的任何成员创建的任何对象的默认所有者。
SID:S-1-5-域-513
名称:Domain Users
描述:一个全局组,默认情况下它包括域中的所有用户帐户。在域中创建用户帐户时,默认情况下,帐户将添加到该组中。
SID:S-1-5-域-514
名称:Domain Guests
描述:一个全局组,默认情况下它只有一个成员,即域的内置 Guest 帐户。
SID:S-1-5-域-515
名称:Domain Computers
描述:一个包括加入域的所有客户端和服务器的全局组。
SID:S-1-5-域-516
名称:Domain Controllers
描述:一个包括域中所有域控制器的全局组。默认情况下,新的域控制器将添加到该组中。
SID:S-1-5-域-517
名称:Cert Publishers
描述:一个包括所有运行企业证书颁发机构的计算机的全局组。Cert Publishers 被授权为 Active Directory 中的 User 对象发布证书。
SID:S-1-5-根域-518
名称:Schema Admins
描述:纯模式域中的通用组;混合模式域中的全局组。该组被授权在 Active Directory 中更改架构。默认情况下,该组的唯一成员是目录林根域的 Administrator 帐户。
SID:S-1-5-根域-519
名称:Enterprise Admins
描述:纯模式域中的通用组;混合模式域中的全局组。该组被授权在 Active Directory 中进行目录林范围的更改,例如添加子域。默认情况下,该组的唯一成员是目录林根域的 Administrator 帐户。
SID:S-1-5-域-520
名称:Group Policy Creator Owners
描述:一个被授权在 Active Directory 中新建组策略对象的全局组。默认情况下,该组的唯一成员是 Administrator。
SID:S-1-5-域-533
名称:RAS and IAS Servers
描述:域本地组。默认情况下,该组没有成员。该组中的服务器对 Active Directory 域本地组中的 User 对象具有“读取帐户限制”和“读取登录信息”访问权限。默认情况下,该组没有成员。该组中的服务器对 Active Directory 中的 User 对象具有“读取帐户限制”和“读取登录信息”访问权限。
SID:S-1-5-32-544
名称:Administrators
描述:内置组。初次安装操作系统后,该组的唯一成员是 Administrator 帐户。当计算机加入域时,Domain Admins 组将被添加到 Administrators 组中。当服务器成为域控制器时,Enterprise Admins 组也被添加到 Administrators 组中。
SID:S-1-5-32-545
名称:Users
描述:内置组。初次安装操作系统后,该组的唯一成员是 Authenticated Users 组。当计算机加入域时,Domain Users 组将被添加到计算机上的 Users 组中。
SID:S-1-5-32-546
名称:Guests
描述:内置组。默认情况下,该组的唯一成员是 Guest 帐户。Guests 组允许临时或一次性用户使用有限权限登录到计算机的内置 Guest 帐户。
SID:S-1-5-32-547
名称:Power Users
描述:内置组。默认情况下,该组没有成员。Power Users 可以创建本地用户和组,修改和删除以前创建的帐户,删除 Power Users、Users 和 Guests 组中的用户。Power Users 还可以安装程序,创建、管理和删除本地打印机以及创建和删除文件共享目录。
SID:S-1-5-32-548
名称:Account Operators
描述:一种只存在于域控制器上的内置组。默认情况下,该组没有成员。默认情况下,Account Operators 有权为 Active Directory 的所有容器和组织单位中的用户、组和计算机创建、修改和删除帐户,Builtin 容器和 Domain Controllers OU 除外。Account Operators 无权修改 Administrators 和 Domain Admins 组,也无权为那些组的成员修改帐户。
SID:S-1-5-32-549
名称:Server Operators
描述:一种只存在于域控制器上的内置组。默认情况下,该组没有成员。Server Operators 可以以交互方式登录到服务器,创建和删除网络共享目录,启动和停止服务,备份和还原文件,格式化计算机的硬盘以及关闭计算机。computer.
SID:S-1-5-32-550
名称:Print Operators
描述:一种只存在于域控制器上的内置组。默认情况下,该组的唯一成员是 Domain Users 组。Print Operators 可以管理打印机和文档队列。
SID:S-1-5-32-551
名称:Backup Operators
描述:内置组。默认情况下,该组没有成员。Backup Operators 可以备份和还原计算机上的所有文件,无论那些文件受哪些权限保护均如此。Backup Operators 也可以登录和关闭计算机。
SID:S-1-5-32-552
名称:Replicators
描述:一个由域控制器上的文件复制服务使用的内置组。默认情况下,该组没有成员。不要向该组中添加用户。
下列各组在某台 Windows Server 2003 域控制器被指定担任主域控制器 (PDC) 操作主机角色之前,将一直显示为 SID。(“操作主机”也称作灵活的单主机操作或 FSMO。)在将 Windows Server 2003 域控制器添加到域中时,新建的其他内置组有:
SID:S-1-5-32-554
名称:BUILTIN\Pre-Windows 2000 Compatible Access
描述:Windows 2000 添加的别名。一个允许对域中的所有用户和组进行读访问的向后兼容组。
SID:S-1-5-32-555
名称:BUILTIN\Remote Desktop Users
描述:一个别名。该组的成员被授予远程登录权限。
SID:S-1-5-32-556
名称:BUILTIN\Network Configuration Operators
描述:一个别名。该组的成员拥有管理网络功能配置的部分权限。
SID:S-1-5-32-557
名称:BUILTIN\Incoming Forest Trust Builders
描述:一个别名。该组的成员可以创建到该目录林的传入的单向信任。
SID:S-1-5-32-557
名称:BUILTIN\Incoming Forest Trust Builders
描述:一个别名。该组的成员可以创建到该目录林的传入的单向信任。
SID:S-1-5-32-558
名称:BUILTIN\Performance Monitor Users
描述:一个别名。该组的成员可以进行远程访问以监视此计算机。
SID:S-1-5-32-559
名称:BUILTIN\Performance Log Users
描述:一个别名。该组的成员可以进行远程访问,以便计划此计算机上性能计数器的日志。
SID:S-1-5-32-560
名称:BUILTIN\Windows Authorization Access Group
描述:一个别名。该组的成员可以访问 User 对象上的计算的 tokenGroupsGlobalAndUniversal 属性。
SID:S-1-5-32-561
名称:BUILTIN\Terminal Server License Servers
描述:一个别名。终端服务器许可证服务器组。

[转载]NewSID 4.10 版

摘自http://www.microsoft.com/china/technet/sysinternals/utilities/NewSid.mspx

1 NewSID 4.10 版
作者:Mark Russinovich 和 Bryce Cogswell
发布日期: 2006年11月01日
1.1 重要信息:
关于 SID,Microsoft 不支持使用 NewSID 准备的映像,我们只支持使用 SysPrep 准备的映像。Microsoft 尚未针对所有部署克隆选项测试 NewSID。
有关 Microsoft 的官方策略的详细信息,请参阅下面的知识库文章:
• 有关 Windows XP 安装的磁盘复制的 Microsoft 策略

返回页首
1.2 简介
许多组织使用磁盘映像克隆技术来大规模部署 Windows。此方法要求将完全安装和配置的 Windows 计算机的磁盘复制到其他计算机的磁盘驱动器。其他这些计算机似乎已经有效地完成了相同的安装过程,并且可以立即使用。
虽然此方法节省了数小时的工作量并且比其他部署方法有效,但是它存在一个严重问题,即每个克隆的系统都具有一个完全相同的计算机安全标识符 (SID)。这一因素会损害工作组环境的安全性,并且在具有多个相同计算机 SID 的网络中,还可能损害可移动媒体安全性。
来自 Windows 社区的要求已经促使多家公司开发可以在克隆系统后更改计算机的 SID 的程序。但是,Symantec 的 SID Changer 和 Symantec 的 Ghost Walker 仅作为每家公司的高端产品出售。而且,它们都从 DOS 命令提示窗口中运行(Altiris 的更改器类似于 NewSID)。
NewSID 是我们开发的可更改计算机的 SID 的程序。它是一个免费的 Win32 程序,这意味着它可以容易地在以前克隆的系统上运行。NewSID 可在 Windows NT 4、Windows 2000、Windows XP 和 Windows .NET Server 上运行。
使用该程序之前,请先完整阅读此文章。
版本信息:
• 版本 4.0 引入了对 Windows XP 和 .NET Server 的支持、向导样式的界面(可以通过该界面指定您要应用的 SID)、注册表压缩以及用于重命名计算机的选项(该选项可用来更改 NetBIOS 名称和 DNS 名称)。
• 版本 3.02 更正了以下程序缺陷:在将具有旧 SID 的项重命名为新 SID 时,NewSid 无法正确复制具有无效值类型的默认值。实际上,NT 某些时候在 SAM 中使用了这些无效值。此程序缺陷的症状是:当授权用户更新帐户信息时,错误消息报告访问权限被拒绝。
• 版本 3.01 为由 Microsoft Transaction Server 创建的无法访问的注册表项添加了解决方法。不使用该解决方法,NewSID 会过早退出。
• 版本 3.0 引入了 SID 同步功能,该功能指示 NewSID 从另一台计算机获取要应用的 SID。
• 版本 2.0 具有自动模式选项,而且还使您可以更改计算机名称。
• 版本 1.2 修复了在版本 1.1 中引入的未更新某些文件系统安全描述符的程序缺陷。
• 版本 1.1 更正了仅影响某些安装的相对次要的程序缺陷。对它也进行了更新,以便更改与文件和打印机共享的权限设置相关联的 SID。
返回页首
1.3 克隆和备用部署方法
在企业环境中执行大规模 Windows 部署(通常为数百台计算机)的最常见方法之一基于磁盘克隆技术。系统管理员可以在样本计算机上安装公司使用的基本操作系统和附加软件。在配置该计算机以便在公司网络中进行操作后,可以使用自动化磁盘或系统复制工具(如 Symantec 的 Ghost、PowerQuest 的 Image Drive 和 Altiris 的 RapiDeploy)将样本计算机的驱动器复制到数十台或数百台计算机上。然后,对这些克隆计算机进行最后的调整(如分配唯一名称),然后由公司员工使用。
另一种比较流行的部署方法是使用 Microsoft sysdiff 实用工具(Windows 资源工具包的一部分)。此工具需要系统管理员在每台计算机上执行完全安装(通常是无人参与的脚本安装),然后 sysdiff 自动应用附加软件安装映像。
由于跳过安装并且磁盘扇区复制比文件复制更有效等原因,基于克隆的部署与类似的 sysdiff 安装相比可以节省数十小时的时间。另外,系统管理员不必了解如何使用无人参与的安装或 sysdiff,也无需创建并调试安装脚本。单这一项就可以节省数小时的工作。
返回页首
1.4 SID 重复问题
克隆的问题在于它仅由 Microsoft 提供非常有限的支持。Microsoft 已经声明,只支持在到达 Windows 安装程序的 GUI 部分之前获得到克隆系统。在安装到达此步骤时,将为计算机分配名称和唯一的计算机 SID。如果系统是在完成此步骤之后克隆的,则克隆的所有计算机都将具有完全相同的计算机 SID。请注意,只更改计算机名称或将计算机添加到不同的域不会更改计算机 SID。如果计算机先前与某个域相关联,则更改名称或域时只能更改域 SID。
要了解克隆可能引起的问题,首先需要了解如何为计算机上的各个本地帐户分配 SID。本地帐户的 SID 由计算机的 SID 和附加的 RID(相对标识符)组成。RID 从某个固定值开始,并且每创建一个帐户就会增加 1。这意味着一台计算机上的第二个帐户会被分配与克隆计算机上的第二个帐户相同的 RID。结果是这两个帐户具有相同的 SID。
重复的 SID 在基于域的环境中不是问题,因为域帐户具有基于域 SID 的 SID。但是,根据 Microsoft 知识库文章 Q162001“不要硬盘复制安装的 Windows NT 的各个版本”,在工作组环境中,安全是基于本地帐户 SID 的。因此,如果两台计算机的用户具有相同的 SID,则工作组将无法区分这些用户。对于所有资源(包括文件和注册表项)而言,如果一个用户对其具有访问权限,则另一个用户也对其具有访问权限。
重复 SID 可能引起问题的另一个场合是存在使用 NTFS 格式化的可移动媒体,并且将本地帐户安全属性应用于文件和目录。如果将这样的媒体移动到具有相同 SID 的另一台计算机,则当本地帐户的帐户 ID 恰巧与安全属性中的帐户 ID 匹配时,这些帐户将能够访问本来无法访问的文件。如果计算机具有不同的 SID,则不可能发生这种情况。
Mark 撰写的题为“NT Rollout Options”(NT 部署选项)的文章已在《Windows NT 杂志》的 6 月刊中发表。这篇文章更加详细地讨论了重复 SID 问题,而且表明了 Microsoft 对于克隆的官方立场。要查看您的网络中是否有重复 SID 问题,请使用 PsGetSid 来显示计算机 SID。
返回页首
1.5 NewSID
NewSID 是我们开发的可用来更改计算机 SID 的程序。它首先为计算机生成一个随机的 SID,然后更新它在注册表和文件安全描述符中找到的现有计算机 SID 的实例,并用新 SID 替换旧 SID。NewSID 要求使用管理权限运行。它有两个功能:更改 SID 和更改计算机名称。
要使用 NewSID 的自动运行选项,请在命令行中指定“/a”。您还可以通过在“/a”开关后面包含新名称来指示它自动更改计算机的名称。例如:
newsid /a [newname]
将使 NewSID 无提示运行,将计算机名称更改为“newname”,并且在一切正常的情况下重新启动计算机。
注意:如果要运行 NewSID 的系统正在运行 IISAdmin,则必须在运行 NewSID 之前停止 IISAdmin 服务。使用以下命令可停止 IISAdmin 服务:net stop iisadmin /y
NewSID 的 SID 同步功能使您可以指定从另一台计算机获取新 SID 而不是随机生成 SID。使用此功能,可以将备份域控制器 (BDC) 移动到一个新域,因为根据 BDC 与其他域控制器 (DC) 具有相同的计算机 SID,可以确定该 BDC 与某个域的关系。只需选择“Synchronize SID”按钮并输入目标计算机的名称。您必须具有更改目标计算机的注册表项的安全设置的权限,这通常意味着您必须以域管理员身份登录才能使用此功能。
请注意,当您运行 NewSID 时,注册表的大小将会增长,因此请确保注册表最大大小能够适应这一增长。我们已发现这一增长对系统性能没有明显影响。注册表增长的原因是:当 NewSID 应用临时安全设置时,注册表变零碎了。删除这些设置后,注册表不受影响。
重要信息:请注意,虽然我们已经对 NewSID 进行了全面测试,但是您必须自行承担使用它所带来的风险。像使用任何能够更改文件和注册表设置的软件一样,强烈建议您在运行 NewSID 前,对计算机进行完全备份。
返回页首
1.6 移动 BDC
将 BDC 从一个域移动到另一个域时,需要遵循以下步骤:
1. 启动您要移动的 BDC,然后登录。使用 NewSID 将该 BDC 的 SID 与要将该 BDC 移动到的域的 PDC 进行同步。
2. 重新启动更改了 SID 的系统 (BDC)。因为现在与该 BDC 相关联的域已经具有一个活动的 PDC,所以该 BDC 将作为其新域中的 BDC 启动。
3. 该 BDC 将显示为服务器管理器中的工作站,因此可以使用“添加到域”按钮将该 BDC 添加到其新域中。添加时一定要指定“BDC”单选按钮。
返回页首
1.7 工作原理
NewSID 首先读取现有计算机 SID。计算机的 SID 存储在注册表的 SECURITY\SAM\Domains\Account 下的 SECURITY 配置单元中。此项包含一个名为 F 的值和一个名为 V 的值。V 值是一个将计算机 SID 嵌入到其数据末尾的二进制值。NewSID 能够确保此 SID 具有标准格式(三个 32 位子颁发机构位段的前面带有三个 32 位颁发机构位段)。
接下来,NewSID 为计算机生成一个新的随机 SID。NewSID 的生成过程竭力创建了一个真正的 96 位随机值,该值将替换组成计算机 SID 的 3 个子颁发机构值(共 96 位)。
计算机 SID 的替换分为以下三个阶段。在第一阶段中,扫描 SECURITY 和 SAM 注册表配置单元,以便在项名称以及项值中查找旧的计算机 SID。如果在值中找到 SID,则用新的计算机 SID 替换它;如果在名称中找到 SID,则会将相应的项及其子项复制到与替换旧 SID 的新 SID 具有相同名称的新子项。
最后两个阶段涉及到更新安全描述符。注册表项和 NTFS 文件具有与自身相关联的安全性。安全描述符包含以下部分:一个标识了哪个帐户拥有资源,哪个组是主要组所有者的条目;一个可选列表(称为自由访问控制列表 - DACL),其中的条目指定了用户或组所允许的操作;以及另外一个可选列表,其中的条目指定了特定用户或组所执行的哪些操作将在系统事件日志(系统访问控制列表 - SACL)中生成条目。用户或组在这些安全描述符中通过其各自的 SID 进行标识,而且如前所述,本地用户帐户(内置帐户,如 Administrator、Guest 等除外)的 SID 由计算机 SID 和 RID 组成。
安全描述符更新的第一部分发生在计算机中的所有 NTFS 系统文件上。将扫描每个安全描述符以查找计算机 SID。当 NewSID 找到一个 SID 时,就会用新的计算机 SID 替换它。
安全描述符更新的第二部分在注册表上执行。首先,NewSID 必须确保已经扫描了所有配置单元,而不只是扫描了已加载的那些配置单元。当用户登录时,每个用户帐户都具有一个作为 HKEY_CURRENT_USER 加载的注册表配置单元,而当用户未登录时,该注册表配置单元将保留在磁盘的用户配置文件目录中。NewSID 标识所有用户配置单元位置的方法是枚举 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList 项,该项指向存储了这些配置单元的目录。然后,它使用 RegLoadKey 将这些配置单元加载到注册表中 HKEY_LOCAL_MACHINE 的下面,并且扫描整个注册表,检查每个安全描述符以查找旧的计算机 SID。这些更新的执行方式与文件更新相同,而且在更新完成时,NewSID 将卸载它所加载的用户配置单元。最后一步,NewSID 扫描 HKEY_USERS 项,该项包含 .Default 配置单元以及当前登录用户的配置单元。这一步是必要的,因为一个配置单元不能加载两次;所以,当 NewSID 正在加载其他用户配置单元时,不会将登录用户配置单元加载到 HKEY_LOCAL_MACHINE 中。
最后,NewSID 必须更新 ProfileList 子项以便引用新的帐户 SID。为了使 Windows NT 帐户能够在更改 SID 以反映新的计算机 SID 后正确地将配置文件与用户帐户相关联,需要执行此步骤。
NewSID 通过给予自身以下权限,确保它能够访问和修改系统中的每个文件和注册表项:系统、备份、还原和取得所有权。
返回页首
1.8 使用源代码
本文作者已提供了 NewSID 的完整源代码,以便用于教学目的。禁止在商业产品和免费的 SID 更改软件产品中使用这些代码,但允许在其他专用或商用程序中使用其技术。
http://download.sysinternals.com/Files/NewSid.zip

修改系统SID的方法

1 前言
SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。Windows 2003 中的内部进程将引用帐户的 SID 而不是帐户的用户或组名。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的 SID 号。安全标识符也被称为安全 ID 或 SID。
2 SID的作用
用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。

3 SID号码的组成
如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。

一个完整的SID包括:
 用户和组的安全描述
 48-bit的ID authority
 修订版本
 可变的验证值Variable sub-authority values
例:S-1-5-21-310440588-250036847-580389505-500
我们来先分析这个重要的SID。第一项S表示该字符串是SID;第二项是SID的版本号,对于2000来说,这个就是1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。
4 SID重复引发的域管理问题
如果使用镜像工具拷贝建立的系统,会因为SID重复而导致加入到域后出现异常,如下图所示:

这样登录就会出现问题,故此,需要修改SID。
注:引发的其他问题及详细说明请参考NewSID4.1
5 修改SID
微软为了提供对批量安装操作系统(比如RIS、BDD)的支持,在收购SysInternals之后,推出了基于NTSID、修改SID及相关引用的工具――NewSID,目前最新版本是4.1。
下载地址:http://download.sysinternals.com/Files/NewSid.zip
关于4.1的说明请参考另外一篇帖子NewSID4.1,这里仅给出如何使用基于GUI的操作过程。


可以使用自己指定的SID,建立规则参考前面部分,默认是使用随机生成的SID,推荐使用。

附带了修改机器名称的功能。








修改完成后,NewSID会把系统中引用该SID的地方一一修改,安装的软件越多,修改时间就会越长;默认完成后自动重起。



6 注意事项
 尽量在副本系统创建之后就进行SID修改工作,不要等到加入域后再修改
 对已建立成为域控制器的机器(DC)未作过有效测试,使用要慎重。

[转载]扩大esx上vm的硬盘空间

在esx上如果你的vm,使用空间不够,最简单的办法,就是给这个vm添加块硬盘,就和普通机器一样。这个过程vm是不需要关机的。

通常我的做法是,创建一个2003的vm,给他6G的空间,就一个盘,作为系统盘,把它做成模板。这样你就可以通过模板发布了。可以通过给这个vm添加硬盘的方式解决空间问题。

不过现在如果我希望扩大我的系统盘的空间,那么我们可以这样做

ssh到服务器上,进入那个vm的目录下

vmkfstools -X 10G aaa.vmdk

容易犯的错误,认为增加4g就可以到10G

vmkfstools -X 4G aaa.vmdk

结果是错误的,所以大家记住,X后的那个是最终的大小。


运行完命令后,那个文件就改成10G

盘是扩大了,但系统盘还是原来的大小,怎么调整系统盘的大小呢。有2种方法

方法1,使用调整分区大小的软件

http://hi.baidu.com/chenshake/blog/item/2b004a2cc0fac2ee8a139998.html

启动vm,安装这个软件,你就可以调整了。

方法2,使用微软自带的工具diskpart

但这个工具是不能调整启动盘的大小的,所以采用变通的办法,把这个vm的disk,挂到另外一个vm上,启动另外一个vm,在上面运行diskpart,来调整这个vm的第二块硬盘的空间。再删除第二块硬盘。

http://www.vmprofessional.com/index.php?content=2k3resize

下面是过程截图














看看结果,启动vm

[转载]网络未连接或启动

互联网可以上去,但是局域网访问会出现“网络未连接或启动”的错误提示,

也无法更改网络标识,这种故障是网络服务没有启动所致。

可以通过开始-运行-services.msc进入“服务”窗口,启动Server、workstation和

computer browser服务。

如果“服务”窗口窗口找不到这两项服务,那么就需要在网络邻居-本地连接的

属性里面卸载并重装“microsoft 网络客户端”,“microsoft 网络的文件和

打印机共享”,“internet 协议(tcp/ip)”三项组件。

[转载]XP下使用2003的“管理工具”中的“远程桌面”

方法一:
安装2003中的adminpak.msi,远程桌面可用了,但是附带也安装了一大堆

的管理工具;

方法二:
1、从Windows Server 2003 %systemroot%\system32\下拷贝 mstsmmc.dll

和 mstsmhst.dll 到 Windows XP System32目录下;
2、在Windows XP 上运行: Regsvr32 mstsmmc.dll 和 Regsvr32

mstsmhst.dll,确认注册DLL文件成功;
3、在Windows XP 上运行 MMC,然后添加“远程桌面”管理单元即可使用

,可以保存MSC文件以备后用。

方法三:
用远程桌面连接输入了完全的信息和设置后,你可以将其另存为rdp文件,

然后用记事本或者其他文本编辑程序直接打开该rdp程序,修改rdp文件,将头

部几行替换为

screen mode id:i:1
desktopwidth:i:1000
desktopheight:i:700
session bpp:i:15
winposstr:s:0,1,1,11,9999,9999

保存后,然后打开这个rdp文件就能够直接连接到服务器,并且用自己指定

长宽度,像这个信息里面就是让远程桌面连接窗口为1000*700,这样在1024*768

的桌面环境上,打开一堆1000*700的窗口还是挺方便切换的

注意上文中“远程桌面”和“远程桌面连接”是两个不同的工具。

2008年12月2日星期二

FAQ: SQL2000 - Log shipping

http://support.microsoft.com/kb/314515/EN-US/

Frequently asked questions - SQL Server 2000 - Log shipping
View products that this article applies to.
This article was previously published under Q314515
On This PageSUMMARY
MORE INFORMATION
Log shipping set up
Log shipping security considerations
Log shipping monitoring
Log shipping role change
Log shipping removal
REFERENCES
Expand all | Collapse all
SUMMARYThis article discusses several aspects of log shipping and answers the most comm...This article discusses several aspects of log shipping and answers the most commonly asked questions regarding setup, security, monitoring, role-change and the removal of log shipping in SQL Server 2000 Enterprise Edition.
Back to the top
MORE INFORMATIONLog shipping in SQL Server 2000 provides a means of establishing a warm back up...Log shipping in SQL Server 2000 provides a means of establishing a warm back up solution by using the SQL Server Maintenance Plan Wizard. Transaction log backups from a database can be automatically shipped to a different server and applied to a standby database. You can use the standby database to perform read-only operations (depending on the load state).
Log shipping set up
Q1: What edition of SQL Server do I have to have to set up log shipping?

A1: The following matrix shows the edition of SQL Server that is required for the three components that participate in log shipping:
Collapse this tableExpand this table
Component Edition of SQL Server required
Primary Server Enterprise or Developer Edition
Secondary Server Enterprise or Developer Edition
Monitor Server Any Edition


Q2: What do I have to do before I start the log shipping set up through SQL Server Enterprise Manager?

A2: Here is the list of what you must do before you start log shipping in SQL Server 2000.


Either start SQL Server and SQL Server Agent services under a domain account or configure the relevant primary, secondary and monitor servers for pass-through security (see question three in this heading for more information).
You can set up log shipping from any computer that has SQL Server Enterprise Manager (SEM) installed. You must register all computers that are running SQL Server that function as servers, which are intended to be the secondary servers, through SEM, on the computer from which log shipping is going to be set up.
Create a folder on the primary server for the transaction log back ups. You can create this folder anywhere on the primary computer. There must be enough free disk space on the drive on which you place the folder to hold at least one days worth of transaction log back ups. The exact space required is not easy to predict because it depends on the size and frequency of the transaction log back ups for the database. Microsoft recommends that you create a different folder for each database that you log ship.
Share the folders you created in the previous step. Make sure that you grant READ and CHANGE permissions to the Microsoft Windows NT accounts under which SQL Server and SQL Server Agent services are started for the servers that participate in log shipping. If you use pass-through security, grant these permissions to the local Windows NT account, under which the SQL Server related services are started.
Remove or disable any transaction log back up jobs on the databases that will be log shipped. This includes any third party back up jobs.
Q3: Do I have to start SQL Server related services under a domain account as opposed to a local Windows NT account?

A3: It is possible to configure SQL Server services to start under a local Windows NT account, unless SQL Server is configured to run as a virtual server in conjunction with Microsoft Cluster Service. You can use Windows NT pass-through security for this purpose. Follow these steps to configure pass-through security:
Create a Windows NT account on the primary, secondary and monitor computers with the same name and passwords.
Configure SQL Server related services to start under these Windows NT accounts on all computers.
The SQL Server services must be started under a domain account if SQL Server is configured to run as a virtual server with Microsoft Cluster Service. Even if SQL Server is a virtual server, Microsoft recommends that you use a domain account to start the services when SQL Server computers are in a domain. You gain the following advantage by having SQL Server related services start under a domain account:
Change of password for the SQL Server start up account will not result in a failure of log shipping jobs. To successfully continue log shipping in a pass-through security situation, all the servers must have the password changed for the Windows NT start up account, at the same time.
Q4: Where can I set up log shipping from?

A4: In SQL Server Enterprise Manager, right-click the database for which log shipping has to be set up, and then click Maintenance Plan. In the Welcome dialog box, click Next. Click to select the Ship the transaction log to other SQL Servers (log shipping) check box. The check box indicates to the SQL Server Maintenance Plan Wizard that this database must have log shipping. You can perform this step from a client that has SQL Server Enterprise Manager installed.

Q5: Why is the log shipping check box sometimes dimmed in the Maintenance Plan dialog box?

A5: The check box can be dimmed for one of the following reasons:
Multiple databases might be selected for the Maintenance Plan.
The database that is selected is not in the Full or Bulk Logged Recovery model.
SQL Server 2000 Enterprise Edition is not installed on the server.
Q6: Why does the log shipping set up fail while performing the initial configuration?

A6: There are several reasons that may cause the log shipping set up to fail. At this time there is at least one known problem that causes this behavior. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
298743 (http://support.microsoft.com/kb/298743/ ) BUG: All changes may not be rolled back when Log Shipping Maintenance Wizard fails
Q7: Are the table schema and database file structure changes propagated to the secondary server?

A7: In SQL Server 2000, all table schema and database file structure changes are logged operations. However, if a new NDF or LDF file is added to the primary database, the transaction log restore job fails while loading the transaction log backup that was performed immediately after the database file was added to the primary database. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
286280 (http://support.microsoft.com/kb/286280/ ) Description of the effect to database recovery after you add or remove database files
Q8: Can I script log shipping?

A8: No. Currently, it is not possible to script log shipping. The only supported means of setting up log shipping is through the wizard as described in question 4 of this section.

Q9: Can I set up log shipping between servers in multiple domains?

A9: Yes. It is possible to set up log shipping between servers that are in separate domains. There are two ways to do this:
Use pass-through security. Configure Windows NT accounts with the same name and passwords on the primary, secondary and monitor servers. Configure SQL Server related services to start under these accounts on all servers and use SQL authentication while setting up log shipping to connect to the monitor server. -or-


Use conventional Windows NT security. You must configure the domains with two-way trusts. SQL Server related services can be started under domain accounts. Either SQL authentication or Windows authentication can be used by jobs on the primary and secondary servers to connect to the monitor server. All other requirements are the same as explained in question 2 of this section.
Q10: Can I configure primary and secondary servers to use SQL authentication to connect to the monitor server?

A10: Yes. It is possible to use either Windows or SQL authentication for primary and secondary servers to connect to the monitor server. Microsoft recommends that you use Windows authentication for this purpose. However, if it is not possible to use Windows authentication, you can use SQL authentication. SQL Server will create a "log_shipping_monitor_probe" account on the primary, secondary and monitor servers, if it does not already exist, with the password specified when you set up log shipping. If SQL authentication is used for log shipping, you must configure SQL Server on the primary, secondary and monitor servers to use Mixed Mode authentication.
Log shipping security considerations
Q1: If I make the "guest" account unavailable before setting up log shipping, and I want my secondary database to be in a standby state, how can I allow users to have access to the secondary database (enforcing the same security model as the primary server)?

A1: The "guest" account must not be removed from SQL Server for any reason. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
315523 (http://support.microsoft.com/kb/315523/ ) Removal of the guest account may cause a 916 error in SQL Server 2000 SP4 or a handled exception access violation in earlier versions of SQL Server 2000
However, you can can make the "guest" account unavailable for databases where there might be security concerns. Because the secondary database is in a standby state, it is not possible to use the sp_change_users_login (http://msdn2.microsoft.com/en-us/library/aa259633(SQL.80).aspx) stored procedure to re-map the logins appropriately. To enforce the same security model on a standby database, create the logins on the secondary server by using the same security identifier (SID) value as the primary server. Read the following Microsoft Knowledge Base article for more information about creating logins with the same SID values:
303722 (http://support.microsoft.com/kb/303722/ ) How to grant access to SQL logins on a standby database when the guest user is disabled in SQL Server
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
321247 (http://support.microsoft.com/kb/321247/ ) How to configure security for SQL Server log shipping
Q2: What does sp_resolve_logins do?

A2: At the time of the log shipping role change, the sp_resolve_logins (http://msdn2.microsoft.com/en-us/library/aa238877(SQL.80).aspx) stored procedure requires a BCP file of the syslogins system table from the primary server. This stored procedure loads the BCP file into the temporary table and loops through each login to verify if a login with the same name exists in the secondary server's syslogins system table. It then checks to see if the SID value for this login exists in the secondary database's sysusers system table. It finally checks to see if the SID value in secondary database's sysusers system table is not the same as the SID value in the secondary server's syslogins table. If these checks are satisfied, the sp_resolve_logins stored procedure runs the sp_Change_users_login stored procedure for that login, and fixes the SID in the secondary database's sysusers system table. Execution of this stored procedure is required only if there are new logins created on the primary server after log shipping has been initialized and those same logins are not created on the secondary servers with the same SID (as described in Microsoft Knowledge Base article Q303722).

Q3: The sp_resolve_logins stored procedure runs successfully; however, it does not perform the expected modifications to the security on the secondary server. Why?

A3: The sp_resolve_logins stored procedure requires an up-to-date BCP file of the primary server's syslogins system table. These logins must already by created on the secondary server. If these two conditions are met, the sp_resolve_logins stored procedure performs the modifications to the sysusers system table in the secondary database.

Q4: Do I have to run a Transfer Logins DTS task in conjunction with the sp_resolve_logins stored procedure before performing the role change?

A4: Yes. You must use the Transfer Logins task to make sure that the logins exist in the syslogins system table on the secondary server. This does not guarantee that the user can use the secondary database (if the secondary database is loaded in standby mode). If the user has to use the secondary database before performing the log shipping role change, see question 1 in this section.

Q5: Does the sp_resolve_logins stored procedure work for remote logins in SQL Server?

A5: No. The sp_resolve_logins stored procedure only works for typical logins. Any remote logins must be created manually on the secondary server.
Log shipping monitoring
Q1: Log Shipping Backup and Out of Sync alerts are firing, even when the secondary server is updated with the transaction log backups. Is this possible?

A1: Yes. It is possible that the alerts might fire even when the secondary database is being updated. If the alert threshold is set to a value less than double the time between back up and copy or restore jobs, the alerts might be raised. If the alerts are being raised and the threshold is close to or less than two times the time between subsequent backup and copy or restore jobs, go ahead and increase the threshold.

Q2: Why do the transaction log backups fail to restore on the secondary server?

A2: Transaction Log backups can only be restored if they are in a sequence. This sequence is determined by the LastLSN and FirstLSN fields that are returned by the RESTORE HEADERONLY (http://msdn2.microsoft.com/en-us/library/aa238455(SQL.80).aspx) command. If the LastLSN field and the FirstLSN field do not display the same number on consecutive transaction log backups, they are not restorable in that sequence. There may be several reasons for transaction log backups to be out of sequence. Some of the most common reasons are:
There are redundant transaction log backup jobs on the primary server that are causing the sequence to be broken.
There are non-logged operations performed in the database. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
272093 (http://support.microsoft.com/kb/272093/ ) Description of the effects of nonlogged and minimally logged operations on transaction log backup and the restore process in SQL Server
The recovery model of the database was probably toggled between transaction log backups.
The Data Transformation Services (DTS) task on the primary server might be causing this problem. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
308267 (http://support.microsoft.com/kb/308267/ ) FIX: DTS Copy Objects Task (DMO) breaks transaction log backup chain by switching recovery mode to Simple during transfer
Q3: Where can I find information about errors while performing back up, copy or restore operations?

A3: To get more information about a particular log shipping pair, follow these steps:
Open SQL Server Enterprise Manager, and then connect to the monitor server.
Under Management, click Log Shipping Monitor. In the right window pane, all the log shipping pairs are displayed (that have been configured with this server as the monitor server). If the log shipping pair is not visible, right-click the Log Shipping Monitor (under Management), and then click Refresh.
Right-click the log shipping pair that you want information about, and then click View Backup History to view the back up job history.
Right-click the log shipping pair, and then click View Copy/Restore History to view the history for copy and restore jobs.
Right-click the log shipping pair, and then click Properties to view the current log shipping status, Source, and Destination alert status.
Q4: Does the file name first_file_000000000000.trn indicate that the copy or restore job was unsuccessful?

A4: Each run of the copy and restore job is associated with at least one file. By default, if no files are copied or restored in a certain run of any of these two jobs, SQL Server places first_file_000000000000.trn in the file name field. This may or may not indicate a problem. For example, the very first time that copy or restore jobs are run on the secondary server, there might not be any files available to copy or restore. In this case, first_file_000000000000.trn does not necessarily represent an error. However, under certain circumstances, this might represent a problem. Read the following Microsoft Knowledge Base article for more information:
292586 (http://support.microsoft.com/kb/292586/ ) Backup, copy, and load job information is not updated on the log shipping monitor
Q5: Is it possible to modify the frequency and destination of the transaction log backups, on the primary server, after log shipping has been operational for a while?

A5: Yes. This information is in the Maintenance Plan on the primary server. To view the information, follow these steps:
Double-click the Maintenance Plan on the primary server for the database for which this information must be modified.
Click the Transaction Log Backup tab. Modify the destination and frequency in the dialog box.
Because the copy job on the secondary server is expecting to copy transaction log backups from the share specified at the time log shipping was set up, this job might fail after modifying the target folder for the transaction log back ups. For more information about how to work around this problem, read the following article in the Microsoft Knowledge Base:
314570 (http://support.microsoft.com/kb/314570/ ) Cannot modify backup network share after you change the transaction log backup folder
Log shipping role change
Q1: How do I perform a log shipping role change?

A1: Click the following link to read the SQL Server 2000 Books Online topic about performing a log shipping role change:

How to set up and perform a log shipping role change (Transact-SQL) (http://msdn2.microsoft.com/en-us/library/aa215392(SQL.80).aspx)

Q2: Can I perform a role change while the primary server is offline or unavailable?

A2: Yes. Running the sp_change_primary_role (http://msdn2.microsoft.com/en-us/library/aa259617(SQL.80).aspx) stored procedure on the primary server is optional.

Q3: Why does the sp_resolve_logins stored procedure fail with error message 208 when run from the secondary database at the time of a role change?

A3: The sp_resolve_logins stored procedure does not qualify the sysusers system table with the master database prefix. This is a known problem with the code for the sp_resolve_logins stored procedure. For more information about this problem, read the following article in the Microsoft Knowledge Base:
310882 (http://support.microsoft.com/kb/310882/ ) BUG: sp_resolve_logins stored procedure fails if executed during log shipping role change
Q4: Is there a problem when promoting a secondary server to be a primary server, when there are multiple secondary servers involved in a role change?

A4: Read the following Microsoft Knowledge Base article about a known problem that can cause errors while performing a role change that involves multiple secondary servers:
300497 (http://support.microsoft.com/kb/300497/ ) FIX: Log shipping: Cannot change role from secondary to primary when database names are different
Q5: How can I re-establish log shipping after promoting the secondary server to be the primary server?

A5: If the Allow database to assume Primary role check box is selected, while setting up log shipping, in the Add Destination Database dialog box, follow these steps to add a new secondary server after performing a role change. If the setting was not selected, use the Maintenance Plan Wizard to set up log shipping after a role change.
Open SQL Server Enterprise Manager, and then connect to the promoted primary server. Register the server that you intend to add as the secondary server.
Expand Management (in SQL Server Enterprise Manager), and then click Maintenance Plans. Right-click the appropriate Maintenance Plan from the list, and then click Properties.
Click the Log Shipping tab, and then click Add.
Provide the appropriate information regarding the secondary server about this dialog box, and then click OK. This will add the new secondary server to log shipping.
Q6: How can I continue to log ship to the former primary server without restoring a database backup?

A6: It is possible to log ship between two servers repeatedly without having to restore the complete database backup. The requirement is that both the primary and secondary servers are available when you perform the role change procedure. As part of performing the role change, you must run the sp_change_primary_role (http://msdn.microsoft.com/en-us/library/aa259617.aspx) stored procedure. You must run the sp_change_primary_role stored procedure with a @final_state parameter of either 2 or 3. This will leave the primary database in an unrecovered state after performing the transaction log back up. Because the database is left in an unrecovered state, this database can be selected when the log shipping destination is added (as explained in the previous question). This way you do not have to reload a database backup.
Log shipping removal
Q1: How can I stop log shipping for a particular log shipping pair?

A1: Follow these steps to remove a log shipping pair:
Open the SQL Server Enterprise Manager on the primary server. Expand Management, and then click Maintenance Plan. Right-click the Maintenance Plan, and then click Properties.
Click the Log Shipping tab, and then click to select the log shipping pair that you want to remove.
Click the Delete command button to remove this pair from log shipping. If this is the last pair in log shipping, clicking Delete removes log shipping. If you want to continue log shipping to a different server or to a database, click Add. Then, click to select the appropriate server or database to act as the secondary server before you remove the existing log shipping secondary.
Q2: Is there a problem with removing log shipping for a database that has special characters in it's name?

A2: Read the following Microsoft Knowledge Base article, which discusses this problem in more detail:
295936 (http://support.microsoft.com/kb/295936/ ) FIX: Error removing log shipping on secondary database when database name has a quote
Back to the top
REFERENCES
For more information about log shipping, visit the following Microsoft Web sites:
How to setup log shipping (white paper)
http://support.microsoft.com/support/sql/content/2000papers/LogShippingFinal.asp (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fsupport%2fsql%2fcontent%2f2000papers%2flogshippingfinal.asp)
Log shipping
http://msdn2.microsoft.com/en-us/library/aa213785(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa213785(SQL.80).aspx)
275146 (http://support.microsoft.com/kb/275146/ ) Frequently asked questions - SQL Server 7.0 - Log shipping
Didn't see an answer to your question? Visit the Microsoft SQL Server Newsgroups at:
Microsoft SQL Server Newsgroupshttp://www.microsoft.com/communities/newsgroups/en-us/ (http://www.microsoft.com/communities/newsgroups/en-us/)
Comments about this or other Microsoft Knowledge Base articles? Drop us a note at SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com) .

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
917544 (http://support.microsoft.com/kb/917544/ ) BUG: You receive an error message when you run the "Log Shipping Alert Job - Restore" job in SQL Server 2000
Back to the top

--------------------------------------------------------------------------------

APPLIES TO
Microsoft SQL Server 2000 Enterprise Edition
Microsoft SQL Server 2000 Developer Edition
Back to the top
Keywords: kbinfo KB314515

Back to the top