Windows Server 空間清理

用 Microsoft Windows Server 提供的工具比較保險,查到有兩種方式,一種是需要安裝桌面體驗,一種是下指令。

安裝桌面體驗會要求額外安裝其他的元件,但空間就已經不太夠了,就不選擇這個方案。

下指令的方式是使用 dism 指令,先用以下指令分析

dism.exe /online /Cleanup-Image /AnalyzeComponentStore

分析完畢會有狀態報告,接下來就可以進行清理

dism.exe /online /Cleanup-Image /StartComponentCleanup

看起來是有排程進行清理,所以應該也不需要特別使用這指令。

參考資料

PowerShell-取得磁碟剩餘空間

朋友主機的作業系統是 Windows Server 2012,之後會定期去做維護,那連線因為懶得用滑鼠按鍵去一個一個看,所以參考網路文章,寫了個簡單的腳本來一次印出來。

這腳本我命名為 du.ps1

function Get-FreeSpace {
    param ([string]$path);
    $space = (Get-Volume -FilePath $path).SizeRemaining;
    return [int64]($space / (1024 * 1024)); # this would otherwise be a float
}

$freeSpace = Get-FreeSpace "C:\"
Write-Host $freeSpace, "MB" -Separator " "
$freeSpace = Get-FreeSpace "D:\"
Write-Host $freeSpace, "MB" -Separator " "
$freeSpace = Get-FreeSpace "E:\"
Write-Host $freeSpace, "MB" -Separator " "
Read-Host "Press ENTER to exit"

簡單說明如下:

  1. Get-Volume -FilePath "<path>" 是取得指定路徑的物件,然後取物件的 SizeRemaining 屬性。
  2. 因為單位是 bytes,所以除以 1024 變成 K,再除以 1024 變成 MB
  3. 用 Write-Host 印出來,因為找不到類似 printf 或 print 的函式。Write-Host 的 -Separator 參數是指定分隔符號,這邊我用 ” ” 當作分隔,所以印出時,就會是 “100 MB” 這樣子的字串。
  4. 最後用 Read-Host 等按鍵,因為之後我會用滑鼠點一點來執行,若不加這行,執行完,視窗就會消失。

開啟 PowerShell 終端機視窗來執行 .\du.ps1 時,會有錯誤訊息,說不允許執行。這時候需要先執行下面這行,才能執行

Set-ExecutionPolicy RemoteSigned

參考文章

在Windows 2019 安裝 OpenSSH server

資料來源:微軟-安裝 OpenSSH

我找不到 GUI 怎麼裝,最後是開 PowerShell 終端機來安裝

檢查是否有安裝

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

安裝

預設就會安裝 OpenSSH client 了,執行這兩行會需要一點時間,我有遇到錯誤訊息,說安裝失敗,但再執行一次就可以了。

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

啟動、設定與開防火牆

用 Start-Service 就可以啟動,用 Set-Service 設定為自動啟動,後面落落長的 if 是檢查,這段檢查,可以開設定裡的防火牆來看,不用執行也可以。

# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

ssh 與 scp

若要連進來,用 ssh 即可,這邊要注意,當 ssh 進去以後,打的指令不是 linux 指令喔,是 windows 指令。

ssh <user>@<windows-2019>

因為 Windows 路徑跟 Linux 不一樣,所以不能用之前 linux 的方式來複製,得這樣用

scp my_file "john@<windows-2019>:C:\\Users\\John\\"

結語

有了 OpenSSH server ,要遠端管理或複製檔案變得方便許多,以後安裝完 Windows 要順手裝上。

參考資料

關掉 Windows 2019 裡 Internet Explorer 的安全設定

我只是想下載微軟自家的 Edge,想不到 Internet Explorer 一直在那邊該該叫,好像在跟使用者抗議說不應該換掉我的感覺。因為一直跳對話視窗出來說要列入白名單,這實在是太浪費時間,上網找了一下看怎麼關掉。

方法還蠻簡單的:Disable Internet Explorer Enhanced Security Configuration in Windows Server 2019 | by Sumit | Tensult Blogs | Medium

步驟如下

  1. 從開始,找到 Server Manager。
  2. Server Manager 的左邊選擇 Local Server。
  3. 從右邊可以看到「IE Enhanced Security Configuration」,點選這個,此時會跳出對話視窗。
  4. 把對話視窗裡的兩個選項都改為 Off 以後就可以了。

自製GameToGo

GameToGo 是個很方便的產品,讓你可以在 MBP 上使用 Windows 10 ,又可以省掉許多麻煩。

本來是打算買一個的,後來上網找了一下,找到這篇:在 Mac 下,如何安裝 BootCamp WIN10 到外接硬碟(製作自己的 GameToGo) ,看完,評估了好一會兒之後,就決定來照著做一次。手邊雖然有外接裝置,但沒有夠快的,所以就下單買了一個外接 SSD。

文章裡前面提到 MacOS 的磁碟分割軟體不好用,建議用其他的磁碟分割軟體來做。自己試了一次,發現真的不行。後來我用的方法是這樣:

  1. 使用命令列工具 diskutil 來做分割:diskutil partitionDisk disk2 GPT exFAT windows 250Gi exFAT data R
  2. 使用 iBoysoft NTFS for Mac 來將分割區格式化為 NTFS

解說一下 diskutil 那行:

  • partitionDisk: 表示要做磁碟分割
  • disk2: 是指對第幾個磁碟,這可以用 diskutil list 來看。
  • GPT:表示是做 GPT 分割,這同時也會建出一個 EFI 分割區。
  • exFAT windows 250Gi:exFAT 是分割區格式,windows 是分割區的名稱,250Gi 是分割區大小,這可以用 %,例如 50%
  • exFAT data R :exFAT 是分割區格式,data 是分割區的名稱,R 表示剩下的空間都分配給這個分割區。

分割完以後,後續的基本上就照做就可以。安裝完畢,視窗並不會關閉,就只是一片黑,這時候只要關閉視窗即可。

然後重新開機 MacOS,等到重開機的時候,會遇到安全性問題,這部份就要照 MacBook 用隨身碟執行 Windows 10:Windows To Go、WinToUSB 裡的「安全性設定不允許此 Mac 使用外部啟用磁碟」這一節去做。

  • command + R 進入復原模式,但不要選畫面上的項目,而是要選上方選單裡的「開機安全性工具程式」,然後選「無安全性」跟「允許從外部或可卸除式媒體開機」。按 X 關閉後,選左上方的「啟用磁碟」,選到要開機的磁碟,按「重新開機」按鈕即可。
  • 之後有插上外接裝置要重新開機時,要按住 Options ,再選磁碟。
  • 準備好 USB 有線滑鼠跟鍵盤,以備不時之需。

這時候就可以繼續安裝 Windows 的步驟了,最後再裝上驅動程式即可。

Windows XP 的自動更新不簡單

之前幫家裡電腦重新安裝 Windows XP,結果在升級到 Service Pack 3 以後, Windows Update 頻頻失敗,我還以為是我安裝步驟出錯,重裝了好幾次,很氣人。上網找解決方案,是有找到幾個,但是都沒辦法真正徹底解決。

後來想,好像有人自己弄 Service Pack 4,不如找來試試看吧,於是就找到三秒的偽 SP4 :三秒練功房v3: (偽) Windows XP Pre-SP4。下載的網址在 github 上,檔案很小,解開以後可以看到裡面只有下載的 batch file 跟 wget.exe,點選 build.cmd 以後,就會開始去微軟網站下載個別的更新檔案。下載完畢以後,還沒 SP3 的,就升級到 SP3,然後裝 IE8、WMP11 。裝好以後,點選 hotfix.cmd 就開始真正的安裝 SP4 。

安裝完成以後,重新開機,Windows Update 就可以順利運作並且安裝其他更新了。

gtk+ windows 應用程式裡的文字亂碼

大多數的 gtk+ Windows 應用程式都有相似的問題。

第一步,要先知道應用程式是使用哪裡的 gtk+ library,一般省麻煩的,會自己包在一起,安裝時會放在安裝目錄下。所以可以找到 etc/gtk-2.0 這個目錄,請編輯 gtkrc ,加上:

style "user-font"
{
    font_name="Sans 12"
}
widget_class "*" style "user-font"

就可以解決了。

如果不是在安裝目錄下的,就得自己回想一下看之前安裝在哪裡了。