2010年8月4日 星期三

[vmware]虛擬機器開機以服務自動啟動

一般服務在方式後,皆是以服務方式自動啟動,但是有些程式註冊成一支服務。比方我,我之前管理過WhatsUp,需要SMS簡訊發Alert,但這支程式每次開機後,都是重新手動執行,並且輸入註冊碼。
所以我將這支程式註冊成服務自動啟動。
請參考微軟官方文件編號137890如何建立使用者自訂服務
那麼虛擬主機在重新開機後,就可以利用此方法自動power on
以下以VMWare為例:
★說明:重新機後,自動啟動VMWare WorkStation上的Guest OS名為LANproxy
組態檔路徑為E:\VM\LANproxy\LANproxy.vmx

★步驟:
STEP1:安裝Windows Resource Kits 2003,切換至程式路徑後執行C:\Program Files\Windows Resource Kits\Tools>instsrv.exe VM_AUTO "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

指令說明: instsrv.exe <要建立的服務名稱>



STEP2:修改登錄檔,執行:regedit。切至
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VM_AUTO
新增/機碼,命名為Parameters。並在Parameters下在新增字串值Application,設定其資料為vmware啟動Guest OS的指令
"C:\Program Files\VMware\VMware Workstation\vmware.exe" -x "E:\VM\LANproxy\LANproxy.vmx"

指令說明:vmware -x <虛擬機器組態檔的絕對路徑>

STEP3:為了讓開機在背景執行
執行:services.msc,並修改VM_AUTO的服務
核取「允許服務與桌面互動」

 以上在XP上實作Ok,不過在Windows7有UAC的問題,我沒測出來,殘念!

2010年7月29日 星期四

[Windows]關閉系統預設的共享功能

在分享資料夾預設已分享了一些資料夾,如C$、Users
結尾字元含$表示只分享給系統管理者
為了加強系統安全
只要在登錄檔新增兩個屬性AutoShareServer、AutoShareWKs
設定dword為0就OK了
£做法如下
執行:regedit
STEP1、切至修改路徑
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]

STEP2、新增屬性、值
"AutoShareServer"=dword:00000000 //關閉預設的系統磁碟分享,ex:C$
"AutoShareWKs"=dword:00000000 //關閉預設的系統資料夾分享,ex:ADMIN$
請參考下圖:
新增->DWORD;分別設上AutoShareServer、AutoShareWKs
預設值就是0,不用改

SETP3、修改登錄檔,記得必須重新開機,才會生效。

修改前後驗證:
1、使用前

2、使用後

2010年7月16日 星期五

[Windows]Windows 開機時自動啟動 VirtualPC 中的 VM

最近為了解決 HP Server 會意外關機的情形,想說有些作業就改放在虛擬機器上面跑,來尋找是哪支程式會搞掛系統!因為 Server 是安裝 MS Windows Server 2003,所以想說就用 Virtual PC 2007 SP1 來跑 WinXP 好了。

因為是 Server,而且若是因為有問題要重新開機,那 Virtual PC 裡面的虛擬機器也要隨機器啟動才行。所以,當然要先詢問一下 Google 大帝囉!
參考:Super UserMSTech
原來 Vitual PC 的說明檔已經有寫啦!

所以就按照裡面所寫的方法,進行設定囉!這是我所寫的語法:
"C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -singlepc -pc WinXPSP3 -launch

接下來,就是在「控制台」中「排定的工作」進行設定囉!把語法直接放在「執行欄」中,
「工作排程」部分挑選「在系統啟動時」。

這樣子,在開機之後,WinXPSP3 這台虛擬機器也就被帶起來了。不過,有個小問題,就是沒法看到這台虛擬機器的 Console 介面!!這個問題,還得再找找看是否有解?所以,只能用遠端桌面連線了。

附上一些下指令可以做的動作:
將 VM 暫停:
"C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -singlepc -pc WinXPSP3 -pause

將 VM 從暫停中回復:
"C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -singlepc -pc WinXPSP3 -resume

將 VM 從 save status 中回復:
"C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -singlepc -pc WinXPSP3 -restore

2010年7月9日 星期五

[ASP.NET]UpdatePanel中使用LinkButton

在GridView中使用LinkButton,用LinkButton用onClick觸發連結
一切正常,但當加上使用UpdatePanel後,LinkButton就失效了。
後來看有人使用commandname的方式,試了仍不行。
而看了Page Life Cycle後,瞭解prerender是

定位在最後一個事件,這次終於成功了
//這裡的列出GridView中的LinkButton


//onprerender觸發事件
protected void lb_VLINK_PreRender(object sender, EventArgs e)
{
GridViewRow ROWSELECTED = ((LinkButton)sender).NamingContainer as GridViewRow;
LinkButton lb = (LinkButton)sender;
string vLINK = ROWSELECTED.Cells[7].Text;       //檔案位址

lb.Attributes.Add("onClick", "javascript:window.open('"+ vLINK + "');");

}

//另外補充,若要整列都有Link的效果(也就是在tr中點任何一個地方),可加上下面onClick事件
protected void gv_result_RowDataBound(object sender, GridViewRowEventArgs e)
{
string VLINK = e.Row.Cells[7].Text;
e.Row.Attributes.Add("onClick","javascript:window.open('" + VLINK + "')");
}