# OS作業系統

# Windows Server

# 安裝並設定 Windows Server Core 2016

#### 什麼是core？

微軟的server core，就是回到dos時代，使用單純的command line管理，速度更快，體積更小，漏洞也更少
#### 前置工作：

1. 使用Ventoy工具，把常用裝機ISO複製進去。
2. 安裝前使用MEMTEST86+測試記憶體，如果MEMTEST86+無法順利啟動，選擇RamDisk啟動，完成後用AIDI64烤機半小時，看看溫度等是否正常
3. server的版本是按照輸入的key來區分的，可以google ‘KMS key’，從微軟的官網取得
4. 系統安裝過程中，資料沒有要留的硬碟，把上面的所有分區都刪除，避免日後diskpart無法管理。如果無法刪除，則使用DiskGenius處理，DiskGenius有bug，每處理完一顆硬碟，要存檔一次，否則會出錯。
5. 安裝結束，重新開機進入BIOS確認開機boot第一選項是windows boot manager
6. 開機完成需要設定Administrator密碼，輸入第一次密碼後，要按tab鍵才能跳到第二行，至此，安裝完成。

#### 基礎設定：

優先設定電腦名稱，IP位址，還有remote desktop(才能複製貼上指令)，remote desktop選擇less secure選項  

    SCONFIG
因為遠端控制大小寫等原因，最好重新修改一次ADMINISTRATOR 密碼，順便設定密碼永遠不會過期

```
NET USER Administrator 新密碼
WMIC UserAccount where Name='Administrator' set PasswordExpires=False
```
Windows 10自帶Remote Desktop Connection，開始使用來遠端登入伺服器  
如果CMD視窗不幸關閉，可以用CTRL+ALT+END(等於本地按下CTRL+ALT+DELETE)，呼叫出Task Manager，再選擇Run，然後執行CMD  
密碼複雜性需求(Stop PasswordComplexity )，執行powershell，再執行以下指令
```
secedit /export /cfg c:\secpol.cfg
(gc C:\secpol.cfg).replace("PasswordComplexity = 1", "PasswordComplexity = O") | Out-File C:\secpol.cfg
secedit /configure /db c:\windows\security\local.sdb /cfg C:\secpol.cfg /areas SecurityPolicy
rm -force C:\secpol.cfg
```
#### 關閉防毒軟體windows Defender，執行powershell
```
REM * 查看系統設定狀態 *
Get-MpPreference
REM * 關閉實時監控 *
Set-MpPreference -DisableRealtimeMonitoring $true
REM * 排除監控資料夾 *
Set-MpPreference -ExclusionPath “C:\temp”, “C:\VMs”, “C:\NanoServer”
REM * 排除特定程式 *
Set-MpPreference -ExclusionProcess “vmms.exe”, “Vmwp.exe”
REM * 移除windows defender，執行後要restart *
Dism /online /Disable-Feature /FeatureName:Windows-Defender /Remove /NoRestart /quiet複製
```
#### 如果服務的單位有提供KMS伺服器，則可以這樣激活
```
REM * 檢查Windows版本 *
wmic os get caption
REM * 輸入Windows Server 2016 Standard的key *
slmgr /ipk WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
REM * 增加KMS伺服器位址 *
slmgr /skms 192.168.0.3
REM * 激活Server *
slmgr /ato
```
#### 使用sconfig執行windows update，做必要的更新，全部完成後，重新開機用PE備份，開始硬碟配置以及設定：
```
REM * 硬碟管理程式入口 *
DISKPART
REM * LIST常用指令 *
LIST DISK
LIST VOLUME
LIST PARTITION
REM * SELECT常用指令 *
SELECT DISK
SELECT VOLUME
SELECT PARTITION
REM * 全部DISK轉換成動態磁碟，才能建立RAID0 *
CONVERT DYNAMIC
CREATE VOLUME STRIPE DISK=2,3,4
REM * SELECT DISK 後建立分區表 *
CREATE PARTITION PRIMARY
REM * SELECT VOLUME 後分配盤符 *
ASSIGN LETTER=D
REM * FORMAT後開始使用 *
FORMAT FS=NTFS LABEL="SRV2" QUICK
REM * 列出所有驅動器 *
fsutil fsinfo drives
```
#### 安裝驅動程式：

從superMicro的官網可以下載，ChipSet和NIC解壓縮後，可以直接執行EXE檔，會跳出圖形安裝介面  
進行磁碟測試：用微軟的工具diskspd，要在powershell下執行，參數-t2為2線程  
```
.\diskspd -t2 -o32 -b4k -r4k -w0 -d120 -Sh -D -L -c5G .\IO.dat > IO02t.txt
```
#### 部署管理工具：Windows Admin Center

Windows Admin Center提供了在遠端，用圖形介面來管理server，比起打指令來的直觀和方便。但是電腦都沒有加入domain，單純workgroup的設定比較麻煩一點。需要設定trust host和防火牆。注意：要在powershell下執行
```
REM * Server上設定防火牆 *
Set-NetFirewallRule -Name WINRM-HTTP-In-TCP-PUBLIC -RemoteAddress Any

REM * 用來管理的Win 10上設定防火牆 *
Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress Any

REM * 查看目前TrustedHosts的設定 *
Get-Item WSMan:\localhost\Client\TrustedHosts
REM * 導出目前的TrustedHosts *
Get-Item WSMan:localhost\Client\TrustedHosts | Out-File C:\OldTrustedHosts.txt
REM * 個別指定TrustedHosts的NetBIOS, IP, or FQDN，精細設定 *
Set-Item WSMan:localhost\Client\TrustedHosts -Value '192.168.1.1,server01.contoso.com,server02'
REM * 門戶洞開的TrustedHosts，懶人最方便的設定 *
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*'
REM * 知道怕了快清掉TrustedHosts的設定 *
Clear-Item WSMan:localhost\Client\TrustedHosts
```
#### 部署和設定Hyper-V：

用前面裝好的Windows Admin Center，用遠端的Win 10管理server core來安裝Hyper-V。  
再用遠端的Win 10，也安裝Hyper-V來遠端管理server core上面的Hyper-V  
用Enhanced mode遠端connet server上的VM，設定config檔案的位置：
```
C:\Users\Rain\AppData\Roaming\Microsoft\Windows\Hyper-V\Client\1.0
```
#### 部署KMS server：

使用Wind4提供的vlmcsd，作者是hotbird64，注意先下載回來後，使用其中的floppy.vfd軟磁片鏡像做VM來啟動。  
開始前先用winImage修改根目錄下的syslinux.cfg，修改如下
```
`# boot "LABEL dhcp" if prompt is 0 or the TIMEOUT has expired
DEFAULT static
`# Customizing
LABEL static
  KERNEL bzImage
  APPEND 
  vga=773 
  quiet 
  initrd=initrd 
  KBD=us 
  LISTEN=::,0.0.0.0 
  TZ=CST-8
  IPV4_CONFIG=STATIC 
  IPV4_ADDRESS=192.168.0.3/24 
  IPV4_GATEWAY=192.168.0.1 
  IPV4_DNS1=8.8.8.8 
  IPV4_DNS2=8.8.4.4 
  NTP_SERVER=pool.ntp.org 
  HOST_NAME=vlmcsd 
  ROOT_PASSWORD=vlmcsd 
  USER_NAME=user 
  USER_PASSWORD=vlmcsd 
  GUEST_PASSWORD=vlmcsd 
  INETD=Y 
  WINDOWS=03612-00206-555-395032-03-1033-17763.0000-2802018 
  OFFICE2010=03612-00096-199-204970-03-1033-17763.0000-2802018 
  OFFICE2013=03612-00206-234-921934-03-1033-17763.0000-2802018 
  OFFICE2016=03612-00206-437-921934-03-1033-17763.0000-2802018 
  OFFICE2019=03612-00206-677-661250-03-1033-17763.0000-2802018 
  WINCHINAGOV=03612-03858-007-004198-03-1033-17763.0000-2802018 
  HWID=36:4F:46:3A:88:63:D3:5F
```
#### 其他管理指令：
```
REM * 查看遠端電腦的分享 *
NET VIEW \\192.168.0.8
REM * 列出所有網路磁碟機 *
net use
REM * connect網路磁碟機 *
net use Z: \\192.168.0.9\Downloads /user:userName password
REM * 斷開指定的網路磁碟機 *
net use z: /delete
REM * 列出所有PageFile *
WMIC PAGEFILESET LIST /FORMAT:LIST
REM * 先關閉pageFile *
WMIC COMPUTERSYSTEM WHERE NAME="Server0BAK" SET AutomaticManagedPagefile=False
REM * 然後互動式刪除所有PageFile *
WMIC PAGEFILESET DELETE /INTERACTIVE:?
REM * 建立一個2G~384G大小，放在D:的PageFile *
WMIC PAGEFILESET CREATE Name="D:\pagefile.sys", InitialSize=2048,MaximumSize=262144
REM * 日後加大這個PageFile *
WMIC PAGEFILESET WHERE Name="D:\\pagefile.sys" SET InitialSize=2048,MaximumSize=524288
REM * 更改C槽的LABEL *
Label C: System
REM * 打開工作管理員 *
TASKMGR
```

# Hyper-V設定

#### 安裝

# Debian

# Debian 13

#### Hyper-V 建立 Debian 13 VM
VM（建議值）
- Generation：Gen 2
- CPU：8 vCPU
- RAM：4096 MB（開 Dynamic Memory）
- 系統碟：直接1TB不再分割

#### Secure Boot（Gen2 Linux 常見關鍵點）  
Gen2 VM Secure Boot 預設開啟  
要讓 Linux 安全開機：Secure Boot Template 選 “Microsoft UEFI Certificate Authority (UEFI CA)”   
若遇到 ISO 開不了或卡住：先關 Secure Boot 也可（安裝完再決定要不要開回去）。

#### 安裝過程IP網關DNS一定要設定好
不能上網無法更新與安裝套件，非常麻煩

#### 優先安裝SSH
用本地power shell通過SSH連上Debian，指令才能用複製黏貼  

#### 完成後先對系統做一個備份

#### 安裝word press 與 bookStack 特別留意密碼設置
用AI生成指令安裝時，要特別注意這點，否則後續修正很麻煩