2009年12月26日

一開啟 Excel 就執行某個巨集

要一開啟 Excel 就執行某個巨集,請依照下列步驟進行操作:
  1. 把您要執行的巨集寫於 personal.xls 這個檔案裡面
  2. 將上個步驟所建立的檔案儲存在 %programfiles%\Microsoft Office\<Office 版本>\XLStart 目錄中

2009年12月18日

如何在 Windows 7 簡易版或家用入門版,將「電腦」等圖示顯示在「桌面」上

在 Windows 7 簡易版家用入門版並沒有提供「個人化」快捷功能,來設定要顯示在桌面上的圖示,之所以如此,是因為這兩個版本沒有 Aero PeekAero Shake 功能。

在其他版本的 Windows 7 (家用進階版及更高階之版本)可透過「個人化」快捷功能或是執行下面的指令來開啟「佈景主題」便可一次就完成要在桌面上顯示哪些圖示的設定:
%systemroot%\system32\control.exe desk.cpl,Themes,@Themes
此外,也可逐一設定,此種設定方式,就不限定只能用於 Windows 7 家用進階版及更高階之版本才能使用。在此,以「使用者的文件」為例,進行操作說明:
  1. 按下「開始」按鈕
  2. 在使用者名稱上,按下滑鼠右鍵,選擇「顯示在桌面上」指令。

  3. 此時,「使用者的文件」便會出現在桌面上。

透過上述同樣的操作,可使「電腦」「控制台」之圖示顯示在桌面上。 唯需注意的是:使用上面的方式,無法將「網路」圖示顯示在桌面上。要如何解決,請見後續文章,即可知分曉。
附註:
一步一步的圖文解說設定之操作說明,可參考微軟網站:「一點通 - 如何在 Windows 7 簡易版或家用入門版,將 [電腦] 等圖示顯示在 [桌面] 上 (MVP撰寫)」一文。

如何進入 Windows Virtual PC 的 BIOS 設定畫面

位於 Windows Virtual PC 內的虛擬機器已經跟 Windows 7 無縫地(Seamlessly)整合在一起,因此只要一啟動虛擬機器,就會自動進入 GUI 介面。

那我們要如何設定虛擬機器裡的 BIOS 呢?

Windows Virtual PC 是可以允許我們進入 BIOS 並設定相關的參數,作法很簡單,就跟如何在 Windows Virtual PC 中,用光碟開機介紹的方法一樣,就是在看到「正在啟用整合功能…」對話方塊時,按下鍵盤上的 Shift + ESC,接著按下 Del 即可進入 BIOS 設定畫面。

附註:
一步一步的圖文解說設定之操作說明,可參考微軟網站:「一點通 - 如何進入 Windows Virtual PC 的 BIOS 設定畫面 (MVP 撰寫)」一文。

2009年12月13日

如何在 Excel 中,取得電腦名稱

在 Excel 中,取得電腦名稱,請使用 Environ$("ComputerName")

範例:

Sub HostName()
Dim strHN
strHN = Environ$("ComputerName")
MsgBox strHN
End Sub

2009年12月4日

如何在使用指令啟動 Microsoft SQL Server 服務時,順便指定啟動的參數

如欲於使用指令啟動 Microsoft SQL Server 服務時,順便指定啟動的參數,例如要以最小的組態狀態下,執行 SQL Server 執行個體。

因為以最低組態模式啟動 SQL Server 時,必須將 SQL Server 以單一使用者模式啟動才行。此時,我們就可以使用下面的指令來啟動 SQL Server 預設的執行個體:

net start "SQL Server (MSSQLSERVER)" /f /m
-或-
net start MSSQLSERVER /f /m

上面的指令是在 net start 陳述式的最後面,空一個空白,然後指定啟動的選項。要提醒大家的是,於使用 net start 啟動 SQL Server 時,必須將啟動選項使用斜線 (/) 來取代連字號 (-)。

以下面的指令為例,會於啟動 SQL Server Express 的執行個體時,關閉 SQL Server Express 的部分監視功能(例如:SQL Server 的效能監視器計數器、收集 DBCC SQLPERF 命令的資訊):

net start "SQL Server (SQLExpress)" /x
-或-
net start MSSQL$SQLExpress /x

2009年11月21日

如何在 Windows 7 使用指令完整安裝 IIS 7.5

Windows 7 的每種版本皆可安裝 IIS 7.5,但其內建的元件會不太相同,所以在不同版本的 Windows 7 安裝 IIS 7.5,其指令也不同。
開啟「命令提示字元」,然後依照不同的 Windows 7 版本,鍵入相對應的指令,再按下 Enter 鍵。

  • StarterHome BasicHome Premium,請使用下面的指令:
    start /w pkgmgr /l:iis /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI 

  • ProfessionalEnterpriseUltimate,請使用下面的指令:
    start /w pkgmgr /l:iis /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;IIS-WindowsAuthentication;IIS-ODBCLogging;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement

注意:

  1. 必須是 Administrators 群組的成員才有權限安裝 IIS。
  2. 安裝完畢可以開啟目前所在目錄的 iis.txt / iis.dpx / iis.perf 檔,以便察看安裝結果。如果不想產生這些檔案,請刪除指令中的 /l:iis。
  3. 亦可使用下面指令來察看安裝的回傳結果值,若是 0,則表示安裝成功:
    echo %errorlevel%
  4. 或是察看是否有出現預設的網頁:http://localhost/
  5. 除了用 pkgmgr 進行安裝之外,也可改用 Windows Vista 開始出現的 OCSetup.exe,例如:
    start /w OCSetup IIS-WebServerRole 

    使用這個指令最大的缺點就是,一次只能安裝一個元件。安裝元件的記錄檔為 %windir%\Logs\CBS\CBS.log。

2009年11月8日

如何使用 T-SQL 更改資料庫名稱

要更改資料庫名稱,除了透過 SQL Server 圖形化的管理介面(SQL Sever Enterprise Management、SQL Server Management Studio 或 SQL Server Management Studio Express),還可以透過下面的 T-SQL 指令:
USE master;
GO
-- 切換至單人模式
EXEC sp_dboption <欲更名的資料庫名稱>, 'Single User', True;
GO
-- 更名資料庫
EXEC sp_renamedb '<欲更名的資料庫名稱>', '<新的資料庫名稱>';
GO
-- 回復多人模式
EXEC sp_dboption <欲更名的資料庫名稱>, 'Single User', False;
GO
請注意,在更改資料庫名稱時,是不會更改群組檔案、資料庫檔案、資料庫日誌檔的名稱。此外,建議改用 ALTER DATABASE MODIFY NAME  指令:
ALTER DATABASE <舊資料庫名稱>
    Modify NAME = <新資料庫名稱>;

2009年11月3日

如何在 Windows Virtual PC / XP Mode 內調整解析度

使用 Windows Virtual PC 安裝所謂的客體(Guest)作業系統之後,一定會再安裝整合元件套件,以便增強虛擬機器與實體電腦之間的互動性,例如:滑鼠整合、時間同步處理、音效…等。如果您使用 Windows XP Mode,整合元件套件則會事先完成安裝,可直接使用整合功能!

當客體作業系統的整合功能開啟時,是無法調整螢幕解析度,因此欲調整解析度,當然就是要停用整合功能,然後調整解析度,最後要記得再啟用整合功能!

停用整合功能的方式有下列幾種:

  1. 於使用 Windows Virtual PC / XP Mode 時,暫時停用
    按下 Windows Virtual PC / XP Mode「工具」功能表中的「停用整合功能」指令。
  2. 永久停用
    1. 開啟虛擬機器的設定,有 2 種方式,請依照實際的使用情形,自行選用:
      • 「虛擬機器」資料夾中,以滑鼠右鍵按一下虛擬機器的名稱,然後按下「設定」指令。
      • 按下 Windows Virtual PC / XP Mode「工具」功能表中的「設定」指令
    2. 「Windows Virtual PC 設定」頁面的左側窗格,按一下「整合功能」
    3. 在右側窗格中,取消 啟動時啟用 核取方塊。
    4. 按下「確定」按鈕,以便儲存變更。

2009年11月2日

如何在 Windows Virtual PC 中,用光碟開機

由於 Windows 7 中的 Windows Virtual PC,與以往的 Virtual PC 或 Virtual Server 不同,當您安裝完作業系統之後,於開機時,不會顯示 BIOS 開機檢查的畫面,此表示我們無法進入 BIOS 設定開機的順序,因此如果要測試自行製作的開機光碟,可不是只要把光碟放到光碟機裡,然後按下 Windows Virtual PC 的「工具」功能表,設定「DVD 光碟機」存取實體光碟機或是載入 ISO 映像檔這麼簡單。

您可以嘗試去進行上述的設定,可能會發生 Windows Virtual PC 一直顯示整合功能錯誤的對話方塊。

欲解決此問題,請在看到「正在啟用整合功能…」對話方塊時,按下鍵盤上的 Shift + ESC,就可以讓 Windows Virtual PC 透過光碟開機。

由於,此時的 Windows Virtual PC 整合性功能無法使用,因此欲釋放滑鼠指標,使其回到實體電腦時,請按下 Ctrl + Alt + (向左的方向鍵)。

如下所示即是在 Windows Virtual PC 使用 ERD Commander 光碟開機的畫面


2009年10月22日

How to find the Microsoft Expression Studio 3 production key out

If you get the Microsoft Expression Studio 3 (not a trival version) from MSDN / TechNet subscription or somewhere else, you may not require to enter the production key when installing, since the key is pre-pidded.

Is there any way to find out the production key?

Yes! After installing, just explore to the %temp% folder and open the "XSetup_ExpressionStudio_<Installed Date & Time>.log", such as XSetup_ExpressionStudio_2009_10_22_12_8_50.log. Then search the key word "InstallProofOfPurchase" to find the production key out.

2009年10月15日

2009 年底前 MCP 考試大優惠,最高折扣為 25%

為了嘉惠更多 MCP 考生,只要在今年(2009)年底之前參加 MCP 考試,即可享受最高 25% 的價格優惠,詳細考試科目之折扣、活動說明,請參考官網:Special Offers on Training and Certifications from Microsoft

2009年10月14日

如何使用指令找出網路卡的 MAC 位址

網路常見的作法皆是使用 ipconfig.exe/all,搭配相關指令去解析網路卡的 MAC 位址(即下面結果中的「實體位址」),這樣做會有個問題,就是 ipconfig.exe 輸出的結果會因為 Windows 語言的不同,而出現不同國家的文字,例如下面是 Windows 7 正體中文版執行的部分結果:

C:\Users\Alex>ipconfig/all
…
乙太網路卡 區域連線 2:

連線特定 DNS 尾碼 . . . . . . . . :
描述 . . . . . . . . . . . . . . .: Microsoft Windows Mobile Remote Adapter
實體位址 . . . . . . . . . . . . .: 12-34-56-01-23-45
DHCP 已啟用 . . . . . . . . . . . . : 是
自動設定啟用 . . . . . . . . . . .: 是
IPv4 位址 . . . . . . . . . . . . : 169.254.2.2(偏好選項)
子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
租用取得 . . . . . . . . . . . . .: 2009年7月21日 下午 10:29:29
租用到期 . . . . . . . . . . . . .: 2009年8月20日 下午 10:29:25
預設閘道 . . . . . . . . . . . . .:
DHCP 伺服器 . . . . . . . . . . . : 169.254.2.1
NetBIOS over Tcpip . . . . . . . .: 啟用

乙太網路卡 區域連線:

連線特定 DNS 尾碼 . . . . . . . . :
描述 . . . . . . . . . . . . . . .: Realtek RTL8168C(P)/8111C(P) Family PCI-E
Gigabit Ethernet NIC (NDIS 6.20)
實體位址 . . . . . . . . . . . . .: 00-11-22-33-44-55
DHCP 已啟用 . . . . . . . . . . . . : 否
自動設定啟用 . . . . . . . . . . .: 是
IPv4 位址 . . . . . . . . . . . . : 192.168.165.107(偏好選項)
子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
預設閘道 . . . . . . . . . . . . .: 192.168.165.254
DNS 伺服器 . . . . . . . . . . . .: 168.95.192.1
168.95.1.1
NetBIOS over Tcpip . . . . . . . .: 啟用

通道介面卡 isatap.{6D6E2283-45C4-90A7-0506-1087391E5A92}:

媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線
連線特定 DNS 尾碼 . . . . . . . . :
描述 . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter
實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0
DHCP 已啟用 . . . . . . . . . . . . : 否
自動設定啟用 . . . . . . . . . . .: 是

通道介面卡 區域連線* 3:

連線特定 DNS 尾碼 . . . . . . . . :
描述 . . . . . . . . . . . . . . .: Teredo Tunneling Pseudo-Interface
實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0
DHCP 已啟用 . . . . . . . . . . . . : 否
自動設定啟用 . . . . . . . . . . .: 是
IPv6 位址. . . . . . . . . . . . .: 2001:0:cf2e:3096:38c5:bda2:2256:d659(偏好
選項)
連結-本機 IPv6 位址 . . . . . . . : fe80::38c5:bda2:2256:d659%13(偏好選項)
預設閘道 . . . . . . . . . . . . .: ::
NetBIOS over Tcpip . . . . . . . .: 停用

通道介面卡 isatap.{04426D6D-40CD-B5A2-D88C-DF7B9FBDD227}:

媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線
連線特定 DNS 尾碼 . . . . . . . . :
描述 . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter #3
實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0
DHCP 已啟用 . . . . . . . . . . . . : 否
自動設定啟用 . . . . . . . . . . .: 是

在此,我使用 Windows XP 之後才提供的 GetMac.exe,先看看執行的結果:
C:\Users\Alex>getmac

實體位址              傳輸名稱
=================== ==========================================================
00-11-22-33-44-55   \Device\Tcpip_{6D6E5A92-EEEE-45C4-90A7-1087E2283344}
12-34-56-01-23-45   \Device\Tcpip_{0442D227-FFFF-5555-6666-776DDF7B88ED}

由於 GetMac 提供以 CSV 格式輸出結果的參數,所以我們可以搭配 FOR 指令寫出 GetMacAddr01.cmd:
@echo off
REM 結果前後會有「"」
for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do echo 實體位址為:%%i

REM 刪除「"」:將原本的 %%i 改成 %%~i
for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do set mac=%%~i
echo.
echo 刪除「"」的結果:%mac%
echo.

REM 刪除「-」:使用 for 搭配 delims=-
for /f "tokens=1-6 delims=-" %%j in ('echo %mac%') do echo 最後結果:%%j%%k%%l%%m%%n%%o

執行結果:
C:\Users\Alex>GetMacAddr01.cmd
實體位址為:"00-11-22-33-44-55"
實體位址為:"12-34-56-01-23-45"

刪除「"」的結果:12-34-56-01-23-45

最後結果:123456012345

由執行結果來看,上面那樣的寫法會有問題,萬一有多張網卡時,因為使用環境變數 %mac% 來儲存結果,所以只會顯示最後查到的 MAC 位址,所以經過修改並精簡後的程式碼:
for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do (
for /f "tokens=1-6 delims=-" %%j in ('echo %%~i') do echo %%j%%k%%l%%m%%n%%o
)

執行結果:
C:\Users\Alex>GetMacAddr.cmd
001122334455
123456012345

2009年10月11日

Label 控制項搭配 AJAX Control Toolkit 的 PopupControlExtender 使用的問題


希望在某個 Label 控制項,按下滑鼠左鍵之後,即會使用 AJAX Control Toolkit 的 PopupControlExtender 彈出 1 個 Panel 控制項,於其內有 2 個TextboxButton(分別用來「新增」與「取消」之用)。於各 Textbox 輸入完畢,並按下「新增」按鈕之後,便將各 Textbox 的值放入剛剛觸發的 Label 控制項裡。

程式碼的重點在於:

  1. 不需用 UpdatePanelLabel 控制項包起來,雖然 UpdatePanel 是 AJAX Control Toolkit 的核心之一,但是請不要濫用!
    一來是效能考量,二來是為了善用 PopupControlExtender 所提供的 CommitScriptCommitProperty 屬性。
  2. Popupcontrol Extender 所彈出的 Panel 控制項之 UpdatePanel UpdateMode 屬性應該要明確設定為 Conditional
    很多人抱怨用了 AJAX 網路流量沒有減少,效能也沒提升,原因就是因為沒特別去設定 UpdateMode 屬性。
  3. Label 控制項根本就沒有 value 這樣的屬性可在 JavaScript 使用,有的也只是 HTML 控制項通用的 innerTextinnerHTML,那為什麼我可以在 GetValue() 那段 JavaScript 程式碼這樣寫:
  4. function GetValue(sender)
    {
      var lbl = $get(sender);
      if(lbl!=null) lbl.innerText = lbl.value;
    }
    請自個體驗箇中奧妙吧!


原始碼下載:

PopupControlExtenderUsingLabels.zip

2009年10月8日

Office 2003 更新與自動安裝部署


這份簡報原本是為了「微軟摯友」活動所準備的,後來因故沒有舉辦。簡報大綱如下:

剛好日前在整理文件,就順便把檔案放到 Windows Live Skydrive 上,有需要的人請自取。下載點:

2009年10月2日

Windows 7 可以安裝哪些版本的 SQL Server

Windows 7 嶄新的操作介面,執行速度又比他的兩個哥哥 Windows Vista 跟 Windows XP 來的快,相信有不少人計畫(或是已經)改用 Windows 7。

在 Windows 7 上可安裝下列版本的 SQL Server:

2009年9月24日

在 Windows 7 非 Enterprice(企業版)和 Ultimate(旗艦版)上安裝語言包

Windows 的線上說明指出,只有 Enterprice(企業版)和 Ultimate(旗艦版)才支援多國語言套件。但事實上,在非上述兩種版本的 Windows 7,也是可以安裝多國語言包。其步驟為:

  1. 準備好附檔名為 .cab 的語言包檔案。
  2. 「系統管理員身分」執行 cmd.exe
  3. 鍵入如下的指令:

    dism /Online /Add-Package /PackagePath:<語言包的路徑與檔名>

    例如要安裝正體中文的語言包:

    dism /Online /Add-Package /PackagePath:E:\langpacks\zh-tw\lp.cab
  4. 於出現「The operation completed successfully.」的訊息之後,即代表安裝完成。接著執行 regedit.exe,找到下面的機碼,並將其刪除更名,如此一來,日後需切換為英文介面時,僅需將其再次更名回 en-US 即可:

    \HKey_Local_Machine\System\CurrentControlSet\Control\MUI\UILanguages\en-US
  5. 重新開機,準備享受安裝語言包後的成果吧!

請注意:這樣子的安裝方式,並無法隨時透過控制台進行切換回英文介面,所有後果請自行承擔!

2009年9月22日

如何使用指令關閉或開啟具名的 Microsoft SQL Server 執行個體服務

在「如何定時啟動或關閉 MS SQL Server」與「如何使用一行指令關閉然後再開啟 Microsoft SQL Server 服務」一文中,所討論的關閉與開啟 Microsoft SQL Server 的服務,都是所謂的預設執行個體,也就是執行個體名稱為MSSQLServer

萬一所安裝的執行個體並非是預設的執行個體,比方說,SQL Server Express 的執行個體 SQLExpress,那要如何使用指令關閉與啟動非預設的執行個體之 SQL Server 呢?

以下面的指令而言,分別是關閉然後再啟動執行個體名稱為 SQLExpress 的服務:

net stop "SQL Server (SQLEXPRESS)"
net start "SQL Server (SQLEXPRESS)"

位於 stop 與 start 之後的指令,因為內有空白,所以必須使用一對引號將其包含起來。

—或—
net stop MSSQL$SQLExpress
net start MSSQL$SQLExpress

上面的指令就不需要用一對引號了,因為在 MSSQL$ 之後,就緊接著非預設的執行個體名稱,所以如果是要關閉並啟動預設的 SQL Server 執行個體,要改用如下的指令:

net stop MSSQLServer
net start MSSQLServer

2009年9月15日

在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part III)

這次要談另外一種比較簡單的安裝方式,不用像之前(如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview)一樣,那麼麻煩。

  1. 開啟「命令提示字元」視窗,切換到 .NET RIA Services July 2009 Preview 安裝程式所在的目錄。 在 Windows Vista 之後的作業系統上,可能需要以「系統管理員身分」開啟「命令提示字元」視窗。
  2. 輸入如下的指令,並按下 Enter 鍵:
    msiexec /i RiaServices.msi NOCHECK=true
  3. 依照「在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part II)」進行檔案的複製工作。

請特別注意,目前已知在非英文的 VS 2008 SP1 / VWD 2008 SP1 開發環境下,建立或加入 .NET RIA Services Class Library 專案,會出現如下所示的錯誤訊息,其結果是只會建立 Class Library 專案,卻不會建立 .Web 專案的問題。

出現「系統找不到指定的檔案。發生例外狀況於 HRESULT: 0x80070002」的錯誤訊息 缺少 .Web 專案

2009年9月7日

如何有效地縮小 Windows Virtual PC 虛擬硬碟空間

若要有效地縮小 Windows Virtual PC 的虛擬硬碟空間,請依照下列步驟進行操作:
  1. 在虛擬機器內,清空資源回收桶、刪除 TEMP 暫存空間…等,然後執行作業系統內建的硬碟重組工具程式。
  2. 在虛擬機器的虛擬光碟,掛載儲存在 <虛擬機器安裝目錄>\Integration Components 資料夾(一般來說 <虛擬機器安裝目錄> 是在 C:\Program Files\Windows Virtual PC。若您的 Windows 7 是 64 位元,則為 C:\Program Files (x86)\Windows Virtual PC)裡的光碟影像檔 Precompactor.iso,此時,虛擬光碟應該會自動執行,並載入光碟機中的 precompact.exe,請按下「是」按鈕來執行 Virtual PC Disk Pre-Compactor。這項工作執行完成之後,請按下「確定」按鈕來關閉該程式。

    WVP_Precompact01
    WVP_Precompact02  
  3. 按下「動作」功能表中的選擇「關機」,然後在「您要虛擬機器執行什麼工作?」下拉式清單中選擇「關機」選項,接著按下「確定」按鈕,以便真正地關閉虛擬機器。
    WVP_Precompact04

    這個步驟可能會因為每個人的設定,而會出現不同的操作選項,請自行調整。
  4. 按下「開始」功能表,依序展開「所有程式/Windows Virtual PC/虛擬機器」。
  5. 此時會開啟虛擬機器的管理介面(其實根本就是檔案總管) 確認所欲縮小硬碟空間的機器狀態是「已關閉」。
  6. 在欲縮小硬碟空間的機器名稱上,按一下滑鼠左鍵,接著按下功能表中的「設定」指令。
  7. 選取要縮小硬碟空間的磁碟機,按下「修改(M) 」按鈕。
    WVP_Precompact03
  8. 按下「壓縮虛擬硬碟(C)」按鈕,接著在「壓縮虛擬硬碟」對話方塊中,按下「壓縮(C)」按鈕。
  9. 靜候成功壓縮虛擬硬碟完成,直接按下「關閉(C)」按鈕。 

2009年9月4日

如何查詢本機電腦已安裝哪些版本的 SQL Server 與功能

SQL Server 2008 安裝程式提供一個簡易的操作,讓我們得以快速地查詢出本機電腦所安裝的 SQL Server 是那個版本,還可以查出安裝了該版本的哪些功能。

執行步驟如下:

  1. 執行 SQL Server 2008 安裝程式。
  2. 依序按下「工具/已安裝的 SQL Server 功能探索報告」

該工具查詢的結果會儲存在 %ProgramFiles%\Microsoft SQL Server\100\Setup Bootstrap\Log\ <日期>_<時間>\SqlDiscoveryReport.htm,同時將其顯示在瀏覽器中。

附註:
  1. 這個工具只能查出 SQL Server 是 2000、2005、或 2008。
  2. 如果有安裝 SQL Server 2008,可以從 Version 欄位判斷出所安裝的 Service Pack 版本為何。以上圖中的結果為例,10.1.2531.0 表示所安裝的 Service Pack 為 1
    至於 SQL Server 2000、2005 則不適用此方法,請參考:如何得知目前SQL Serer 2005的Service Pack是那個版本?

2009年8月27日

如何停用 Windows Virtual PC 的時間同步功能

在預設狀態下,於 Windows 7 建立新的 Windows Virtual PC 來賓電腦(Guest Computer)虛擬機器時,會自動啟用與實體機器進行時間同步,但如果要模擬軟體試用期過期或是因試用期已過,需要調整虛擬機器內的系統時間,就需要關閉時間同步功能。

此時,請依照下列步驟進行操作:
  1. 關閉虛擬機器(不要用「休眠」的方式,要用「關機」)。
  2. 用文字編輯器開啟該虛擬機器的設定檔(.vmc),預設目錄跟虛擬硬碟檔案(.vhd)在同一目錄:
    C:\Users\<使用者帳號>\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines
  3. 找到如下所示的位置:
    <hardware>
      <bios>
        <base_board>
          ...
        </base_board>
        ...
      </bios>
    </hardware>

  4. <base_board>  之前加入如下的一行設定,以便當來賓電腦開機時,不會自動同步更新 BIOS 的時間:
    <time_sync_at_boot type="boolean">false</time_sync_at_boot>
    設定完的結果如下:
    <hardware>
      <bios>
        <time_sync_at_boot type="boolean">false</time_sync_at_boot>
        <base_board>
          ...
        </base_board>
        ...
      </bios>
    </hardware>

  5. 找到如下所示的位置:
    <integration>
      <microsoft>
        ...
        <host_time_sync>
          <enabled type="boolean">true</enabled>
          <frequency type="integer">15</frequency>
          <threshold type="integer">10</threshold>
        </host_time_sync>
        ...
      </microsoft>
    </integration>
  6. <host_time_sync><enabled type="boolean"> 標記中的 true改成  false
  7. 將修改後的 .vmc 設定檔儲存,然後啟動虛擬機器。
  8. 關閉虛擬機器的「網際網路時間」同步化功能:
    1. 在工作列的小時鐘上,按下滑鼠右鍵,選擇「調整日期/時間(A)」指令。
    2. 按下「網際網路時間」索引標籤。
    3. 取消 □ 自動與網際網路時間伺服器同步化(S) 核取方塊,按下「確定」按鈕。
附註:
  1. 上述的設定,也適用於 Virtual PC 或 Virtual Server 的虛擬機器設定檔。
  2. 請使用「小寫的英文字」來輸入值,如果您使用大寫字元或輸入一個不正確的值時, Windows Virtual PC 會自動忽略該設定。

2009年8月22日

在 Excel 中,產生 1 ~ 53 的亂數

這個問題的標題本來是這樣的:

請問如何將1-53號學生, 在新學期中RANDOM地重換座號

問題描述為:

各位高手, 我有53個學生, 在新學期要換新座號, 但我找不到RANDOM的含數, 是否能請教一下??非常謝謝

那時候的我是 Windows Server 這方面的 MVP(微軟最有價值專家,現在則是 SQL Server 的 MVP,再過幾個月,順利的話,應該又會換到另外一個新的領域去當專家了),因為對 Microsoft Office 軟體使用也稍有研究,就做了如下的答覆:

請使用 RAND() 函數,它會傳回一個大於等於 0 且小於 1 的隨機亂數。因此您可以使用

ROUND(RAND()*(53-1)+1,0) 

—或—

ROUND(RAND()*54,0)
附註:原文在微軟的 News 伺服器上,還可以找到

2009年8月20日

在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview (Part II)

按照「如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview」的文章進行操作,確實可以在開啟 Silverlight 專案時,出現 啟用 .NET RIA 服務 核取方塊。

然而,當您欲在承載 Silverlight 的 Web 專案新增項目時,就會發現在「Visual Studio 安裝的範本」窗格中,沒有 Authentication Domain ServiceDomain Service ClassSearch SitemapDomain ADO.NET Data Service 這 4 個範本。
沒有 Authentication Domain Service、Domain Service Class、或 Search Sitemap 這 3 個範本

原因在於,沒有將 .NET RIA Services 所提供的項目範本檔案從英文版的目錄(1033)複製到正體中文版的目錄(1028),因此請將位於下面 2 個目錄中的相關檔案複製到  1028 目錄裡:

  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\1033
  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\VisualBasic\Web\1033 
將 1033 目錄中的檔案複製到 1028

接著將位於下面 2 個目錄中的相關檔案複製到  1028 目錄裡:

  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033
  • %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesVisualBasic\Silverlight\1033
將 1033 目錄中的檔案複製到 1028

這麼一來,才能在開啟新的 Silverlight 專案時,看到 .NET RIA Services Class Library 專案範本。

請注意:

  1. 如果您使用的是 64 位元 Windows 作業系統,請自行將上述的路徑換成您實際的路徑,例如:C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033。
  2. 如果您在 Visual Studio 2008 看不到相關的範本,請依照所使用的開發工具,以管理員身分開啟「Visual Studio 2008 命令提示字元」(位於「開始/所有程式/Microsoft Visual Studio 2008/Visual Studio Tools」裡),然後執行下面指令:
    • Visual Studio 2008
      devenv.exe /installvstemplates
    • Visual Web Developer 2008 Express
      VWDexpress.exe /InstallVSTemplates
  3. 因為目前 .NET RIA Services 還是處於測試階段,待其正式版出來,就不需要進行這麼麻煩的操作步驟了。

2009年8月16日

如何建立一個以系統管理員身份執行的「命令提示字元」

在此以 Windows 7 為例,說明在桌面上,如何建立一個「以系統管理員身份執行」「命令提示字元」
  1. 在桌面空白處,按下滑鼠右鍵,依序選擇「新增/捷徑」指令。
  2. 「建立捷徑」視窗中的「輸入項目的位置」文字方塊中,輸入如下的指令,然後按下「下一步」按鈕:
    %windir%\system32\cmd.exe

    於輸入時,會有自動完成的文字提示,所以只要輸入到 cm 之後,就可以直接用滑鼠去選取所要的項目。
  3. 「輸入這個捷徑的名稱」文字方塊中,指定捷徑的名稱,然後按下「完成」按鈕 。
  4. 在桌面上剛建立的那個捷徑上,按下滑鼠右鍵,選擇「內容」指令。
  5. 按下位於「捷徑」索引標籤右下方的「進階」按鈕。
  6. 此時會出現「進階內容」對話方塊。請勾選 以系統管理員身分執行 核取方塊,接著按下「確定」按鈕,以便關閉「進階內容」對話方塊。
  7. 按一下「套用」按鈕。

附註:
於步驟 5.,可以順便在「註解」文字方塊中,輸入您所要的說明,以便當滑鼠移至該捷徑時,會顯示該說明。

2009年8月12日

如何使用一行指令關閉然後再開啟 Microsoft SQL Server 服務

先前在「如何定時啟動或關閉 MS SQL Server」一文中,討論了如何關閉再開啟 Microsoft SQL Server,現在則是要在一行指令來完成這樣的操作。
要執行的指令如下所示:

net stop MSSQLServer && net start MSSQLServer


兩個指令之間的 &&,是表示當第 1 個指令執行成功之後,接著再執行第 2 個指令


因此我們可以在批次檔中,善用 &&,如此一來,便無須再檢查 ErrorLevel 的回傳值,簡化批次檔的程式碼。

2009年8月7日

如何在非英文版的 Visual Studio 2008 安裝 .NET RIA Services July 2009 Preview

不過就安裝個小程式,有什麼秘訣呢?當然有嘍!

.NET RIA Services July 2009 Preview 安裝程式會檢查是否已經安裝英文版的 Silverlight™ 3 Tools、Silverlight™ 3 Developer Runtime、與 Silverlight™ 3 SDK,事實上,上述的 3 個元件都已經包含在 Microsoft® Silverlight™ 3 Tools for Visual Studio 2008 SP1 英文版裡。

.NET RIA Services July 2009 Preview 所需的元件

如果是使用 Visual Studio 2008 的話,不太可能為了安裝 .NET RIA Services July 2009 Preview,而移除非英文版的 Visual Studio 2008,因為安裝挺費時的。還好微軟有提供免費的 Visual Web Developer Express 2008 SP1 英文版,剛好可以用來騙騙 .NET RIA Services July 2009 Preview,所以要安裝的元件之順序如下:

  1. Visual Web Developer Express 2008 SP1 英文版
  2. Silverlight™ 3 Tools for Visual Studio 2008 SP1 英文版
  3. .NET RIA Services July 2009 Preview

安裝完畢之後,即可在非英文版的 Visual Studio 2008 環境中,順利使用 .NET RIA Services July 2009 Preview 了。如果覺得 Visual Web Developer Express 2008 SP1 太佔硬碟空間,當然可以單獨移除它。

開啟專案時,就立即啟用 .NET RIA 服務:

於開啟專案後,進行 .NET RIA 服務連結設定

2009年8月1日

Microsoft Expression 3 包含哪些產品

Microsoft Expression 3 會有下列 3 種產品:

產品名稱

Expression Web 3

Expression Studio 3

Expression Professional Subscription

內含項目

Expression Web 3 + SuperPreview

Expression Design 3

Expression Encoder 3

與 TFS 整合*

Expression Blend 3 + SketchFlow

Expression Design 3

Expression Encoder 3

Expression Web 3

與 TFS 整合*

Expression Studio 3

Visual Studio 標準版

Office 標準版*

Visio 專業版*

Virtual PC

Windows XP

Windows Vista 企業版

Windows 7*

* 表示其授權僅供開發與測試之用。

上述的產品會提供:英文、法文、徳文、義大利文、西班牙文、繁體中文、簡體中文、日文、和韓文等語言版本。Expression Studio 3 的功能概要,可以透過下面的影片來瞭解:

至於那個產品適合您的需要,可以透過這個英文網頁來進行分析瞭解。

附註:
  • Expression Media 在 Expression 3 已經被拿掉,算是單獨販售的 1 項工具。
  • 微軟可能會因應新的作業系統推出,而修改上述產品的內容。

2009年7月21日

可以使用 SQL Server 2005 Management Studio 或 Management Studio Express 連線到 SQL Server 2008 進行管理嗎?

如果您所使用的 SQL Server 2005 Management Studio (簡稱 SSMS)或 Management Studio Express(簡稱 SSMSE)不是 SP3,那答案是不行

因此如果使用 SQL Server 2005 的 SSMS / SSMSE SP3,自然就可以連線到 SQL Server 2008 進行管理。

下載點:

那要如何確認所使用的 SSMSE 是否為 SP3 呢?

請按下 SSMSE 「說明」功能表中的「關於」,察看「元件名稱」SQL Server Management Studio Express 那行顯示的版本是否為 9.00.4035.00

2009年7月14日

如何製作整合 SQL Server 2008 SP1 的安裝檔

如果您欲將 SQL Server 2008 SP1 整合至原本的 SQL Server 2008 RTM,可以參考下面的文章進行操作: 若要燒錄成光碟,請注意:

  • 在 DefaultSetup.ini 裡的 PCUSOURCE 要使用相對路徑,例如: [SQLSERVER2008] .... PCUSOURCE=".\PCU"
  • 因整合後的檔案會比原本的 SQL Server 2008 DVD 還大(約 5.98G),所以用 DVD5(容量 4.7G)的片子會無法放入所有的檔案,請改用DVD9的(容量 8.5G)進行燒錄

2009年7月5日

安裝 SQL Server 出現「效能監視器計數器需求」、「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤

這篇文章原本是在 MSDN 論壇「資料庫與程式開發(SQL Server Development)」區中的「mssql 2005 安裝有問題」討論,特別將其整理在此。

在安裝 SQL Server 2005 時,會出現如下的錯誤提示:


在 SQL Server 2008 則是顯示「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤。

按下「訊息」按鈕所顯示的效能監視器計數器需求(錯誤) 之詳細說明

請依照下列步驟進行設定:

  1. 開啟「登錄編輯器」
    依序按一下「開始」「執行」,在「開啟」中輸入 regedit,然後按一下「確定」按鈕。
  2. 確認機碼值
    「登錄編輯器」,找到下列機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
    您會發現如下這兩個機碼名稱與機碼值(您的機碼值可能跟我的不一樣,那沒有關係):
    Last Counter=00001dd2 (7634)
    Last Help=00001dd3 (7635)

    如此圖

  3. 找出機碼最大值
    展開上圖中位於 Perflib 之下的「009」該節點(安裝英文版的 SQL Serer,是展開 009,若安裝的是正體中文版,請展開 004 ),在右邊窗格中的 CounterHelp 機碼上,用滑鼠連按兩次來察看其最大值是多少,將捲軸拉到最下面(如果作業系統為 Vista 或更新版本,則最大的機碼值未必會出現在最後,請見文末),即可查得。以下圖為例,Help 機碼的最大值為 7635

  4. 確認機碼最大值是否相符
    回到步驟 2 中,確認 Last Counter 值(以本範例而言,其值為 7634)與  Last Help 值 (以本範例而言,其值為 7635) 必須符合上個步驟 Perflib\009(安裝英文版的 SQL Serer,是檢查 009,若安裝的是正體中文版,請檢查 Perflib\004 中的 CounterHelp 機碼的最大值(以本範例為而,其值分別為 76347635)。
    若不符何時,請修改步驟 2 中的 Last Counter 值和 Last Help 值,修改方式如下:
    1. 以滑鼠右鍵按一下右邊窗格中的 Last Counter ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕, 在「數值資料」文字方塊中,鍵入設定值 7634 (此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    2. 以滑鼠右鍵按一下右邊窗格中的 Last Help ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕在「數值資料」文字方塊中,鍵入設定值 7635(此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    3. 關閉「登錄編輯器」
  5. 重新執行 SQL Server 安裝程式。

PS:

  1. 像此類關於 SQL Server 安裝的問題應該是要到「TechNet 論壇」「資料庫管理 (SQL Server Management)」提問才對,因為程式開發的問題是屬於 MSDN 論壇,而 Server 的管理就屬於 TechNet 論壇
  2. 如果所使用的作業系統為 Vista 或更新版本(例如:Windows Server 2008、Windows 7),則請注意下列兩點:
    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 之下,看不到 004,因此如果安裝的是正體中文版 SQL Server,請改檢查 0404

    2. 最大的機碼值未必會出現在最後。


      您當然可以使用人工目視的方式,逐行比對,找出最大值為何。我的作法是:
      1. 「編輯多字串」視窗中,按下滑鼠右鍵,選擇「全選(A)」指令,接著再按下滑鼠右鍵,選擇「複製(C)」指令。

      2. 開啟一個新的 Excel 工作表。
      3. 將先前複製的內容貼上。
      4. 使用「從最小到最大排序」的排序方法,即可找出最大值。