联想Think系列PC与笔记本的驱动和软件更新

  联想前不久声明将变更用户获取驱动和软件更新的方式,针对单机使用 TVT System Update 软件(TVSU)自动更新的用户, 联想将于2009年4月1日起停止提供相应的软件及驱动的自动下载升级服务。英文网站上已经能够下载所提到的替代用Lenovo Message Center Plus软件。不过该软件安装后没有提供任何用户自己执行的方式(运行后无GUI),并且网友Nicolas He留言希望了解用update retriever来配合system update的信息。我个人倾向于使用绿色的Thin Installer, 在此把目前用的方式简单介绍下(相关软件都在这里):

   1. 下载安装update retriever, 安装运行后首先要设置存储位置,可以是本地或网络共享等。个人机升级的话当然就选个本地文件夹了,如果是公司的话可以指定一个文件服务器的位置如\\192.168.0.3\Think

   2. 添加要下载驱动与软件更新的机型、操作系统、与语言,机型只需要Type号的前4位,如T60系列的问部分机型是2007, 根据所选的操作系统与语言,下一步之后可以再选择要下载的驱动或软件。另外还可以设置自动下载更新等,这里就不多提了。之前漏了非常重要的一点,下载的更新需要在更新视图中,把状态从“测试”修改为“活动”才行(谢谢Nicolas He提醒)

   3. 下载Thin Installer, 默认安装在C:\Program Files\ThinInstaller, 并且是完全绿色的,不建立任何快捷方式。我们可以自己给thininstaller.exe在桌面建立一个快捷方式,并且在快捷方式的属性中给目标程序启动添加参数,如目标显示为  "C:\Program Files\ThinInstaller\ThinInstaller.exe" -repository C:\MyRepository 。最后的路径就是Update Retriever中所指定的存储位置(注意路径有空格的话要用引号括起来)

   这样只要update retriever下载了相应机型\系统\语言的更新,就可以使用thin installer指定存储仓库位置来进行更新。在公司里,把拥有的机型数据都下载到统一的文件服务器上,并且自己打包一个thin installer的自解压包(自动建立包含参数快捷方式),就可以很方便的安装驱动与软件了。

   如果一定要使用TVT System Update来自动更新,可以参照 PDF 文档中  Chapter 3. Configurations  →  Configuring System Update  →  Configuring System Update with the registry   →  Repository configurations  的说明来配置。简单说就是配置注册表下面位置的内容

HKLM\SOFTWARE\Lenovo\System Update\Preferences\UserSettings\General\RepositoryLocation1

Posted in Blogroll | 1 Comment

本地组策略与安全策略的自动导入

   昨天接到一个需求,由于公司要求服务器要部署必需的一些安全策略,但是对于未加入域的服务器希望能有一个便捷的部署办法。

    首先,提取出需要部署的策略中能通过组策略或安全策略实施的项如表所示(部分演示):

序号 要求
1

“密码必须符合复杂性要求”选择“已启动”

2

“密码最长存留期”设置为“90天”

3

“账户锁定阀值”设置为小于或等于 6次

4

“从远端系统强制关机”设置为“只指派给Administrtors组”

5

“关闭系统”设置为“只指派给Administrators组”

6

“取得文件或其它对象的所有权”设置为“只指派给Administrators组”

7

审核登录事件,设置为成功和失败都审核。

8

“审核策略更改”设置为“成功” 和“失败”都要审核

9

“审核对象访问”设置为“成功”和“失败”都要审核

10

“审核目录服务器访问”设置为“成功” 和“失败”都要审核

11

“审核目录服务器访问”设置为“成功” 和“失败”都要审核

12

“审核系统事件”设置为“成功” 和“失败”都要审核

13

“审核账户管理”设置为“成功” 和“失败”都要审核

14

“审核过程追踪”设置为 “失败”需要审核

15

“Microsoft网络服务器”设置为“在挂起会话之前所需的空闲时间”为15分钟。

16

启用屏幕保护程序,设置等待时间为“5分钟”,启用“在恢复时使用密码保护”。

17

所有驱动器均“关闭自动播放”

    上表中前15项属于安全策略,第16项属于组策略中的计算机配置策略,第17项属于用户配置策略。下面仅对Windows 2003平台的操作进行了分析与测试。

    一、 对于安全策略,可以用以下步骤进行应用部署:

::在测试用机上,先使用gpedit.msc手工更改策略(如表中前15面),再用以下命令导出当前策略

secedit /export /cfg sec.inf

::用文本编辑器编辑sec.inf文件,去除不需要调整的内容,仅保留要定制策略

表中15条策略对应的inf文件内容如下:

[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[System Access]
MaximumPasswordAge = 90
PasswordComplexity = 1
LockoutBadCount = 6
[Event Audit]
AuditSystemEvents = 3
AuditLogonEvents = 3
AuditObjectAccess = 3
AuditPrivilegeUse = 3
AuditPolicyChange = 3
AuditAccountManage = 3
AuditProcessTracking = 2
AuditDSAccess = 3
[Registry Values]
machine\system\currentcontrolset\services\lanmanserver\parameters\autodisconnect=4,15
[Privilege Rights]
seremoteshutdownprivilege = *S-1-5-32-544
seshutdownprivilege = *S-1-5-32-544
setakeownershipprivilege = *S-1-5-32-544

::用命令生成一个sdb文件

secedit /import /db  sec.sdb  /cfg sec.inf /overwrite

::用命令把定制策略更新到目标服务器,不能用/overwrite参数,否则除定制策略外的其它策略丢失

secedit /configure /db sec.sdb

::刷新组策略

gpupdate /force

    二、其他组策略的应用

    以前曾经研究过利用gpcvreg与gpscript命令行程序来应用组策略,并且写了autoit3脚本的UDF,这次正好可以利用。
     使用gpedit.msc在测试机修改16\17两条策略,在不关闭gpedit.msc的同时用regedit查看HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects下,分析得到相应设置并存成Reg文件

machine.reg, 禁用所有驱动器自动播放

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000FF

user.reg,定制屏幕保护设置

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop]
"ScreenSaverIsSecure"="1"
"ScreenSaveActive"="1"
"ScreenSaveTimeOut"="300"
"SCRNSAVE.EXE"="scrnsave.scr"

    三、批量应用脚本

    有了sec.sdb、machine.reg及user.reg文件,然后利用以前写的poledit.au3 UDF ,只需要以下脚本就可以进行前文所列出的策略的自动应用了。

#RequireAdmin

#NoTrayIcon

#include "PolEdit.au3"

 

If FileExists("sec.sdb") Then  RunWait(@ComSpec & " /c " & "secedit /configure /db sec.sdb", @ScriptDir, @SW_HIDE)

 

_RegWriteToPol("machine.reg", "MACHINE", 1)

 

_RegWriteToPol("user.reg")

 

_gpupdate()

Posted in AutoIt | Tagged , | Leave a comment

Code Snippet 插件2.0运行时错误

今天偶然发现Windows Live Writer的Code Snippet插件在3月份更新为2.0版本了,而且竟然支持AutoIt语法。不过更新之后却出现下面的报错信息

Code Snippet插件报错截图

根据网上查找的结果显示,要么开发者在打包安装文件前包含相应汇编信息,要么就得单独安装vs_piaredist.exe。单独的vs_piaredist.exe还真不好找,最后是从BBeBinder这个软件的安装包中提取的。为方便起见在这里也放一份。

Download File - vs_piaredist
Posted in Blogroll | Tagged , , , | Leave a comment

无线配置辅助工具Zwlancfg

办公区的WLAN将要升级,新WLAN采用的WPA2加802.1X PEAP验证的模式。为了方便用户建立新的连接设置,到网上搜索完全自动进行添加SSID及配置的方法。好不容易找到一个比较好的命令行工具,共享给大家。
Zwlancfg
官方网站:http://www.engl.co.uk/products/zwlancfg
最新版本3.0已经是收费软件,并且旧版freeware都不再提供下载。百度不到,google到的结果也没任何下载的地方。最后是在autoit论坛请有用过免费版的网友发给我的,非常难得。
ENGL Zwlancfg 2.1.0.0
=====================      
* QUICK INFO
  ENGL Zwlancfg is a command line driven Windows utilty that can configure a
  wireless network card without user interaction.
* REQUIREMENTS
  Zwlancfg has been tested on the following configurations:
  + Windows XP Professional SP2 (requires Microsoft hotfix KB918997)
  + Windows XP Professional SP3
  + Windows Vista SP1

SkyDrive下载

Posted in Blogroll | Leave a comment

本地组策略编辑UDF:poledit.au3

    要通过脚本来进行组策略自动修改,没有官方的直接接口。以往所见到的方法一般是通过备份并覆盖registry.pol文件来实现本地策略的自动更改。经过一段时间的查找,终于找到一个命令行工具gpscript.exe,并通过gpcvreg.exe的配合可以直接把reg文件转换成对组策略的更改。为了便于在AutoIt脚本中使用,把这两个命令行工具集成为一个UDF,命名为poledit.au3。

    当前版本:0.2.0.0    下载及固定更新地址

    当前包括以下2个函数:

    ;读取包含策略定义内容的reg文件,并写入指定的组策略文件中
    ; $PolFile     可以是 MACHINE 或 USER 或者某个POL文件的完整路径
    ; $Backup      在更新策略文件前先建立策略文件的备份(加.bak扩展名,会覆盖以前的备份)
_RegWriteToPol($sRegfile, $sPolfile = "USER", $Backup = 0)

    ;刷新组策略,以便立即生效。仅支持XP及2K
_gpupdate()

Posted in AutoIt | Leave a comment

SATA驱动版本导致PE启动问题一例

    前不久公司有新电脑到货,型号是HP 2230s。因办公需要必须安装XP,结果手头的几个PE版本都不能正常启动。一开始因为这个型号的笔记本BIOS是UEFI设成兼容模式使用的,怀疑是BIOS兼容问题。又下载了好几个PE版本测试之后发现,居然是SATA驱动版本的兼容问题。

    HP 2230s的SATA控制器硬件ID是 PCI\VEN_8086&DEV_2929&CC_0106,INTEL芯片,INTEL iastor问题驱动版本是8.2.4。PE启动时会一直停在XP滚动进度条的时候,哪怕是把SATA控制器从AHCI调为IDE兼容模式也不行。最后更新PE,把iastor更新到8.6.0.1007之后启动就正常了。

    同时也趁这次机会把自己定制的PE启动盘重新调整了一下,核心缩小而功能不变,并且更新了一些外置程序等等。

    另外今天收到腾讯关于QQ影音安装程序静默安装参数的回复了。静默安装参数现在的1.0beta2已经可以用了,感觉挺怪——没见过这个格式的静默安装参数:

QQPlayer_setup.exe ##silence=1

Posted in Software | Leave a comment

使用MemoryDll.au3嵌入dll使AutoIt脚本能直接压缩解压缩

首先到官方论坛下载爱好者编写的UDF:memorydll.au3 ,下载地址http://www.autoitscript.com/forum/index.php?showtopic=77463&hl=dll

然后到http://www.csdinc.co.jp/archiver/lib/7-zip32.html 下载7-Zip32.dll, 最新4.57.001版

运行MemoryDllGen.au3,选择把7-zip32.dll转成代码,并命名为 $Dll7zip32,粘贴到脚本中。然后使用函数_SevenZipCMD()来进行压缩解压缩,命令行参数可以查阅www.7-zip.org的官方文档。

#include "MemoryDll.au3"

 

Func _SevenZipCMD($sCMDLine, $hWnd = 0)

    MemoryDllInit()

    Local $sOutput

    MemoryDllCall($Dll7zip32, "int", "SevenZip", "hwnd", $hWnd, "str", $sCMDLine, "str", $sOutput, "int", 0)

    Local $error = @error

    MemoryDllExit()

    If $error Then

        Return 0

    Else

        Return 1

    EndIfEndFunc   ;==>_SevenZipCMD

Posted in AutoIt | Leave a comment

evernote与Blog

使用evernote很久了(关于evernote请参考Xbeta的文章),主要是用来收集资料与记录自己的想法等。同时也可以把某个分支的内容共享出来,有点另类Blog的味道,让我犹豫是不是这里也不用更新了...

有兴趣可以看一下我摘录自瘾科技的这两篇http://www.evernote.com/pub/novirs/Blog

Posted in Freeware, Software | Tagged | Leave a comment

使用net user方式新建的用户如何不重启登录就初始化用户配置文件

在一个脚本中,使用了net user命令行来新建用户。同时希望通过注册表更改该用户的“我的文档”、“收藏夹”的存储位置等, 但这个用户在没有重启(或注销)并登录一次时, document and settings文件夹下的用户相应配置文件没有初始化。
记得微软的 SteadyState 软件中新建用户时,如果为用户指定配置文件存储在D或E盘等,能自动完成。用process monitor跟踪看了下,起初没看出来,昨天再次查看procmon的记录,发现steadystate在新建用户期间是由winlogon.exe来初始化用户的配置,由此想到或许是利用secondary logon服务来实现不重启但登录一次该用户。
使用命令行的runas 测试后发现果然可以,只不过写成脚本的话还需要考虑runas默认不支持空密码(需要手工输入密码)的问题,这个应该不难解决的了。

补充:
经测试在建立用户后使用如下Autoit3脚本,documents and settings下的test1目录就自动生成了:

;用test1用户身份命令行运行ping命令
RunAsWait("test1", @ComputerName,"test1",1,'"cmd.exe" /c ping 127.0.0.0.1 -n 1 -t 500',@SystemDir,@SW_HIDE)
 
 


要修改用户test1的注册表,还需要自行把documents and settings\test1\NTUSER.DAT加载为配置单元

Posted in AutoIt | Leave a comment

解决KBpublisher 2.0.1的中文搜索问题

KBpublisher是一个基于WEB的知识库程序,结构简单清晰。自从3.0版开始已经商业化了,但之前的2.1版是GPL授权。可以参见中国红网在线知识库

由于MySQL对中文全文搜索的支持问题,若要使用这个知识库,在从sf.net下载官方版本后需要对搜索语句作修改才能搜索中文。不过修改之后在大型应用时性能会较差。

打开kb\client\inc\KBClientSearchGenerator.php文件,

//用
$sql['where'] = "(e.title LIKE '%$str%' OR e.description LIKE '%$str%' OR e.filetext LIKE '%$str%') ";
//替换117行的
$sql['where'] = "MATCH (e.title, e.description, e.filetext) AGAINST ('$str' IN BOOLEAN MODE)";
 
//用
$w[] = "(f.title LIKE '%$str%' OR f.description LIKE '%$str%' OR f.filetext LIKE '%$str%') ";
//替换128行的
$w[] = "MATCH (f.title, f.description, f.filetext) AGAINST ('$str' IN BOOLEAN MODE)";
 
//用
$sql['where']  = "e.title LIKE '%$str%'";
//替换139行的
$sql['where']  = "MATCH (e.title) AGAINST ('$str' IN BOOLEAN MODE)";
 
//用
$sql['where']  = "(e.title LIKE '%$str%' OR e.body LIKE '%$str%' OR e.meta_keywords LIKE '%$str%' OR e.meta_description  LIKE '%$str%') ";
//替换158行的
$sql['where']  = "MATCH (e.title, e.body, e.meta_keywords, e.meta_description) AGAINST ('$str' IN BOOLEAN MODE)";
 
Posted in Software | Tagged | 2 Comments