存档

‘Windows’ 分类的存档

apache支持下载docx,pptx,rar等文件

2014年10月25日 没有评论

apache web服务器的站点,下载pptx,docx,xlsx文件,却被浏览器当作zip文件保存。

这不是浏览器的问题,而是apache不认docx,pptx,,xlsx等Microsoft Office 2007+的文件格式,而这些文件本身是zip压缩文件,所以被apache当作zip压缩文件发给浏览器了。

做个形像一点的比喻:浏览器请求一个url路径,这个路径指向一个.pptx文件,apache从web服务器的目录(磁盘上)查到这个文件,但它不知道这个文件是什么类型(注意:文件类型并不是由文件名后缀决定的,而是文件本身内容所决定),于是它通过分析这个文件内容,发现这个文件像是个zip压缩档,文件大小为12345字节,于是它给浏览器说:“嘿,你请求的是个zip压缩文件,它的大小为12345个字节,文件名是 abcd.pptx 。下面是这个文件的内容,请接收”

浏览器收到消息后,得知apache要发给自己一个zip压缩档,于是一边弹出对话框、询问用户是直接打开、还是保存到硬盘,一边把apache接下来发回的数据保存到缓冲区(或者保存到硬盘的临时目录里),等用户做好选择后,采取相应的打开或是保存的操作。

形象的说明,并不是十分准确的,但大体过程如此。

那现在的问题在于apache因为不认识这个pptx文件,那我们要教会apache,让它知道。我们可以通过mime.types文件让告诉它:

修改mime.types文件,在其中加上

application/vnd.ms-word.document.macroEnabled.12 docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-powerpoint.template.macroEnabled.12 potm
application/vnd.openxmlformats-officedocument.presentationml.template potx
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
application/vnd.ms-excel.addin.macroEnabled.12 xlam
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
application/vnd.ms-excel.template.macroEnabled.12 xltm
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
这样的一部分代码,这里包含了ms office相关的很多文件类型。

mime.types文件位置

那mime.types文件在什么位置呢?

对于windows版本的apache,它在apache安装目录下的conf子目录里,典型位置为 X:\Program Files\Apache Group\Apache2\conf\mime.types

而linux版本下,通常位于/etc/mime.types, 如redhat/centos/fedora都是如此,debian/ubuntu系列应该也在这里,个人没有亲自查证。

不过centos并不推荐在这里修改,参看这里 http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-apache-config.html TypesConfig一小节

Instead of editing /etc/mime.types, the recommended way to add MIME type mappings is to use the AddType directive.

建议不要去修改 /etc/mime.types ,添加MIME type的推荐方法是使用apache的 AddType 指令.

AddType application/vnd.ms-word.document.macroEnabled.12 docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-powerpoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
可以把这些指令加到apache的配置文件里,该指令在apache里出现过N次,不需多说,照着加进去就对了。

rar怎么支持呢?其实也很容易。找一下zip然后在zip支持下加一条一样的。把zip改成rar重启apache就可以了。

MySQL 配置优化

2014年10月25日 没有评论

安装MySQL后,配置文件my.cnf在 /MySQL安装目录/share/mysql目录中,该目录中还包含多个配置文件可供参考,有my-large.cnf ,my-huge.cnf, my-medium.cnf,my-small.cnf,分别对应大中小型数据库应用的配置。win环境下即存在于MySQL安装目录中的.ini文件。

下面列出了对性能优化影响较大的主要变量,主要分为连接请求的变量和缓冲区变量。

1. 连接请求的变量:

1) max_connections
MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。

数值过小会经常出现ERROR 1040: Too many connections错误,可以过’conn%’通配符查看当前状态的连接数量,以定夺该值的大小。

show variables like ‘max_connections’ 最大连接数

show status like ‘max_used_connections’响应的连接数

如下:

mysql> show variables like ‘max_connections‘;

+———————–+——-+

| Variable_name | Value |

+———————–+——-+

| max_connections | 256  |

+———————–+——-+

mysql> show status like ‘max%connections‘;

+———————–+——-+

| Variable_name  | Value |

+—————————-+——-+

| max_used_connections | 256|

+—————————-+——-+

max_used_connections / max_connections * 100% (理想值≈ 85%)

如果max_used_connections跟max_connections相同 那么就是max_connections设置过低或者超过服务器负载上限了,低于10%则设置过大。

2) back_log
MySQL能暂存的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用。如果MySQL的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

back_log值指出在MySQL暂时停止回答新请求之前的短时间内有多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。

当观察你主机进程列表(mysql> show full processlist),发现大量264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大back_log 的值了。

默认数值是50,可调优为128,对于Linux系统设置范围为小于512的整数。

3) interactive_timeout
一个交互连接在被服务器在关闭前等待行动的秒数。一个交互的客户被定义为对mysql_real_connect()使用CLIENT_INTERACTIVE 选项的客户。

默认数值是28800,可调优为7200。

2. 缓冲区变量

全局缓冲:

4) key_buffer_size
key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%’获得)。

key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。

举例如下:

mysql> show variables like ‘key_buffer_size‘;

+——————-+————+

| Variable_name | Value |

+———————+————+

| key_buffer_size | 536870912 |

+———— ———-+————+

key_buffer_size为512MB,我们再看一下key_buffer_size的使用情况:

mysql> show global status like ‘key_read%‘;

+————————+————-+

| Variable_name  | Value |

+————————+————-+

| Key_read_requests| 27813678764 |

| Key_reads   | 6798830 |

+————————+————-+

一共有27813678764个索引读取请求,有6798830个请求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:

key_cache_miss_rate =Key_reads / Key_read_requests * 100%,设置在1/1000左右较好

默认配置数值是8388600(8M),主机有4GB内存,可以调优值为268435456(256MB)。

5) query_cache_size
使用查询缓冲,MySQL将查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。

通过检查状态值Qcache_*,可以知道query_cache_size设置是否合理(上述状态值可以使用SHOW STATUS LIKE ‘Qcache%’获得)。如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。

与查询缓冲有关的参数还有query_cache_type、query_cache_limit、query_cache_min_res_unit。

query_cache_type指定是否使用查询缓冲,可以设置为0、1、2,该变量是SESSION级的变量。

query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M。

query_cache_min_res_unit是在4.1版本以后引入的,它指定分配缓冲区空间的最小单位,缺省为4K。检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小query_cache_min_res_unit。

举例如下:

mysql> show global status like ‘qcache%‘;

+——————————-+—————–+

| Variable_name | Value  |

+——————————-+—————–+

| Qcache_free_blocks  | 22756  |

| Qcache_free_memory  | 76764704 |

| Qcache_hits      | 213028692 |

| Qcache_inserts     | 208894227 |

| Qcache_lowmem_prunes | 4010916 |

| Qcache_not_cached | 13385031 |

| Qcache_queries_in_cache | 43560 |

| Qcache_total_blocks | 111212  |

+——————————-+—————–+

mysql> show variables like ‘query_cache%‘;

+————————————–+————–+

| Variable_name      | Value  |

+————————————–+———–+

| query_cache_limit      | 2097152 |

| query_cache_min_res_unit  | 4096   |

| query_cache_size      | 203423744 |

| query_cache_type      | ON  |

| query_cache_wlock_invalidate | OFF  |

+————————————–+—————+

查询缓存碎片率= Qcache_free_blocks / Qcache_total_blocks * 100%

如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果你的查询都是小数据量的话。

查询缓存利用率= (query_cache_size – Qcache_free_memory) / query_cache_size * 100%

查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。

查询缓存命中率= (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%

示例服务器查询缓存碎片率=20.46%,查询缓存利用率=62.26%,查询缓存命中率=1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。

每个连接的缓冲

6) record_buffer_size
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。

默认数值是131072(128K),可改为16773120 (16M)

7) read_rnd_buffer_size
随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。

一般可设置为16M

8) sort_buffer_size
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。

默认数值是2097144(2M),可改为16777208 (16M)。

9) join_buffer_size
联合查询操作所能使用的缓冲区大小

record_buffer_size,read_rnd_buffer_size,sort_buffer_size,join_buffer_size为每个线程独占,也就是说,如果有100个线程连接,则占用为16M*100

10) table_cache
表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用SHOW STATUS LIKE ‘Open%tables’获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。

1G内存机器,推荐值是128-256。内存在4GB左右的服务器该参数可设置为256M或384M。

11) max_heap_table_size
用户可以创建的内存表(memory table)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态改变,即set @max_heap_table_size=#

这个变量和tmp_table_size一起限制了内部内存表的大小。如果某个内部heap(堆积)表大小超过tmp_table_size,MySQL可以根据需要自动将内存中的heap表改为基于硬盘的MyISAM表。

12) tmp_table_size
通过设置tmp_table_size选项来增加一张临时表的大小,例如做高级GROUP BY操作生成的临时表。如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。

mysql> show global status like ‘created_tmp%‘;

+——————————–+———+

| Variable_name   | Value |

+———————————-+———+

| Created_tmp_disk_tables | 21197 |

| Created_tmp_files   | 58  |

| Created_tmp_tables  | 1771587 |

+——————————–+———–+

每次创建临时表,Created_tmp_tables增加,如果临时表大小超过tmp_table_size,则是在磁盘上创建临时表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服务创建的临时文件文件数,比较理想的配置是:

Created_tmp_disk_tables / Created_tmp_tables * 100%

默认为16M,可调到64-256最佳,线程独占,太大可能内存不够I/O堵塞

13) thread_cache_size
可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。

通过比较 Connections和Threads_created状态的变量,可以看到这个变量的作用。

默认值为110,可调优为80。

14) thread_concurrency
推荐设置为服务器 CPU核数的2倍,例如双核的CPU, 那么thread_concurrency的应该为4;2个双核的cpu, thread_concurrency的值应为8。默认为8

15) wait_timeout
指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。

3. 配置InnoDB的几个变量

innodb_buffer_pool_size

对于InnoDB表来说,innodb_buffer_pool_size的作用就相当于key_buffer_size对于MyISAM表的作用一样。InnoDB使用该参数指定大小的内存来缓冲数据和索引。对于单独的MySQL数据库服务器,最大可以把该值设置成物理内存的80%。

根据MySQL手册,对于2G内存的机器,推荐值是1G(50%)。

innodb_flush_log_at_trx_commit

主要控制了innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,取值分别为0、1、2三个。0,表示当事务提交时,不做日志写入操作,而是每秒钟将log buffer中的数据写入日志文件并flush磁盘一次;1,则在每秒钟或是每次事物的提交都会引起日志文件写入、flush磁盘的操作,确保了事务的ACID;设置为2,每次事务提交引起写入日志文件的动作,但每秒钟完成一次flush磁盘操作。

实际测试发现,该值对插入数据的速度影响非常大,设置为2时插入10000条记录只需要2秒,设置为0时只需要1秒,而设置为1时则需要229秒。因此,MySQL手册也建议尽量将插入操作合并成一个事务,这样可以大幅提高速度。

根据MySQL手册,在允许丢失最近部分事务的危险的前提下,可以把该值设为0或2。

innodb_log_buffer_size

log缓存大小,一般为1-8M,默认为1M,对于较大的事务,可以增大缓存大小。

可设置为4M或8M。

innodb_additional_mem_pool_size

该参数指定InnoDB用来存储数据字典和其他内部数据结构的内存池大小。缺省值是1M。通常不用太大,只要够用就行,应该与表结构的复杂度有关系。如果不够用,MySQL会在错误日志中写入一条警告信息。

根据MySQL手册,对于2G内存的机器,推荐值是20M,可适当增加。

innodb_thread_concurrency=8

推荐设置为 2*(NumCPUs+NumDisks),默认一般为8

MySQL忘记密码恢复密码的解决方法

2014年8月24日 没有评论

流传较广的方法,mysql中文参考手册上的,各位vps主机租用客户和服务器托管用户忘记mysql5.1管理员密码时,可以使用这种方法破解下

一、服务器环境
1、系统windows2003 中文企业版 sp2
2、mysql 5.1.55
3、php 5.2.17
4、IIS 6.0
二、破解过程
1、停止mysql服务(以管理员身份,在cmd命令行下运行)使用如下命令:
net stop mysql

2、.使用命令启动mysql数据库,命令如下

mysqld --skip-grant-tables 或者 mysqld-nt --skip-grant-tables

 

3.新开一个cmd窗口,进行如下命令操作
1、mysql -uroot
2、update mysql.user set password=password(‘root123456′) where user=’root’;

root123456就是你新的root密码。

4、打开任务管理器,停止mysql,mysqld进程,使用net start mysql启动mysqld服务,就可以使用root用户 root密码进入数据库了(这步可以省略重启机器)
至止,win下破解密码就到这里了。以下是一些系统下的其他办法。

据说可以用直接修改user表文件的方法:
关闭MySQL,Windows下打开Mysql\data\mysql,有三个文件user.frm,user.MYD,user.MYI找个知道密码的MySQL,替换相应的这三个文件,如果user表结构没改过,一般也没人去改,替换user.MYD就可以了。
也可以直接编辑user.MYD,找个十六进制编辑器,UltraEdit就有这个功能。关闭MySQL,打开user.MYD。将用户名root后面的八个字符改为565491d704013245,新密码就是123456。或者将它们对应的十六进制数字,(左边那里,一个字符对应两个数字),改为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开MySQL,输入root和你的新密码。
今天有点事要进mssql,因为是很久以前装的,所以忘记了sa的密码,虽然用windows身份验证就可以进,但是如果用php连接mssql时就不行了,于是google了一下,找到了解决方法.

用windows身份验证机制进去,然后
输入下列命令,执行:
exec sp_password null,’newpass’,'sa’

示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码更改为 123
EXEC sp_password NULL,’123′,’sa’

B.更改密码
下面的示例将登录 Victoria 的密码由 123 改为 456
EXEC sp_password ’123′,’456′

另外我发现了一个问题,那就是windows和SQL Server身份验证机制有些不同
windows身份验证

服务器地址 登陆结果
127.0.0.1 ok
localhost wrong
. ok

SQL Server身份验证

服务器地址 登陆结果
127.0.0.1 ok
localhost wrong
. wrong

另外记录一下忘记mysql 密码的取回方法
如果 MySQL 正在运行,
首先杀之: killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之)
以安全模式启动 MySQ:
/usr/bin/safe_mysqld –skip-grant-tables &
(windows 下 mysql安装所以盘/mysql/bin/safe_mysqld –skip-grant-tables )
就可以不需要密码就进入 MySQL 了.
然后就是
>use mysql
>update user set password=password(“new_pass”) where user=”root”;
>flush privileges;
重新杀 MySQL,用正常方法启动 MySQL.

linux下的解决方法:

一. MySQL密码的恢复方法之一
如果忘记了MySQL的root密码,可以用以下方法重新设置:
1. KILL掉系统里的MySQL进程;
killall -TERM mysqld
2. 用以下命令启动MySQL,以不检查权限的方式启动;
safe_mysqld –skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;
mysql> flush privileges;
mysql> quit
重新启动MySQL,就可以使用新密码登录了。
二. MySQL密码的恢复方法二
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复
1. 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld –skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD(‘newpassword’) where User=’root’;
mysql> flush privileges;
mysql> quit
重新启动MySQL
/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。

windoe下的解决方法:

1、编辑MySQL的配置文件:my.ini
一般在MySQL安装目录下有my.ini即MySQL的配置文件。
在此配置文件的最后添加如下一行:
skip-grant-tables
保存退出编辑。

2、然后重启MySQL服务
在命令行下执行:
net stop MySQL
net start MySQL

3、设置新的ROOT密码
然后再在命令行下执行:
MySQL -u root -p MySQL或mysql -u root -p
直接回车无需密码即可进入数据库了。
此时,在命令行下执行 use mysql;
现在我们执行如下语句把root密码更新为:
update user set password=password(“root”) where user=”root”;
(注意:此时不用使用mysqladmin -u root -p password ‘你的新密码’这条命令修改密码,因为’skip-grant-tables’配置,
不信的话,你可以试用一下,它肯定会报如下所示的错误:
F:\Documents and Settings\long>mysqladmin -u root -p password ‘root’
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use ‘password’ command as mysqld runs
with grant tables disabled (was started with –skip-grant-tables).
Use: “mysqladmin flush-privileges password ‘*’” instead)
exit 退出MySQL。

4、还原配置文件并重启服务

然后修改MySQL配置文件把刚才添加的那一行’skip-grant-tables’删除。
再次重起MySQL服务,密码修改完毕。
用新密码root试一下吧,又能登入重新进入mysql了.

windows 2008R2的系统补丁放在哪个文件夹里面

2014年1月4日 没有评论

windows 2008R2的系统补丁目录”C:\Windows\SoftwareDistribution\Download”

ps:这个自动存系统补丁的目录不知道能不能改到其他盘。c盘经常给这个目录占用几十G,做个批处理定时清理吧。没用的文件。

本地用户和组 下边在该文档中引用的管理单元受到策略限制

2013年12月31日 没有评论

今天在做一台服务器安全时出了点问题,估计是之前管理员设置了安全的问题,在计算机管理里面 本地用户和组不见了。。。

本地用户和组不见了|组策略管 理单元受到策略限制gpedit.msc配置管理模板。在“计算机管理”没有本地用户和组,运行“lusrmgr.msc”系统提示说:下面在该文档中引用的管理单元受到策略限制,运行“Control userpasswords2”选“高级”再选“高级”系统提示和上边的一样。
网上找了好久,总结了一下,有三个办法,结果就有一个有效。。
1.试了下这个方法,对我的一点影响多没有。。无效。。。
开启server服务
开始,运行,regsvr32 /u msxml3.dll 弹出框后确定,再打regsvr32 msxml3.dll 重新注册一下msxml3.dll,应该就可以了 另外还有一个更绝的,把全部dll重新注册一遍: 开始,运行,cmd,粘贴这样一句话: for %1 in (%windir%\system32\*.dll) do regsvr32.exe
2.试了下,权限确实要重新设置
运行regedit查看注册表HKEY_LOCAL_MACHINE\SAM\SAM\DOMAINS\Accout\Users\Names 查看不明账号删除如果到了SAM\SAM后没显示项,在SAM-右键-权限-administrator勾选完全控制和读取-确定或administrator高级–编辑-在”允许”框中选择”写入DAC”及”读取控制”–确定。重启后就见到选项了。
3.这个对我的问题有效
运行“gpedit.msc”打开组策略
在用户配置/管理模板/windows组件/Microsoft Management Console/受限的、许可的管理单元下面看到“本地用户和组”,双击并把它设为允许,即可。
且在该目录下有磁盘管理,设备管理器等管理单元可以选择,管理单元受到策略限制这个错误应该多可以在这个里面解决。

win2008 64位系统下[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

2013年8月2日 没有评论

这两天新安装了台服务器需要调试个以前老的网络游戏服务端。因为很早了,所以在win下现在一般用来考机测试用。因为一开起来cpu就会自己飚到40%左右。是个很好的测试考机程序。一直使用。
系统环境: win2008 r2 sp1 bit64
 
但很奇怪的事情出现了。因为服务端是读取的是access数据库,运行服务端时提示:

Fatal Error IM014: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和
应用程序之间的体系结构不匹配
连接ODBC驱动器…

打开管理工具中的odbc工具也是提示出错,不支持mdb。
经查需要下载支持软件 Microsoft Access Database Engine 2010 下载地址 :

http://www.microsoft.com/zh-cn/download/details.aspx?id=13255

下载对应的64位的版本。安装后就会有Access 的OLE DB Provider。完成后运行 C:\Windows\SysWOW64\odbcad32.exe 重新载入新的32位版本的对应mdb驱动就可以了。(如果是要支持64位。应该运行系统默认的。。。)

ok,再次运行服务端,运行正常。

Windows 2008 Update错误80072EE2的解决方法

2013年8月1日 没有评论

今天给客户新安装了台win2008r2sp1的64位系统的台湾服务器。做好安全打补丁时发现以下问题:
windows update提示无法更新。错误80072EE2。经查可按以下办法进行排查解决问题。

1、停止windows update服务

进入“控制面板”下的“系统和安全”,单击打开“管理工具”,

双击“服务”,找到“Windows Update”服务,右键单击该服务,然后单击“停止”。

2、删除windows update更新临时文件

进入系统所在磁盘,进入windows文件夹,找到打开目录下的SoftwareDistribution 文件夹(或者直接复制这段地址粘贴到资源管理器的地址栏进入文件夹C:\Windows\SoftwareDistribution)。删除DataStore 和Download 文件夹下的所有文件。

3、重新启动电脑或是服务器后

按照步骤1中的步骤右键单击windows update服务,打击“启动”。(默认是已经自动启动了)

windows批量添加用户(转)

2013年7月12日 没有评论

从命令行键入:

  FOR /L %i in (1,1,500) DO NET USER MyUser%i /ADD
  结果将创建 500 个新用户,分别命名为 MyUser1、MyUser2…,依此类推。
2.也可以用ADDUSERS.EXE命令。ADDUSERS.EXE的语法结构如下:
  addusers[\computername]{/c[p:{l|c|e|d}]|/d|/e}filename[/s:x][/?]
  其中:
  \computername:欲加入账号的计算机名称,如无指定则为本地计算机。
  /c:由filename文件的指定建立用户、本地域组或全局组
  /p:在该自变量后的四个参数l,c,e,以及d的组合设置账号的选项,说明如下:
  l:用户需在下次登录时变更密码。
  c:用户无法变更密码。
  e:密码永远有效。
  d:账户已停用。
  /d:将整个用户账户、本地域组、全局域组写至filename文件中,但是不会将用户密码或有关安全的数据一并写出。
  /e:将filename中所指定的用户账户予以删除,但一样无法删除内建用户账号。
  filename:用来当作输入/输出的文件名称,而其输入的格式如下:
  [user]用户名称,全名,密码,描述,主磁盘机,主文件夹,配置文件,指定文件。
  [global]全局组名称,描述,用户1,用户2,……
  [local]本地域组名称,描述,用户1,用户2,……
  /s:x:规划文件中的分隔符号,若无指定则为“,”。
  /?:显示addusers.exe的语法结构。

解决由于下列错误,tcp/ip protocol driver 服务启动失败的问题

2013年6月10日 没有评论

今天客户要求重启下服务器系统,操作重启了后发现ping不到也无法远程。当然客户回复是:“之前没有操作过什么系统的东西。”接显示器发现有系统服务无法正常运行。查看日志得到以下几个错误:

1.由于下列错误,tcp/ip protocol driver 服务启动失败

2.下列引导或系统启动驱动 程序无法加载 tcpip

通常这种错误不是由于改了系统x:\windows\system\drivers文件tcpip.sys文件就是此文件及相关dll系统文件给篡改造成的。解决办法可以先试从正常对应版本的win系统把文件复制过来覆盖此文件,重启系统,即可修复。如以上办法还无法完成可以试下以下办法(转):

具体方法:WinXP/2000/2003下如何重装TCP/IP协议针对某一个流氓软件写出它的清除办法,所以首先需要把它分离出来。在做的过程中,TCP/IP协议有问题了,用LSPFix修复未果,后来索性重装了一个TCP/IP协议,我想这个办法自己手工操作就可以了,应该比用工具下载容易,具体方法如下:(Windows XP下测试通过)

1、开始——运行——regedit.exe,打开注册表编辑器,删除以下两个键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2

2、用记事本打开%winroot%\inf\nettcpip.inf文件,找到:
[MS_TCPIP.PrimaryInstall]
Characteristics = 0xa0 <——把此处的0Xa0改为0×80 保存退出 (如果是2000系统,这里已经是0×80了,跳过此步)

3、打开本地连接的TCP/IP属性—添加协议——从磁盘——浏览找到刚刚保存的nettcpip.inf(%winroot%\inf\nettcpip.inf)文件,然后选择“TCP/IP协议”(不要选择那个TCP/IP 版本6)。
经过这一步之后,又返回网络连接的窗口,但这个时候,那个“卸载”按钮已经是可用的了。点这个“卸载”按钮来把TCP/IP协议删除,然后重启一次机器。

4、重启后再照着第3步,重新安装一次TCP/IP协议便可。记得把INF文件改回来再重新安装,不然老是报告未经验证什么的。

5、再重启一次,这时应该可以了。

如果以上方法还不行,可以用以下命令来试试:
重置TCP/IP协议:netsh interface ip reset c:\reset.txt
具体参数可以查看帮助 netsh /?
Netsh commands for Interface IP可以使用 Netsh 接口 IP 上下文中的命令配置 TCP/IP 协议(包括地址、默认网关、DNS 服务器和 WINS 服务器)并显示配置和统计信息
这个命令还是比较好用的!我已经试验过了!

还有一种情况是因为非法关机引起系统文件tcpip.sys损坏,从而导致TCP/IP Protocol Driver 驱动损坏。
解决办法:恢复tcpip.sys文件 (到正常同系统中COPY该文件到指定系统文件位置来进行恢复。位置(XP)X:\windows\system32\drivers,2000及以前版本则是X:\windows\system\drivers目录)

ps: 以上办法一般都能解决这类tcpip服务的问题。如果还不行建议重装下系统。更为快捷。

IIS 关闭 HTTPERR

2013年5月18日 没有评论

今天客户反映说远程登录服务器后,发现服务器的C盘满了,记得已经把日志移动到D盘了,怎么C盘容量还在不断减少,不断排查,发现 C:\WINDOWS\system32\LogFiles\HTTPERR 目录下有大量log文件,占用了大量空间,C盘满的原因就是这个目录的文件引起的。

  默认情况下,Windows 2003服务器会把所有IIS访问错误的记录写入该目录下的 log 文件中,如果访问量比较大,可能一段时间后,日志文件就会占满C盘空间,导致服务器死机。

关闭HTTPERR目录日志文件的方法是:

一、关闭HTTPERR的方法:
  运行 regedit
  找到
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
  在右边 右键 新建dword值 EnableErrorLogging
  ”EnableErrorLogging”=dword:00000000
  重启IIS后不再写入HTTPERR日志文件.
  二、修改存储目录也不失为一个好的办法HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  在下面建立一个字符串值.即REG_SZ
  数值名称 命名为: ErrorLoggingDir
  数值数据 为你指定的路径 比如 D:\LogFiles