2016-05-25

用批次檔 (Batch) 刪除指定天數之前 (過期) 所有子目錄及檔案

echo "Deleting old files ..."
forfiles /p D:\Temp /d -14 /c "cmd /c del /f /s /q @file"
echo "Deleting old directories ..."
forfiles /p D:\Temp /d -14 /c "cmd /c rd /s /q @file"

2015-12-25

VDI Shadow Remote Control Select (With SQL DB)

看這篇文章前先參考前一篇開頭的說明
http://blog.dino9021.com/2015/12/vdi-shadow-control-rdcb-remote-desktop.html

由於遠端執行 PowerShell Get-RDUserSession 指令需要開的權限太多太複雜
一直搞不出來, 於是決定山不轉路轉, 將 RDCB DB 從 Windows Internal Database 搬到 SQL Server 來 Query [備註]
用 SQL Server 的方式 Query 速度比 Get-RDUserSession 快非常多, 還有可做 HA 的彈性
好處非常多, 非常推薦大家都改用 SQL Server, 真心不騙

這隻程式用來列出目前 RDCB SQL DB 上記載的 Remote Desktop Session 供選擇 Shadow 控制
可簡化遠端協助的步驟, 並可 Shadow Windows 10 Client
(Windows Server 2012 R2 RDCB 目前以 Server Manager 無法 Shadow 至 Windows 10 Client)

執行本 PowerShell Script 的帳號必須具有連線目的 Client 的本機管理員權限
以及連線至 RDCB SQL Server 與讀取 RDCB DB 的權限 (詳細權限容後敘述)

有關 Prompt User 的相關說明及設定參考以下連結
https://blogs.technet.microsoft.com/askperf/2013/10/22/windows-8-1-windows-server-2012-r2-rds-shadowing-is-back/

2016.12.01 Update: 撈出 Pooled VM 所屬 RDVH Server Name

執行時範例圖片:

2015-12-24

VDI Shadow Remote Control Select (Pure Powershell)

這隻程式用來列出目前 RDCB 上記載的 Remote Desktop Session 供選擇 Shadow 控制
可簡化遠端協助的步驟, 並可 Shadow Windows 10 Client
(Windows Server 2012 R2 RDCB 目前以 Server Manager 無法 Shadow 至 Windows 10 Client)

執行的電腦必須安裝有 Remote Desktop Service Power Shell Module
執行本 PowerShell Script 的帳號必須具有連線目的 Client 的本機管理員權限

有關 Prompt User 的相關說明及設定參考以下連結
https://blogs.technet.microsoft.com/askperf/2013/10/22/windows-8-1-windows-server-2012-r2-rds-shadowing-is-back/

2015-10-02

Hyper-V Ethernet Resource Pool 乙太網路資源集區設定

  • 虛擬機器連接到虛擬交換器才能取得網路連線
    • 虛擬交換器是在 Hyper-V 主機上建立
    • 當虛擬機器移轉到另一台 Hyper-V 主機時會發生問題
  • 乙太網路資源集區允許虛擬機器連接到集區中的一個或多個虛擬交換器
    • 虛擬交換器預設會放在原始 (Primordial) 的集區
    • 使用 PowerShell 指令建立
    • 設定虛擬機器的虛擬網路卡連接到集區
    • 當虛擬機器移轉後允許自動重新連線

以上文字來源:
曹祖聖 虛擬化基礎 – Hyper-V 與 System Center 2012 R2 Virtual Machine Manager
https://www.microsoftvirtualacademy.com/zh-tw/training-courses/-system-center-2012-r2-virtual-machine-manager-vmm--12525?l=C7pRcjYPB_6700115888

以下為相關設定圖片與相關詳細指令
*. 想要做網路備援的話, 這個機制並不能取代 NIC Teaming

2015-01-17

Japan Travel 2015 - Tokyo 2015.01.17 渋谷

2015.01.17 渋谷
-----------------------------------------------------------------------------------------------------------------------

10:00 報到 桃園機場 1 航廈 1 樓 1 櫃台 香草航空

11:10 路程 香草航空 JW102

15:30 路程 成田機場 2 航廈出關

16:00 路程 JR東日本 成田エクスプレス 出發往品川 (電車65分左右, 車資共1,500円)
           ====> 空港第2ビル駅 16:22 発 -> 品川駅 17:27 着 (1,500円) [首都圏方面]
           
              
17:40 住宿 品川駅抵達
           ====> 東橫Inn Check-in

18:00 路程 品川駅出發前往 ディズニーストア渋谷公園通り店 (電車13分左右, 車資共170円)
           ====> 品川駅 18:00 発 -> 渋谷駅 18:13着 (170円) JR山手線(外回り) [渋谷方面行き]
           ====> 渋谷駅 (走 八公口) -> ディズニーストア渋谷公園通り店: 徒歩5分
                       https://www.google.com/maps?q=ディズニーストア渋谷公園通り店
                       https://www.google.com/maps?q=35.661157,139.700211
                   
           ====> ディズニーストア渋谷公園通り店 到着

18:30 參觀 ディズニーストア渋谷公園通り店
           3Fチケットカウンターのみ 21:00 まで
       
           東急百貨、西武百貨

21:00 路程 回品川

2014-11-24

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

先前寫過一篇 取得電腦安裝軟體清單及基本資訊 Software List
但是撈出來的資料很亂, 如今改寫過, 可以正確地抓出 [新增移除程式] 裡面的清單
加上硬體資訊, 然後寫入 SQL 資料庫

以下先將程式全部刊出, 不深入講解用法
InfoSearch.vbs 是掃描資訊的核心程式, 可以修改前面的變數後單獨執行

總之用 RunInfoSearchLoop.vbs 啟動 RunInfoSearch.vbs
一個網段一個 Process, Scan IP 1 - 253
RunInfoSearch.vbs 會將 IP 丟給 InfoSearch.vbs 去執行
我不知道怎麼改 Wbemscripting.SWbemLocator 的 Timeout 時間
所以掃 253 個 IP 約需時 3.5 小時

InfoSearch.vbs 裡面也可以設定 SQL IP及帳號密碼
或是寫成 File 或 echo 在畫面上
自己看一下裡面的變數改一下就行

SoftwareListReport.vbs 是將每一個被安裝的應用軟體被安裝的數量計算出來
另外存一個 Table 的程式
因為我不是 DBA , 所以 SQL 語法不太會用, 用 Join 來 Join 去的
SQL 會耗用大量 CPU 運算才能得到這個數量, 所以先跑一次寫到 Table 裡去
下次要同樣資料時就不用再計算一次

至於前台要怎麼產生報表
我花了一個下午研究以前沒學過的 ASP .Net , 決定放棄
只用 asp 簡單寫一下, 就不提供檔案了, 文末有提供各種資料 Query 的語法
請自行套用, 如果您有更好的寫法拜託您一定要提供給我


2014-09-22

Hyper-V VM Backup 方式, Replica 的替代方案 (自行撰寫 PowerShell 程式)

環境:
 1. 唯一一台 Hyper-V, 無法做複寫或叢集
 2. 只有一座 Hyper-V 叢集, 沒有其他 Hyper-V 主機

描述:
 上述狀況都無法進行 Hyper-V 複寫來作為備份策略
 如果用 Export-VM 的話, 若 VM 的 vhd 很大則會佔用大量 Disk I/O

解決方式:
 自行撰寫 PowerShell 程式, 利用 CheckPoint 功能土砲差異化備份 (與 Replica 雷同)

預設條件:
 VM 本身除了備份 Powershell 所建立的 CheckPoint 外不可以有其他 CheckPoint
 註: Production 環境的 VM 本來就不該有 CheckPoint, 會影響運作效率

程式運作邏輯:
 1. 建立 CheckPoint 使 VM 原始 vhd 停止寫入, 新的變更都會寫在 CheckPoint 所建立的差異磁碟 avhd
  且該 CheckPoint 會將當時的記憶體寫入成檔案, 等於 VM Pause
 2. 將上述 CheckPoint 資料複製出來作為備份, 未來就還原該 CheckPoint, 達到備份還原目的

可達到的目標:
 1. 可進行 VM 線上差異化備份, 不用每次備份都 Export, 佔用大量 I/O
 2. 可以在允許 Down Time 較久的前提下手動做不停機 Migration
  與 Export 後再 Import 是一樣的道理, 只是使用的是差異化磁碟

歷史:
 2014.09.24 加入備份檔案檢查機制
 2014.10.25 1. 程式開始時先檢查備份路徑如果不能存取就結束
         (先嘗試建立, 不能建立就是失敗, 目標如果是網路磁碟機, 可能連線失敗)
        2. 程式開始時先檢查指定的 VM 如果不存在就結束

2014-07-11

DHCP Client Service Error 1068 相依服務或群組無法啟動

DHCP Client Service Error 1068 相依服務或群組無法啟動

1. 確認 afd.sys / tcpip.sys / netbt.sys 檔案完整性, 或直接重建

2. 修改 HKLM Services DHCP 及 TCPIP 的權限, 賦予 Local Service / Network Service 完整權限

*. 詳細解法參考以下: