2013-11-29

Hyper-V 3.0 的遠端控制與即時移轉 (Windows Server 2012)

前提:
1. Hyper-V 主機 Join AD Domain
2. 操作人員的 User Account 必須具有 Hyper-V 主機的 Hyper-V 管理權限
3. 操作人員的 User Account 必須要加入 Hyper-V 主機的 Local Administrators 群組

前置動作: 設定 Hyper-V 管理員群組

1. 在 AD 中建立一個群組命名為: HyperVAdmin (可任意命名)
2. 將要對 Hyper-V 進行管理人人員帳號加入 HyperVAdmin 群組
3. 將 HyperVAdmin 群組加入 Hyper-V 主機的 Local Administrators 群組
4. 在 Hyper-V 主機上以 Domain Admin 權限帳號將 HyperVAdmin 群組加入 Hyper-V 管理員
    使用 Hyper-V Remote Management Configuration Utility
    http://code.msdn.microsoft.com/HVRemote/Release/ProjectReleases.aspx?ReleaseId=1827
    指令: cscript hvremote.wsf /add:Contoso\HyperVAdmin
    設定成功後重開機才會生效

*. 如果 Hyper-V 主機是 Stand Alone Server, 在控制端可以進行以下設定:
1. 加入 Windows 管理認證:
    a. GUI 介面操作: [控制台] -> [使用者帳戶] -> [認證管理員] -> [Windows認證]
    b. 命令列操作: cmdkey /add:Hyper-V 主機名稱 /user:有權限存取 Hyper-V 主機的帳號 /pass:前述帳號的密碼
2. 使用 Hyper-V Remote Management Configuration Utility
    指令: cscript hvremote.wsf /AnonDCOM:grant
    設定成功後立即生效不用重開機

上述動作完畢後, 便可在 Client 端以 Hyper-V 管理員對 Hyper-V 主機進行各項管理作業

2013-11-27

2013-11-07

全新安裝 Windows XP with SP3 無法利用 Windows Update 網頁更新的解決辦法

最近全新安裝 Windows XP with SP3 時
會發生無法利用 Windows Update 網頁更新的問題
連到 Windows Update 網站的時候會顯示 Error number: 0x8024D001 的錯誤

解決辦法:
1. 安裝 Windows Update Agent 3.0
2. 更新 IE 至 IE8

2013-10-30

取得資料夾 NTFS 權限列表 (NTFS Permission)

先至微軟網站下載 Extended Change Access Control List Tool (Xcacls) 這支 VBScript
http://support.microsoft.com/kb/318754
http://www.microsoft.com/en-us/download/details.aspx?id=19419
http://download.microsoft.com/download/f/7/8/f786aaf3-a37b-45ab-b0a2-8c8c18bbf483/xcacls_installer.exe

下載執行後可得到 XCACLS.vbs

 一般直接點兩下執行是用 wscript
但這個 VBScript 必須以 cscript 來執行才能用
所以執行方式是: cscript xcacls.vbs

如果不想每次都在前面加 cscript
也可以在命令提示字元視窗先執行以下指令
cscript.exe /h:cscript

取得分享資料夾權限列表 (Share Permission)

先至微軟網站下載 SubInACL (SubInACL.exe) 這支 Resource Kit
http://www.microsoft.com/en-us/download/details.aspx?id=23510

預設安裝路徑是 C:\Program Files (x86)\Windows Resource Kits\Tools
安裝完成後可以下列語法取得 Share Permission

subinacl /share <sharedfoldername> /display

2013-08-16

調整 VHD / VHDX 大小

Windows 8 或 Windows Server 2012
可以用 PowerShell 指令: Resize-VHD 來調整 VHD / VHDX 大小

vhd 只能調大不能調小
vhdx 可以調大或調小

執行後是互動式介面
輸入要調整大小的 vhd 或 vhdx 完整路徑
在輸入調整後的大小, 必須以 Bytes 為單位
如果是要調整成 200MB 就要輸入 204800000

如果想要用一行指令把所有參數一次下完直接執行
可以用 help Resize-VHD 看參數說明

Outlook 2003 [檢視] -> [文字大小] 變成灰色無法使用

Outlook 2003 編輯新信件/回信時
[檢視] -> [文字大小] 變成灰色無法使用

解決方法:

[檢視] -> [工具列] -> [自訂]
切換到 [指令] 頁籤
[類別] 選 [檢視]
[指令] 找到 [最大] / [較大] / [] 等
以拖曳方式拖到編輯視窗的 [檢視] -> [文字大小] 下方即可使用

2013-08-14

Outlook 寄出郵件對方收到為亂碼的問題 (UTF-8)

Outlook 2003:

1. [工具] -> [選項] -> [郵件格式] -> 點選 [郵件格式] 中的 [國際選項]
 在 [編碼選項] 中
 [自動選取外寄郵件的編碼方式] 取消勾選
 [想使用的外寄郵件編碼方式] 選為 [Unicode (UTF-8)]

2. [工具] -> [選項] -> [郵件格式] -> 點選 [信箋與字型] 中的 [字型]
 點選[國際字型]
 在 [字型設定] 中選擇 [Unicode]
 下方 [編碼] 下拉式選單選擇 [Unicode (UTF-8)]
 按下 [設成預設值]
Outlook 2010:
 [檔案] -> [選項] -> 選擇 [進階] 頁籤
 卷軸下拉找到 [國際選項] 區塊
 [郵件標幟標籤使用英文] 勾選
 [回覆和轉寄的郵件標題與轉寄通知使用英文] 勾選
 [自動選取外寄郵件的編碼] 取消勾選
 [喜好的外寄郵件編碼選擇 [Unicode (UTF-8)]
 [自動選取外寄 vCard 的編碼] 取消勾選
 [喜好的外寄 vCard 編碼選擇 [Unicode (UTF-8)]
 [允許在電子郵件地址中使用國際網域名稱] 勾選
 [允許對 mailto: 通訊協定使用 UTF-8 支援] 勾選

以下是寫好的 Registry 檔, 可以直接匯入就做好上面的設定

2013-08-13

Remote Desktop 遠端桌面連線 網路層級驗證

Remote Desktop 遠端桌面連線 據說只有在非原生 SP3 的 Windows XP 有這問題
原生 Windows XP SP3 或以上的版本 Windows Vista, Windows 7 都沒有這個問題
至於 Windows XP SP2 以下, 聽說都不支援網路層及驗證

開啟 [遠端桌面連線] 後, 在視窗 [左上角圖示] 上按滑鼠 [左鍵], 選 [關於]
如果看到 [不支援網路層級驗證] 可以進行以下兩步驟修改註冊機碼讓他支援

2013-08-08

檢查 CPU 是否符合 Windows Server 2012 Hyper-V 3.0 需求 (SLAT)

要用 Windows Server 2012 Hyper-V 3.0 除了 CPU 必須支援 VT-x / AMD-V 之外, 還要支援 SLAT

微軟 Technet 這篇文章有介紹一個小工具程式可以用來判斷 CPU 是否支援 SLAT

該工具程式只是一個執行檔, 需要以系統管理員身分執行 [命令提示字元]
並下指令: coreinfo -v 即可看到結果

2013-08-06

SQL Server Embedded Edition 的管理方式

SQL Server Embedded Edition 的管理方式

安裝任何版本的 SQL Management Tools
開啟後伺服器填入:

\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

即可進行管理

2013-07-16

遠端 Start / Stop Service (啟動/停用 服務) 的方法

前提: 使用具有遠端主機管理員權限的帳號開啟相關程式 (run as)

辦法A:
 1. 開啟 services.msc
 2. 在 [服務(本機)] 上按右鍵, 選 [連線到另一台電腦]-> 輸入目標主機名稱或 IP
 3. 找到 Service 將他啟動/停用

辦法B:
 1. 用具有目標主機管理員身份的帳號在其他主機上登入
 2. 執行以下指令 sc \\ServerName start "ServiceName"
 3. 可以用 sc /help 查詢相關參數

須注意服務名稱與顯示名稱常常不同, 指令中要使用的是服務名稱而非顯示名稱

WSUS Clean Up Automatically (伺服器清理精靈)

WSUS 自 3.0 版起有【伺服器清理精靈】的功能, 可以清除已經過期或不再使用的 HotFix
預設在 MMC 中執行
Update Services】->【(Server Name)】->【選項】->【伺服器清理精靈

這個功能很棒, 但手動執行實在很不方便, 還好在 Microsoft TechNet 上找到了這個 PowerShell
WSUS Server Cleanup against parent server and All downstream servers

2013-07-11

匯出某 OU 及其子 OU 中所有群組隸屬狀態

本 VBScript 程式可將某 OU 及其子 OU 中所有群組狀態匯出
匯出檔案包含:
1. 狀態列表: DN / 描述 / 成員 / 隸屬
2. 重建所有群組之批次指令檔
3. 重建群組成員之批次指令檔
4. 重建群組隸屬之批次指令檔
5. 變更 displayName 欄位之批次指令檔 (需搭配 Get-QADGroup)

本程式不能取代正常的 System Status Backup

2013-07-10

FreeNAS 基本設定及加入網域後帳號/群組權限的設定方式

FreeNAS-8.3.1-RELEASE-p2

Basic Setting

1. Account -> Admin Account -> Change Password
2. Account -> Users -> View Users -> Find "root" and [Change E-mail]
3. System -> Settings -> General -> Timezone [Asia/Taipei]
4. System -> Settings -> General -> Directory Service [Active Directory] (此處設定後才有 Directory Service 才能用)
5. System -> Settings -> Email -> From email [FreeNAS-01@contoso.com] / Outgoing mail server [mail.contoso.com]
6. Network -> Global Configuration -> Hostname [FreeNAS-01] / Domain [contoso.com]
7. Network -> Interfaces -> Add Interface -> Fill [Interface Name] (LAN) and check [DHCP]
8. Network -> Network Summary -> Check Status
9. Services -> CIFS -> NetBIOS name [FreeNAS-01] / Workgroup [CONTOSO] / Description [FreeNAS-01]

2013-07-09

修復 MBR 與開機啟動磁碟

以下 Windows 7 的處理方式對於 Windows 7 以後的 OS 同樣適用

有時候我們需要修復開機磁碟與 MBR
像是如果要從 Windows XP 改為 Windows 7 而且是用映像檔導入的方式時
最簡便快速的方式便是利用 DiskPart 與 BootSect 這兩個指令

用 Windows 7 的 PE 開機光碟或原版光碟開機後進入命令提示字元

一、鍵入 diskpart 進入 diskpart 介面

    DISKPART> list disk
    先列出目前系統中的實體硬碟有哪幾顆

    DISKPART> select disk 0
    挑出正確的那一顆來, 如果是中文版, 在列表中就是 "磁碟 0"

    DISKPART> list partition
    列出剛剛挑出的實體磁碟中有那些分割區

2013-07-04

Excel 2003 開啟網路磁碟上的檔案很慢

原因:

    Excel 2003 Office File Validation (OFV) opens workbooks slower across the network
    http://support.microsoft.com/kb/2570623

解決辦法:

    辦法A:
        安裝 MicrosoftFixit50741.msi
        http://download.microsoft.com/download/6/7/9/67917262-C87A-4A42-B11F-2C4401155E5C/MicrosoftFixit50741.msi

DHCP Server 設定的轉移,輸出與匯入

DHCP 設定匯出
    netsh dhcp server 127.0.0.1 dump > C:\DHCP_Config.txt

DHCP 設定匯入
    netsh -F C:\DHCP_Config.txt

找出 AD 中沒有 Member 的 Group

通常在 AD 中會有許多 Group 代表各單位或部門
但因為組織異動的關係有些 Group 可能已經沒有 Member 或 MemberOf 了

本 VBScript 程式可以找出哪些 Group 已經沒有 Member 或 MemberOf 存在
並將這些 Group 的 DN 以一行一個的方式輸出成純文字檔案
存放在與本程式相同資料夾中

定時從 DC 的 Event Log 中撈出 Account Lock Out 事件

有一種病毒會不斷 Try 網域帳號, 導致許多 User 的帳號被 Lock Out (密碼錯誤次數過多)

會發生兩種問題:
1. 電腦中毒擴大
2. MIS 電話被 User 打爆

此時可利用本 VBScript 程式定時從 DC 的 Event Log 中撈出 Account Lock Out 事件
得知哪個帳號在什麼時間從哪個 IP 被 Lock Out

預設參數設定每 300 秒檢查 300 秒內的 Log
跑此程式的帳號必須有權限可存取目標 DC 的 Event Log
可存成 Log 檔亦可發出信件給需要進行處理的人員

2013.07.05 修改: 合併多個一樣的事件
2013.07.07 選項: 合併多個一樣的事件時的表現方式
2013.08.01 選項: 檢查間格時間內同一事件發生次數大於等於多少次才發報
2013.08.01 選項: 解析用戶端位址

檢查 AD 中已到期帳號

一般實務上來說, 在帳號到期前應該把到期日設定上去
等帳號實際到期後再將帳號停用並搬到專門放到期帳號的 OU 中

但這麼多帳號往往會忘記到底哪些帳號是到期的
本 VBScript 程式可以將已到期帳號找出並發信通知後續動作

收信人 Email 如果有多位應該要設定 Group Mail
所以本程式不寫成可寄發給多人

根據 Software List 產生的 .csv 檔搜尋特定軟體

本 VBScript 程式可對基於 Software List 產生的 .csv 檔進行軟體關鍵字搜尋
產生軟體安裝狀態報表

Find.csv
    以軟體為單位顯示

Find-OneRow.csv
    以電腦為單位顯示

2013.07.26 增加 "排除關鍵字"
2014.10.03 修正關鍵字多打分號 (;) 產生空值造成沒有結果的問題
                    欄位分隔符號由逗號 (,) 改為 vbTab, Excel 可以直接開啟不用選分隔符號
2014.11.24 請改用 取得電腦安裝軟體清單及基本資訊 Software List V2

取得電腦安裝軟體清單及基本資訊 Software List

微軟 TechNet 網站可以找到 List Installed Software 的 VBS Script
可惜執行後只能取得 32位元的軟體列表

在 Dave's Daydreams 的 Listing installed applications on Vista 64-bit with WMI
找到了列出 64位元軟體的語法, 不過取得的資訊不夠詳細
於是將上述兩者融合, 並加入一些其他功能後產生出以下符合自己需求的程式
本 VBScript 程式可取得以下資料存成 .csv 檔

CPU資訊
RAM資訊
OS: 作業系統版本
Install Date: 作業系統安裝日期時間
ComputerName: 電腦名稱
UserName: 登入使用者名稱
IPAddress: 網卡 IPAddress
MACAddress: 網卡 MACAddress
32-bit Applications: 32位元軟體清單
64-bit Applications: 64位元軟體清單

2013.08.28 增加 CPU 資訊 (廠牌,型號,名稱等) / BaseBoard 資訊 (廠牌,型號) / RAM 資訊 (容量,Bank,數量)
2014.10.03 將 (Tab) 改為 vbTab, 修正從網頁上複製的 Code 執行後字元不一致的問題

以指令更新 AD 物件的 displayName 欄位

緣由:
SharePoint 會抓物件的 displayName 欄位來顯示
若 Group Object 的 Common Name 是用代號, 實際名稱寫在 Description 裡
會造成設定權限時僅看到 Common Name , 看不到 Description, 而難以分辨群組意義

解決辦法:
利用 Get-QADGroup 這個 PowerShell 指令可以辦到
2014.10.14 更新, 用 Set-ItemProperty 即可, 不用 QAD Snap-In

自遠端啟用 Remote Desktop 遠端桌面連線

1. 目標主機其 RemoteRegistry Service 必須要啟動 (註)
2. 遠端電腦開啟 Regedit
3. [檔案] -> [連線網路登錄] -> 輸入目標主機名稱或 IP
4. 變更路徑至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
5. 變更機碼 [fDenyTSConnections] 的值為 0

2013-06-26

匯出/匯入磁碟配額範本

匯出用批次檔:
@echo off
set FileName=D:\FolderQuota_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.xml
dirquota template export /file:%FileName%

匯入:
dirquota template import /file:QuotaTemplates.xml

套用:
dirquota quota add /path:D:\TargetFolderName /sourcetemplate:QuotaTemplateName

DirQuota on Microsoft TechNet

取得 AD 群組成員的指令 Group Members List

Updated: 2017.02.17 Add Powershell Script
Updated: 2020.12.08 Add User OU Filter Pattern

基本: 取得群組成員的 (只能取得 Users, 不能取得 Groups)
  • net group /domain [Group Name]
進階: 取得巢狀群組所有成員 (包含 Users 與 Groups)
  • dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand
或是使用以下 Powershell: