2018-05-18

Windows Server 2012 Add Language Pack

Windows Server 2012 Add Language Pack

Dism /online /Add-Package /PackagePath:D:\langpacks\zh-tw\lp.cab

2018-05-15

HP / HPE Smart Storage Administrator 的 RAID 監控

HP 的 SmartArray 有提供 HPE Smart Storage Administrator 工具
但是不知為什麼長久以來都沒有提供故障警示 E-mail 功能 (或是有我沒找到, 不然就是要錢 $$)
不過 HP 有提供 Cli 程式可以用 Command 來取得 RAID 狀態
(HPE Smart Storage Administrator (HPE SSA) CLI for Windows)

有 CLI 模式的程式可以用
就可以再用 PowerShell 透過這支程式來取得 RAID 狀態並判斷 State, 若異常則發出告警 Email
我另外有寫一篇 IRST (Intel Rapid Storage Technology) 在 Server Core 模式下的 RAID 監控 與這篇類似

程式如下:

$EmailFrom = "RAIDNotifier <RAIDNotifier@contoso.com>"
$EmailTo = "Admin <Admin@contoso.com>"
$EmailSubject = "$ENV:ComputerName RAID Warning"
$SMTPServer = "10.10.10.10"

2018-05-14

Media Player Classic Home Cinema 變更播放速度時播放聲調不變之設定

Media Player Classic Home Cinema 變更播放速度時播放聲調不變之設定

View (檢視)-> Options (設定選項) ->

Left Pannel (左方項目頁籤):
Playback (撥放器)
Right Pannel (右方設定項目):
Control (控制) -> Speed step (速度步進)-> Change to (變更為) 10 %

Left Pannel (左方項目頁籤):
Playback (撥放器) -> Output (輸出)
Right Pannel (右方設定項目):
Audio Renderer (音訊譜製器)-> Change to (變更為) 10: Internal Audio Renderer

2018-05-03

IRST (Intel Rapid Storage Technology) 在 Server Core 模式下的 RAID 監控

IRST (Intel Rapid Storage Technology) 在 Server Core 模式下不能安裝 Management Tools
只有 CLI 模式的程式可以用
只好用 PowerShell 透過這支程式來取得 RAID 狀態並判斷 State, 若異常則發出告警 Email
我另外有寫一篇 HP / HPE Smart Storage Administrator 的 RAID 監控 與這篇類似

程式如下:

$EmailFrom = "RAIDNotifier <RAIDNotifier@contoso.com>"
$EmailTo = "Admin <Admin@contoso.com>"
$EmailSubject = "$ENV:ComputerName RAID Warning"
$SMTPServer = "10.10.10.10"

利用 PowerShell 刪除某路徑底下 14 天以前的檔案與資料夾 (過期檔案與資料夾)

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

以下改用 PowerShell 處理, 邏輯:

1. 找出過期檔案予以刪除
2. 找出過期的空資料夾予以刪除 (從最深層的子目錄開始往上一層一層檢查)

不知道是否需要寫得這麼複雜就是了

2018-03-30

How to Kill a Hanging Hyper-V VM


$VMName = Read-Host "Enter VM Name"

$VM = $(Get-VM | where {$_.Name -eq "test"} | select-object  -ExpandProperty VMId).Guid
if ($VM.Count -ne 1) {
write-host "Not Found"
} else {
$ProcessId = $(Get-WmiObject win32_process -Filter "name like '%vmwp%'" | where {$_.CommandLine -like "*$($VM)*"} | select ProcessId).ProcessId
$ForceKill = Read-Host "Found ProcessID: $ProcessId, Force Kill? (Y/N)"
if ($ForceKill -eq "y" -or $ForceKill -eq "Y") {
Stop-Process $ProcessId -Force
}
}

2018-03-23

Windows 10 變更預設瀏覽器小程式 Change Default Browser

因為不知名的原因, Windows 10 的環境下點擊 Outlook 信件中的超連結時
出現了這個很冏的視窗


哪裡冏呢? 他沒有提供 IE 或 Chrome 或任何已經安裝好的瀏覽器給人選
一定要自己去 [設定] 裡面選才行
而這個問題不是單一事件, 有許多人都遇到了

2018-03-22

Client 連接 RDS 時出現 [無法執行憑證的撤銷檢查] 錯誤

遇到一個奇怪的問題
某幾台 Windows 7 在連接 RDS (Remote Desktop Service) 的時候
不知何故會出現下圖:

錯誤為: 無法執行憑證的撤銷檢查

英文為: A revocation check could not be performed for the certificate



憑證撤銷清單是以 http Web 的方式提供, 其他 Client 完全正常
且這台有問題的 Windows 7 也確認可以用 Browser 正確取得憑證撤銷清單


2018-03-15

Reset Remote Desktop Service Grace Period

有時候我們必須測試 Remote Desktop Service
但是測試階段老闆可能不會答應你買 Terminal License
必須要測試出成果確認可行後, 寫一篇文情並茂的建議案附上測試成果老闆才會勉強點頭
微軟很佛心的提供 120 天的 Remote Desktop Service License 緩衝期
在 120 天之內除了會在狀態列跳訊息出來罵你提醒你以外, 都讓你隨便用
但是到 120 天後就會禁止登入, 只有 Local Administrator 能用 Console 登入了

但是往往我們在測試初期架設就花掉一、兩個月
Pilot Run 又花了一個月才完成教學
接著種子們又以工作很忙為由拖拖拉拉 (你也不好意思催促)
結果過了 120 天又要重頭安裝一次, 真是練習的好機會麻煩

其實可以經由修改註冊機碼來延長這個 120 天期限, 辦法如下:

先將註冊機碼 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod 的 Owner 及 Permission 修改為 Local Administrators

2018-03-13

VBScript String Encode / Decode

VBScript String Encode / Decode
出處 https://stackoverflow.com/questions/496751/base64-encode-string-in-vbscript

有時候有文字傳遞的需求, 但卻又無法直接傳遞中文字 (編碼問題)
此時先將文字轉換成 Base64 編碼, 傳遞後再 Decode 是最好的辦法
只需要帶入一些函式即可簡單處理

' Base64-encode: from UTF-8-encoded bytes.
Word1 = Base64Encode("Word1", False)

' Base64-encode: from UTF-16 LE-encoded bytes.
Word2 = Base64Encode("Word2", True)

' Base64-decode: back to a VBScript string via UTF-8.
Word3 = ConvertFromUTF8(Base64Decode(Word1, False))

' Base64-decode: back to a VBScript string via UTF-16 LE.
Word4 = ConvertFromUTF8(Base64Decode(Word2, True))

wscript.echo Word1 & vbcrlf & Word2 & vbcrlf & Word3 & vbcrlf & Word4