-
機器更名大作戰
-
公司啟動了新的資安規定,取消了DHCP,要求所有Client PC一律使用固定IP,且依公司所配發的名稱為電腦命名。
辦公室桌上的XPC SB81P是2003年底買的,跟著我流浪過三家公司,OS也一直沿用至今,沒再重灌過。這下被要求改名,沒法預先攤出需要更動的設定有哪些,只有先更名,再用打地鼠的方式,等問題自己冒出來,遇到一個解一個。
IP跟機器名稱改好重開機後,第一步就是試試機器上的各個功能是否正常。為了減少衝擊,我特別在lmhosts及host兩個檔案裡,將新的IP Mapping回我的舊電腦名稱,這樣本機的程式即使Sql Connection String或UNC指的還是舊Machine Name,可以完全不用更動,繼續運作。
不過,當我用IE開啟本機的WSS個人Portal時,第一關來了,IIS Web起不來,所有的Web處於停止狀態,要去啟動時,出現了” The format of the specified network name is invalid
“的錯誤訊息,然後系統事件簿中出現了
HTTP Error Event 15005
Unable to bind to the underlying transport for 10.0.15.91:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine.¡@ The data field contains the error number.
W3SVC Error Event 1004
Cannot register the URL prefix 'http://*:80/' for site '1'. The site has been deactivated.¡@ The data field contains the error number.
幸好,這兩個訊息非常明確,Google了一下就找到答案。這才想去前陣子為了Try SubVersion,裝了Apache HTTPD,所以指定了HKEY_LOCAL_MACHINE\Service\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList,讓出一個IP的80 Port給Apache用。ListenOnlyList的IP還是舊的,造成了Web無法啟動。修改Registry,再net stop http /y, net start w3svc一下,Web就可以啟動了。(注意要重啟HTTP,光IISRESET是沒有用的!)
Web Server OK了,此時第二關出現了。連上本機WSS時,出現大大的Server Application Unavailable訊息。幸好,Event Log中可以找到明確的錯誤:
W3SVC Warning Event 1057
The identity of application pool 'WSSPool' is invalid, so the World Wide Web Publishing Service can not create a worker process to serve the application pool.!@ Therefore, the application pool has been disabled.
W3SVC Error Event 1059
A failure was encountered while launching the process serving application pool 'WSSPool'. The application pool has been disabled.
原來是IIS Application Pools中開了一個WSS專用的App Pool,其中指定了MachineName\WSSAccount作為執行身份,現在電腦名稱改了,它沒跟著自動更新,就只有出錯的份了。改了Identity,WSS就OK了,SQL Connection的部分完全不需要改,看來是lmhosts發生功效!
晚上回到家,用VPN連回公司,第三關來了! 要用Terminal Service連上XPC時,卻發現無法連通,用ping、net use驗證了一下,機器活著,RPC是通的,看來是Windows 2003的內建防火牆作祟。之前設定過只有特定IP網段才能連上Terminal Service,這下IP改了,鎖定的網段卻沒調整,當然不通。不過,只有RPC可通,要如何解決這個問題呢?
雖然是睡一覺明天上班就可以解決的小事,但利用有限功能取得主機操作權的挑戰,實在太有駭客攻門的味道了,讓我的駭客基因蠢蠢欲動,頓時精神百倍!! 不過由於RPC可通,我又有Administrators權限,事實上並非難事。Google了一下,前後試了幾個方法:
1. netsh可以修改firewall設定,但我測試的結果似乎只能修改本機firewall,連結遠端主機時,無法使用firewall這個Command。
2. 如果遠端不可用netsh firewall,那麼telnet進去再執行總行了吧? 開啟”電腦管理”的MMC,再連至XPC(因為RPC可通),啟動了Telnet Server,卻發現Port 23被防火牆擋下來,第二波攻勢無功而返。
3. 再Google了一下,發現了一個好工具-sc.exe,可以控制遠端機器上的Service,利用sc \\MachineName stop SharedAccess,就可停用防火牆。Bingo! Terminal Service可用了。參考資料
這三隻地鼠應該只是先鋒部隊,後面幾週應該還有得打,就等遇到再說吧!
[Updated 2006-07-27 17:35]
又發現地鼠一隻... Scheduled Task中設定的Identity用的是本機帳號,前方會跟著機器名稱,機器更名後記得也要改,另外以此類推: COM+ Application、Window Service裡也可能有漏網之魚。
-
頭腦體操--解答版
-
有意思的邏輯推理小品,大家來挑戰一下,看多久可以解出來。
這題的難易看來挺適中的,據說有公司拿來當成程式設計師應徵的考題,哈!
P先生、Q先生都具有足夠的推理能力。
這天,他們正在接受推理面試。
他們被告知桌子抽屜裡有以下16張撲克牌:
紅心 A、Q、4
黑桃 J、8、4、2、7、3
梅花 K、Q、5、4、6
方塊 A、5
葉教授從這16張牌中挑出一張牌,
並把這張牌的點數告訴P先生,
把這張牌的花色告訴Q先生。
葉教授問P先生和Q先生: 你們能從已知的點數或花色中推知這張牌是什麼牌嗎?
P先生:"我不知道是哪一張牌。"
Q先生:"我想你一定不知道是哪張牌。"
P先生:"現在我知道是哪張牌了。"
Q先生:"我想我也知道了。"
請問:這張牌是什麼牌?
黑暗大師解題
這是一個設計精巧的推理小品,解題的過程中會發現一字一句都是線索,樂趣十足。
首先,16張牌可不是隨機洗出來的,裡面安排了一些伏筆,在後續推理時,能有效地篩掉部分選項,快速縮小可能選項的範圍。
開始推理前,要先記住三個重點:
1) P先生與Q先生都已知道有哪16張牌
2) 兩人都擅於推理
3) P先生只知點數,Q先生只知花色
以這三點做前題,配合後面的四句對話,答案就會浮現出來了!
1) P先生說他不知道是哪張牌
P先生只知點數,卻無法得知是哪張。表示這個點數不是孤鳥,同一點數應該有兩種以上的花色。所以可以排除黑桃J、8、2、7、3,梅花 K、6。
2) Q先生說他確定P先生一定不知道是哪張牌
Q先生只知道花色,唯有該花色的所有點數都不是孤鳥,Q先生才有自信判斷P先生還沒不知答案。而黑桃跟梅花中都存在數字孤鳥,若P先生知道的數字是孤鳥,則不用知道花色也知道是哪張牌。因此Q先生得知的花色不是紅心就是方塊,由於其中沒有任何數字孤鳥,Q先生才會這麼篤定P先生一定不知道答案。
3) P先生在聽到Q先生咬定他不知道是何張牌後,就知道了答案!
P先生可以像我們一樣引用2)的推理,就能得知花色不是紅心就是方塊,而接著他就知道答案。
所以黑桃與梅花都可以丟了,我們看看餘下的嫌犯:
紅心 A、Q、4
方塊 A、5
會是哪一張呢? 一定不是A,因為如果是A,就算知道花色,此時P先生也不能確定是紅心A或是方塊A,所以答案會是方塊5、紅心Q或4。
4) Q先生在知道P先生得知答案後,馬上也知道答案!
紅心 Q、4
方塊 5
經過三個問題,只剩三張牌。Q只知道花色,如果花色是紅心,則P知道的數字可能是Q也可能是4,Q先生此時不會知道答案。如果花色是方塊,就只剩方塊5一個嫌犯,這才能Q先生在此時確定答案。