今天收到领导电话,说一封很重要的邮件被群发出去了,想尽快撤回以避免造成重大损失,问我有没有办法。
该出现的问题还是会出现,这个问题我早就考虑过,没想到这么快就来了。
经过5个小时的努力,终于解决,特此处记录以备忘。
--===------------------------------------------===---
首先需要2个软件必不可少:
1、PsEXEC:感谢Sysinternals,我N>10年的伙伴,提供了这个工具,使我可以获得system权限。
win2000时代的取得system权限的工具psu.exe可能在xp及2003下不好用了吧,再也不能取得system权限。
利用at命令倒是可以取得system权限,但是程序不能和用户交互 ,尽管我用了/interactive参数,且Services.msc里面的“task schedular”也启用了交互。
命令应该不会错,如下:
psu -p cmd -i 4 //4就是默认的system进程的进程ID,也可以缺省。执行后用taskmgr观察新产生的cmd进程,是administrator权限而非system。
at 12:23 /interactive cmd //在12:23启动cmd,taskmgr观察有cmd进程,且system权限,但是 /interactive 并没有生效,尽管“服务”里面的“任务计划”允许交互。
最后还是从Sysinternals下载了Sysinternals Suit,里面的PsEXEC可以解决问题:
psexec -i -s -d cmd //于是得到了一个system权限的cmd,就可以执行exmerge程序实现从exchange server中导出数据到pst中。
2、ExMerge:
这个工具是做备份exchange服务器用户数据之用,也可以将私人文件夹pst文件的数据导入到exchange server中。
将exchange数据导入的pst中,也就删除了exchangeserver上的邮件,注意要有筛选条件,一般是“时间”和“主题”。
你可以从这里下载这个软件,按照wizard来很容易搞定。
注意:ExMerge必须以system权限运行,即时administrator一样没有权限,所以这就是为什么提上面的PsEXEC程序的原因。
注意:outlook发件箱里面提供的“收回”并不可靠,实际是利用发送第二个邮件,用户开第二个邮件自动删除第一个邮件的方式,参看这里具体了解。
就写这些吧,真的很辛苦呀。