I am an Escalation Engineer

What does a Microsoft Escalation Engineer do?

“If an Enterprise has a problem with it, we are the ones that are the last level, code level support. We’re the last step between the Serviceability team within Windows that would then provide hot-fixes.

One of the most rewarding things about this job is that it’s never the same thing twice.

If you have a question about Windows, there is nobody that knows more about Windows than this team collectively.

Not only are you trying to solve the problems but you also need to sort of manage your customers. If you’re talking to the CTO you might be a hostage negotiator.”

I like this jacket that I received as becoming an EE.

Long Live NT Debugging

A Brief Introduction of Outlook’s Architecture

When you are troubleshooting Outlook connectivity issues, you may be exposed to a lot of concepts, such as MAPI, RPC, etc. If you ever wonder what they are and how they fit together to make Outlook connectivity possible, you need to have a good understanding of Outlook’s architecture.

In general, there are several layers when it comes to Outlook connecting to a messaging system (like Exchange Server):

– Outlook
– MAPI Layer
– Service Provider Layer
– Transport Provider
– IP / Ethernet Layer

The interfaces between layers are COM interfaces. Each layer exposes one or more COM interfaces as well as methods on these interfaces.

For Outlook connectivity to work, each layer needs to function as expected. I made a simple graph and hope that it helps with understanding of these layers.

EMSMDB32 is a dll file you may have seen a lot if you have ever diagnosed Outlook connectivity issues.

EMSMDB is short for Electronic Messaging System Microsoft Database Provider. As its name implies, it’s a database provider. As such, it enables reading and writing messages to an Exchange store.

Since Outlook 2007, EMSMDB is also an address book provider as well as a transport provider. In other words, Outlook calls the methods provided by EMSMDB32 to access an Exchange store, to open the address book, and to submit messages to Exchange server.

Internally, the role of EMSMDB32 is to receive the calls from upper MAPI layers and convert them into ROP calls that are understood by Exchange.

The common methods provided by EMSMDB32 are EcDoConnect, EcDoDisConnect, EcDoRpcExt2, EcRRegisterPushNotification. At transport layer (RPC), each of these methods has a corresponding Operation number (OPNUM). For the details on this relationship, see MSDN article http://msdn.microsoft.com/en-us/library/ee178982(v=exchg.80).aspx

That’s some basic stuff about EMSMDB. Until next time.

不堪淘宝促销短信的骚扰,咋整?

双11期间,被淘宝店家的营销短信狂轰滥炸,不堪其扰,于是研究了一下。回复0000是个方法,可以屏蔽端口,但最一劳永逸的屏蔽方法应该是:登陆网页版点击头像进入账户设置,左侧选择网站提醒,下拉到最底端营销提醒,把勾选都取消即可

不堪淘宝促销短信的骚扰,咋整?

不堪淘宝促销短信的骚扰,咋整?

用Python+Selenium模拟键盘和鼠标操作,实现自动签到

用Python实现起来,很简单,二十行左右的代码就可以实现。

比方说,我想自动打开京东会员的网站,输入用户名和密码,点登录,然后点签到。

代码可以这么写:

GitHub源码:

https://github.com/TaylorHuang2017/JDAutoSignIn

 

# written by Taylor Huang
import time
from selenium import webdriver
from datetime import date

username = “yourusername”
password = “yourpassword”

driver=webdriver.Chrome()
driver.get(‘http://vip.jd.com’)

driver.find_element_by_link_text(‘账户登录’).click()
driver.find_element_by_id(‘loginname’).click()
driver.find_element_by_id(‘loginname’).send_keys(username)
driver.find_element_by_id(‘nloginpwd’).click()
driver.find_element_by_id(‘nloginpwd’).send_keys(password)
driver.find_element_by_id(‘loginsubmit’).click()
time.sleep(1)

try:
driver.find_element_by_id(‘signIn’).click()  #签到领京豆
print(“签到成功!”)
except:
print(“签到失败,可能是重复签到了,请检查.”)  # 若签到失败,打印错误信息

time.sleep(1)

if date.today().day == 5:
driver.find_element_by_class_name(‘gift’).click()  #每月5号领取礼包
print(‘每月5号领取礼包!’)

driver.get(“http://datawallet.jd.com/profile.html”)
driver.find_element_by_class_name(‘btn-sign’).click()  # 签到领流量
print(“领取流量成功!”)
print(‘签到结束!’)
driver.quit()  #签到成功,关闭浏览器并安静退出

我为什么选择RSS阅读?

过去,我们获取信息的方式是直接上某个网站。比如,我想看国际新闻,就上新浪看;想看奥运报道,就到搜狐奥运频道。这样的方式带来的问题是显而易见的。当你要关注的内容很多,比如,有10个网站的内容你都想关注,你需要都访问一遍,但问题是,你并不知道这10个里,哪些今天有更新哪些没有更新。为了不遗漏一条重要信息,你不得不一个一个地上去看。10虽然不是一个很大的数字,但是50, 100,呢?。。。

RSS作为一种高效获取信息的方式,出来很多年了。一个网站将最近更新的内容编写到一个独特的文件里,你只需要将这个文件获取,就能获取最新的内容,这就是RSS。 不幸的是,RSS一直被打压。究其原因,主要是无法给网站带来广告流量。流量就是金钱,所以有些网站很吝啬。但是,在信息过载的今天,我们每个人无时不刻被各种信息所吞没:微信、微博、电邮、网站、电子笔记等等。

想想看,你的微信上,有多少条公众号的消息还是未读的?

作为RSS的重度用户,我真心觉得有必要让更多的人知道它、了解它。

RSS的好处:

1、 你无需到信息源就可获取最新的内容, 在一个地方能获取所有想要的信息,效率大大提高,轻松自在 。
2、无广告(或几乎没有),节省了带宽开销,也节约了时间成本。
3、配合RSS阅读器,享受杂志一般精美的排版,不必忍受微信那糟糕的阅读体验(看个文章要点进去,然后退出来,再看其他文章;如果换个公众号,还要再切换。。。)
4、配合网络自动化神器IFTTT, 可以对RSS的信息做二次处理,实现互联网各个信息服务之间真正“互相打通”。实现一些譬如 Flickr 相册上传新图片后自动备份到 Dropbox,Feedly 加星标的文章自动保存到印象笔记里,当收到指定号码的短信自动发到邮箱,下雨天手机提醒带雨伞等功能。

过滤、个性化才是应对信息过载的解决之道。现如今,看微信/微博/网站上的文章,我只用RSS阅读器,感觉很方便、体验超级棒。

来用RSS吧~

 

忘记Excel文件保护密码,怎么解?

公众号“中国黑客联盟”曾经发布过一个三分钟视频,名为“禁止别人复制你的Excel表格只需一步, 99%的人都不知道” 。大意是说,通过添加保护工作表密码,能够禁止别人复制单元格的内容。但是,这样保护以后真的就万无一失了吗?

忘记Excel文件保护密码,怎么解?

非也!对于IT专业人士来说,这个密码形同虚设。

网上有不少方法,比如用第三方软件 Office Password Remover, 又或者通过VBA的宏进行反复猜测,原理就是brute force. 但这些方法耗时不说,对于高版本Excel,比如Excel 2016没有什么卵用。其实,你无需任何专用破解工具,仅用解压缩工具(如WinRAR,或者7-Zip)就能轻松解除Excel工作表密码保护的办法。忘记了密码也不要紧!

具体步骤如下:

  1. 鼠标右键单击设置了工作表密码保护的xlsx文件 (注意如果是Excel 2007之前的文件,文件扩展名后缀是*.xls,如果要应用此法,请用Excel 2010或更新版本的Excel打开,另存为*.xlsx格式)
  2. 在弹出菜单中,选择“打开方式”,“选择另一个程序”
  3. 从列表中选择解压缩工具,比如7-zip file manager,也可以是WinRAR等其他解压缩工具。
  4. 依次点击进入 xl -> worksheets. 该文件夹中保存着一些以xml结尾的文件,比如sheet1.xml

    忘记Excel文件保护密码,怎么解?

    忘记Excel文件保护密码,怎么解?

  5. 右键单击该文件,选择编辑。默认使用记事本打开,其实任何其他的编辑器都可以

    忘记Excel文件保护密码,怎么解?

  6. 在sheet1.xml文件中搜索password

    忘记Excel文件保护密码,怎么解?

  7. 将<sheetProtection password=***> 整个字段删除,如上图蓝色部分所示,具体位置以尖括号为界。
  8. 保存修改后,选择“确定”
  9. 退出7-zip。重新在Excel中打开此工作表,这时您就可以任意复制,或者修改单元格内容了。