Category: Windows (OS, power shell, etc)

  • Windows Terminal (2)

    Q: วันก่อนติดตั้ง WSL2 แล้วอยากใช้งาน bash บน Windows Terminal ด้วยทำไง?

    A: กด แล้วเลือก Ubuntu 20.04 ไงล่ะ!!

    Q: ไม่อยากกดเอาแบบเปิดมาแล้วเป็น ubuntu เลยอ่ะ

    A: แก้ Settings คลิก เลือก Settings

    จะเป็นการเปิดการตั้งค่าต่างๆ ด้วย Text Editor ที่ชื่นชอบ

    เลื่อนลงมาดูเรื่อยๆ จะเจอว่ามี Ubuntu-20.04 อยู่

    สนใจบรรทัดที่เขียนว่า “guid”: ให้ copy ข้อความที่อยู่ภายใน “{ }” มาทั้งหมด จากตัวอย่างคือ 07b52e3e-de2c-5db4-bd2d-ba144ed6c273 แล้วให้เลื่อนจอขึ้นไปด้านบนจนเห็นบรรทัดที่มีข้อความว่า “defaultProfile”: แทนที่ข้อความที่อยู่ภายในเครื่องหมาย “{ }” ด้วยข้อความที่ copy ไว้

    เปลี่ยนเป็น

    แล้ว save ปิดแล้วเปิดใหม่ก็จะได้ Ubuntu-20.04 เป็นค่า default

    • จบขอให้สนุก
  • SSH:- no matching key exchange method found

    เดี๋ยวนี้ใน Windows 10 ก็มี ssh ให้ใช้งาน แต่พอใช้กับเซิร์ฟเวอร์รุ่นเก่าๆ ก็เข้าไม่ได้ซะงั้น ไปลอง ssh ฝั่ง Linux (WSL2) ก็ให้ผลเหมือนกันคือ!!!

    Linux
    Windows
    • ถ้าเป็นเมื่อก่อน วิ่งไปหา putty อย่างไว…. แต่ Windows อุตส่าห์ทำมาให้ใช้แล้วทั้งทีจะไม่ใช้ได้ยังไง
    • สิ่งที่ต้องตรวจสอบก่อนคือ man ssh_config สำหรับ Linux ฝั่ง client ว่ารองรับ ciphers และ kexalgorithms แบบไหนรองรับหรือไม่ ส่วนฝั่ง Windows 10 จะอิงตาม OpenBSD manual ซึ่งเหมือนกับ Linux แหละ
    KexAlgorithms
    Ciphers
    • สร้างแฟ้ม .ssh/config โดย
      • Linux ก็จะให้สร้างที่ /home/username/.ssh/
      • Windows ก็อยู่ที่ C:\Users\username\.ssh
    • สำหรับ error ว่า no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 ให้เพิ่มข้อความต่อไปนี้ลงในแฟ้ม .ssh/config โดย somhost.example.org เป็นชื่อและโดเมนเนมของ server เป้าหมาย
    Host somehost.example.org
    	KexAlgorithms +diffie-hellman-group1-sha1
    • สำหรับ error ว่า no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se ให้เลือกมา 1 cipher ที่ปรากฎใน error มาใส่ในแฟ้ม .ssh/config
    Host somehost.example.org
        Ciphers aes256-cbc
    • บาง server ต้องรวมทั้งสองอย่างเช่น
    Host somehost.example.org
        KexAlgorithms +diffie-hellman-group1-sha1
        Ciphers aes256-cbc
    • ถ้าไม่อยากสร้างแฟ้ม .ssh/config สามารถสั่งผ่าน command line ได้เลยเช่น
    ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 oracle@somehost.example.org

    หรือ ถ้ามี error 2 อย่าง

    ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes256-cbc oracle@somehost.example.org

    เมื่อสร้างแฟ้ม .ssh/config แล้วลอง ssh เข้าไปใหม่

    Linux
    Windows
  • Windows Subsystem for Linux Installation Guide for Windows 10

    เพื่อเป็นการไม่เสียเวลา เริ่ม

    • เปิด Powershell ด้วยสิทธิ์ของ Administrator แล้วพิมพ์คำสั่ง ต่อไปนี้เพื่อเปิดใช้งาน “Windows Subsystem for Linux” หรือ wsl โดยจะเป็นรุ่น 1 หรือ wsl1
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    wsl1
    • ปรับรุ่นให้เป็นรุ่น 2 โดย Windows 10 ที่ใช้งาน ต้องเป็น Windows 10 version 2004, Build 19041 1903, Build 18362 ขึ้นไปเท่านั้น
    • ตรวจสอบรุ่นของ Windows ด้วยคำสั่ง winver (start->run)
    winver
    • เปิดใช้งาน Virtual Machine Platform พิมพ์คำสั่งต่อไปนี้ ใน powershell ของ administrator
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    Virtual Machine Platform
    • restart เครื่องเพื่อให้การปรับรุ่น wsl1 เป็น wsl2 สมบูรณ์
    • ตั้งค่าให้ wsl2 เป็นค่าเริ่มต้นด้วยคำสั่ง
    wsl --set-default-version 2
    Set default wsl2
    • ซึ่งจะเจอข้อความตามภาพ ให้ไปดาวน์โหลด kernel ได้จาก https://aka.ms/wsl2kernel โหลดมาแล้วติดตั้งให้เรียบร้อย (Next technology)
    download kernel
    • สั่งคำสั่งเดิมอีกครั้งเพื่อตั้งค่าให้ wsl เป็นรุ่น 2 เป็นค่าเริ่มต้น
    Set default wsl2
    • สามารถดูรายละเอียดความแตกต่างของ wsl2 ได้ที่ https://aka.ms/wsl2
    • ติดตั้ง Linux ที่ต้องการจาก Microsoft Store หรือคลิกลิงค์ด้านล่างเพื่อเข้า Microsoft Store
    ubuntu 20.04
    • ติดตั้งเสร็จแล้วคลิก Launch ใน Microsoft Store
    • จะเป็นการเปิดหน้าของลินุกส์ขึ้นมาและให้ตั้งค่าต่างๆ username และ password
    Setup
    • ตั้งค่าเสร็จได้ดังภาพ
    Fin
    • ตั้งค่าลินุกส์ให้เป็น wsl2 ตรวจสอบว่าเป็นรุ่นไหนอยู่ด้วยคำสั่ง
    wsl --list --verbose
    check version
    • ซึ่งถ้าหากยังเป็นรุ่น 1 สามารถเปลี่ยนได้ด้วยคำสั่ง
    wsl --set-version <distribution name> <versionNumber>
    • โดยแทนที่ <distribution name> ด้วยชื่อเต็มที่ได้จากคำสั่ง wsl –list –verbose เช่น Ubuntu-20.04 และ <versionNumber> ด้วย 1 หรือ 2 ตามต้องการ
    • จบขอให้สนุก

    ต้นฉบับ

    https://docs.microsoft.com/en-us/windows/wsl/install-win10

  • Windows Terminal (1)

    เบื่อ cmd ใช้ Windows Terminal แทนกันดีกว่า… ให้ดูรูปก่อน

    สวยงามตระการตา!!!

    บางคนใช้แล้วอาจจะมีความสุข

    เริ่มได้

    • เหมาะสำหรับ Windows 10 version 1909 ขึ้นไป
    • ติดตั้ง Git
    • ติดตั้ง Windows Terminal จาก Microsoft Store หรือ จาก Github

    ถ้าหากติดตั้งจาก Github ต้องติดตั้ง Desktop Bridge VC++ v14 Redistributable Package ด้วย และโปรแกรมจะไม่อัพเดตตัวเองต้องโหลดมาปรับรุ่นเองทุกครั้ง

    ระวัง!!!
    • ติดตั้งแล้วเปิดใช้งานจะได้หน้าตาประมาณนี้
    • เราจะเปลี่ยนหน้าตากันเริ่มจากพิมพ์คำสั่งต่อไปนี้ (ต้องเชื่อมต่ออินเตอร์เน็ต)
    Install-Module posh-git -Scope CurrentUser
    Install-Module oh-my-posh -Scope CurrentUser

    Posh-Git เอาไว้แสดงข้อมูลของ Git ใน prompt
    Oh-My-Posh เป็น theme สวยๆ ของ powershell นั่นเอง

    • ต่อด้วยคำสั่ง
    Set-ExecutionPolicy Unrestricted -Scope CurrentUser
    • ตรวจสอบโฟลเดอร์สำหรับเก็บ Profile ของ PowerShell ด้วยคำสั่ง
    echo $PROFILE
    • สร้างแฟ้ม $PROFILE (ไฟล์ขื่อ Microsoft.PowerShell_profile.ps1 ในโฟลเดอร์ C:\Users\haruo\OneDrive\Documents\WindowsPowerShell\) โดยมีข้อความต่อไปนี้
    Import-Module posh-git
    Import-Module oh-my-posh
    Set-Theme Paradox
    • ปิดแล้วเปิดใหม่ก็จะได้ดังภาพ
    • จะเห็นว่ามีเครื่องหมาย  อยู่ที่ prompt ด้วยจำเป็นต้องลงฟอนท์เพิ่มเติมนั่นคือฟอนท์ Powerline ซึ่งสามารถติดตั้งโดยโหลด Cascadia Code มาติดตั้ง
    • เมื่อติดตั้งแล้วให้เปลี่ยนฟอนท์ของ Windows Terminal โดยคลิก แล้วเลือก Settings
    • จะเป็นการเปิดการตั้งค่า default ที่เรียกใช้งานอยู่ ด้วย default text editor
    • เลื่อน cursor ลงมาประมาณบรรทัดที่ 38 แล้วกด enter เพิ่มข้อความว่า
    "fontFace": "Cascadia Code PL",
    "fontSize": 10,
    • save แล้วไปดูผลได้เลย
    • สวยแล้ว!
    • จบขอให้สนุก
    • Oh-My-Posh ยังมี Theme อื่นๆ ลองเข้าไปเลือกดูได้
    • เปลี่ยน theme ได้โดยแก้แฟ้ม $PROFILE เปลี่ยนจาก Paradox เป็นอย่างอื่นเช่น Darkblood เป็นต้น save ปิดแล้วเปิด Windows Terminal ใหม่
  • วิธีการติดตั้ง OpenSSH Server บน Windows

    อยาก ssh เข้า Windows Server เพื่อเข้าไปรัน PowerShell หรือรัน script cmd ต้องทำอย่างไร
    (โดยปกติ Windows ปัจจุบันมี OpenSSH Client ติดตั้งมาโดย Default ถ้าใครต้องการแค่จะใช้ ssh/scp command ข้ามบนความนี้ได้เลยครับ)

    Reference :
    https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse Installation of OpenSSH For Windows Server 2019 and Windows 10

    Environment :

    – Windows Server 2019 หรือ Windows 10 1809 ขึ้นไป

    • วิธีการติดตั้ง OpenSSH Server ผ่าน GUI
      เปิด Settings > Apps > Apps and Features > Manage Optional Feature
      s (Windows 10 ใช้คำว่า Optional Features)
    • วิธีการติดตั้ง OpenSSH Server ผ่าน PowerShell (Run as Administrator)

    – ตรวจสอบ Version ของ OpenSSH ที่จะลงก่อน

    Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

    – ทำการติดตั้งตาม Version ล่าสุด

    Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    • วิธีการสร้าง Service ให้ Start OpenSSH Server โดยอัตโนมัติเมื่อเปิดเครื่องผ่าน PowerShell Run as Administrator และทำการเปิด Firewall ให้เข้าถึงได้
    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. 
    Get-NetFirewallRule -Name *ssh*
    # There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
    # If the firewall does not exist, create one
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
    
    • ทดสอบเข้าใช้งาน (สำหรับเครื่องที่ join office365 แนะนำให้เข้าผ่าน local account ครับ)
    ssh [username]@[Windows Server IP]
    • การใช้งานต้องใช้คำสั่งของ powershell นะครับ ไม่ใช่ shell script ของ linux ดังนั้นการกดออกต้องใช้คำสั่ง exit

    ในแง่เดียวกันสามารถทำ ssh tunnel ไปมาระหว่าง Windows และ Linux ได้นะครับ แต่คงจะไม่ได้เขียน Blog ในส่วนนี้ครับ แต่จะไม่มี command ssh-copy-id ใน windows ให้ใช้คงต้อง ssh-keygen แล้ว copy key ไปสร้างในเครื่อง linux เองครับ

  • การเชื่อมต่อ Dell EMC SC Series (SAN Storage) กับ Windows 2019 ด้วย iSCSI Microsoft MPIO

    ทำไมต้องเชื่อมต่อ SAN Storage ด้วย MPIO มีข้อดีอย่างไร ต้องตั้งค่าอย่างไรให้ถูกต้อง

    Reference :
    https://www.youtube.com/watch?v=hsXtfab-xNM Dell EMC SC Series Storage : Microsoft Multipath I/0 (MPIO) Best Practice
    https://downloads.dell.com/manuals/all-products/esuprt_software/esuprt_it_ops_datcentr_mgmt/general-solution-resources_white-papers3_en-us.pdf Dell EMC SC Series Storage and Microsoft Multipath I/O
    https://www.youtube.com/watch?v=Z2ICF8yzFkU How-to: Configure iSCSI MPIO on Windows Server 2012 R2
    https://www.starwindsoftware.com/blog/lacp-vs-mpio-on-windows-platform-which-one-is-better-in-terms-of-redundancy-and-speed-in-this-case-2 ISCSI: LACP vs. MPIO

    Environment :

    – Dell EMC SC5020

    – Windows Server 2019 Standard Edition

    • MPIO ย่อมาจาก Multipath Input/Output เป็น Feature ของการเชื่อมต่อไม่ว่าจะเป็น iSCSI หรือ Fiber Channel ที่ต้องการให้ Server ไม่สับสนเมื่อมีการคุยกับ Storage หลายเส้นทาง (Storage ต่อเน็ตหลายเส้น และ Server ก็ต่อเน็ตหลายเส้น รวมถึงมีหลาย IP ไม่ได้ทำแบบหลายเส้นรวมเป็น Link เดียว) ซึ่งถ้าไม่ใช้ความสามารถนี้ จะทำให้ Server เห็น Volume หรือ LUN บน Storage เป็นหลาย ๆ อันทั้งที่เป็นอันเดียวกัน
    • นอกจากนี้ MPIO ยังสามารถทำ Load Balance โดยการกระจายการเชื่อมต่อโดยมีหลายวิธีให้เลือกใช้งานเช่น Round Robin (ไล่ลำดับไปเรื่อย ๆ แล้วกลับมาเริ่มที่ connection ที่ 1 เช่น 12341234)
    • ยกตัวอย่างในกรณีไม่ได้ทำ MPIO ได้ดังรูป
    • หลังจากทำ MPIO จะได้ดังรูป
    • MPIO ไม่ได้ติดตั้งโดย Default บน Windows Server โดยสามารถติดตั้งได้จาก Server Manager GUI โดยการ Add Feature ดังรูป
    • หรือติดตั้งผ่าน PowerShell ดังนี้
    Enable-WindowsOptionFeature -Online -FeatureName MultipathIO
    • หลังจากติดตั้งเสร็จให้ Restart Server
    • สำหรับ Dell EMC SC Series ต้องทำการแก้ไข Registry ของ Windows ด้วย PowerShell Script ดังนี้
    # MPIO Registry Settings script
    # This script will apply recommended Dell Storage registry settings
    # on Windows Server 2008 R2 or newer
    #
    # THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND.
    # THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE
    # REMAINS WITH THE USER.
    # Assign variables
    $MpioRegPath = "HKLM:\SYSTEM\CurrentControlSet\Services\mpio\Parameters"
    $IscsiRegPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Class\"
    $IscsiRegPath += "{4d36e97b-e325-11ce-bfc1-08002be10318}\000*"
    # General settings
    Set-ItemProperty -Path $MpioRegPath -Name "PDORemovePeriod" `
    -Value 120
    Set-ItemProperty -Path $MpioRegPath -Name "PathRecoveryInterval" `
    -Value 25
    Set-ItemProperty -Path $MpioRegPath -Name "UseCustomPathRecoveryInterval" `
    -Value 1
    Set-ItemProperty -Path $MpioRegPath -Name "PathVerifyEnabled" `
    -Value 1
    # Apply OS-specific general settings
    $OsVersion = ( Get-WmiObject -Class Win32_OperatingSystem ).Caption
    If ( $OsVersion -match "Windows Server 2008 R2" )
    {
     New-ItemProperty –Path $MpioRegPath –Name "DiskPathCheckEnabled" –Value 1 `
     –PropertyType DWORD `
     –Force
     New-ItemProperty –Path $MpioRegPath –Name "DiskPathCheckInterval" –Value 25`
     –PropertyType DWORD `
     –Force
    }
    Else
    {
     Set-ItemProperty –Path $MpioRegPath –Name "DiskPathCheckInterval" –Value 25
    }
    # iSCSI settings
    If ( ( Get-Service -Name "MSiSCSI" ).Status -eq "Running" )
    {
     # Get the registry path for the Microsoft iSCSI initiator parameters
     $IscsiParam = Get-Item -Path $IscsiRegPath `
     | Where-Object { ( Get-ItemProperty $_.PSPath ).DriverDesc `
     -eq `
     "Microsoft iSCSI Initiator" } `
     | Get-ChildItem `
     | Where-Object { $_.PSChildName -eq "Parameters" }
     # Set the Microsoft iSCSI initiator parameters
     Set-ItemProperty -Path $IscsiParam.PSPath -Name "MaxRequestHoldTime" `
    -Value 90
     Set-ItemProperty -Path $IscsiParam.PSPath -Name "LinkDownTime" `
    -Value 35
     Set-ItemProperty -Path $IscsiParam.PSPath -Name "EnableNOPOut" `
    -Value 1
    }
    Else
    {
     Write-Host "iSCSI Service is not running."
     Write-Host "iSCSI registry settings have NOT been configured."
    }
    Write-Host "MPIO registry settings have been configured successfully."
    Write-Host "The system must be restarted for the changes to take effect."
    • หลังจากรัน Script PowerShell ให้ Restart Server อีกรอบ
    • เพื่อให้เข้าใจง่ายขึ้นสามารถยกตัวอย่างการใช้งาน Multipath ได้ดัง Diagramในรูป
    • ตัวอย่างการตั้งค่าใน SAN Storage (Dell SC5020) โดยจะมีทั้งหมด 2 Controller ซึ่งแต่ละ Controller จะมี 4 Port
    • ซึ่งเมื่อตรวจสอบในฝั่ง Windows จะเห็นว่ามี Connection ที่เกิดจากการ Discovery โดยใส่ IP ของ ISCSI ปลายทาง จำนวน 8 Connection ซึ่งต้องเข้าไปตั้งค่าใน Target ให้มีการใช้งานแบบ multi-path ด้วยทุก Connection
    • ซึ่งเราสามารถเลือกใน Advance ได้อีกว่าจะให้เชื่อมต่อไปยัง IP หลัก IP ใด โดยแนะนำให้เลือกสลับไปตาม IP ที่มี
    • เมื่อตั้งค่าถูกต้องแล้วจะสามารถตรวจสอบได้ที่หน้า Properties จะเห็นว่ามี 2 Session
    • ซึ่งเราสามารถเลือกได้ว่าการเลือก Session ให้วิธีเลือกแบบไหน ในรูปจะเป็นแบบ Round Robin ซึ่งในกรณีมี Storage ซึ่ง Target Portal จะเป็น IP ที่เลือกในขั้นตอนก่อนหน้า
    • โดยสรุปแล้วสามารถมาดูได้ที่ Disk Management ใน Tab MPIO ว่ามี Path ในการ Active กี่ Path ถ้ามีมากกว่า 1 แสดงว่ามีการตั้งค่า Multi-Path เรียบร้อยแล้ว
    • สุดท้ายถ้าอยากรู้ว่าการตั้งค่า Work ไหมอาจจะต้องทำการตรวจสอบ Traffic ที่ Switch ว่ากระจายทุก Port ไหม หรือลองปิด Switch หรือถอดสายทิ้งสักข้าง หรือ ถอดสายที่ Server ออกทิ้งสัก Port ดูว่ายังสามารถทำงานได้หรือไม่ (ซึ่งผมไม่ได้ทดสอบ Capture มาให้ดู เพราะมีเวลาไม่มากพอให้ทดสอบ)

    สุดท้ายอาจจะงงว่าทำไปทำไมหลัก ๆ ข้อแรกคือเพื่อ Load Balance การใช้งานให้กระจายทุก Port ที่ SAN Storage ทำให้ได้ประสิทธิภาพสูงสุด (ซึ่งต้องมี Server มาต่อหลายตัว โดยการเชื่อมต่อต้องไม่ทำ link aggregation ต้อง FIX IP ต่อ Port) ข้อสองคือในกรณีที่ Port ใดมีปัญหาก็ยังสามารถใช้งานต่อได้ ซึ่งการทำ MPIO ดีกว่าการทำ Link Aggregation ในด้าน Performance ที่ทำได้ดีกว่า เพราะสามารถกระจายได้ลึกในระดับ Session (การทำ Multi Session per Connection ผ่าน Link Aggregation ทำไม่ได้เฉพาะ Windows นะครับ อาจจะทำได้ใน OS อื่น ๆ ) สามารถอ่านเพิ่มเติมผลการทดสอบได้ที่ https://www.starwindsoftware.com/blog/lacp-vs-mpio-on-windows-platform-which-one-is-better-in-terms-of-redundancy-and-speed-in-this-case-2

  • Open Google Calendar

    หลังจากครั้งก่อนได้แนะนำ extension สำหรับสร้างตารางนัดหมายบน Google Calendar ผ่านโปรแกรมเมล์ยอดนิยมตลอดกาล นั่นคือ Thunderbird นั่นเอง!!! อ่านได้ที่ Thunderbird Return วันนี้ก็จะมาเล่าถึง Extension อีกตัวทำงานอย่างเดียวกันแต่รอบนี้ไม่ต้องทำอะไรให้วุ่นวาย extension ชื่อเหมือนบทความคือ Open Google Calendar ขอข้ามวิธีติดตั้งเลยละกัน ติดตั้งเหมือน extension ตัวเก่ากลับไปอ่านบทความก่อนหน้าได้นะครับ

    เมื่อติดตั้งเสร็จแล้วจะมีปุ่มเพิ่มขึ้นมาที่มุมบนขวาดังรูป

    คลิกที่ Open Google Calendar แล้ว Sign In เข้าระบบให้เรียบร้อย จะได้ดังภาพ.

    Google Calendar

    สามารถเพิ่มอีเว้นท์อีไม่เว้นท์ได้เหมือนเปิดเว็บ กรั่กๆ ง่ายกว่าวิธีเก่า พอสมควรแก่การใช้งานบนเครื่องที่เราใช้คนเดียว!! ย้ำคนเดียว เพราะยังหาวิธี sign out ไม่เจอ 555

    วันนี้สั้นๆ แค่นี้ครับ จบขอให้สนุก…

  • Windows Subsystem for Linux in Windows 10

    แนะนำวิธีติดตั้ง Windows Subsystem for Linux ใน Windows 10 รุ่น 1903 และวิธีเปิด sshd service อัตโนมัติ

    ขั้นตอน
    1.เปิด Featured Windows Subsystem for Linux ให้ไปที่ Control Panel เลือก Program เลือก Turn Windows features on or off ทำเครื่องหมายเพื่อเลือก Windows Subsystem for Linux รอสักครู่ จากนั้นจะมีคำสั่งให้ reboot เพื่อเริ่มใช้งานได้

    Open Control Panel
    Select Program
    Select Turn Windows features on or off
    Check Windows Subsystem for Linux
    Next, reboot Windows

    2.เปิด Microsoft Store App ใส่คำว่า ubuntu ในช่อง search เลือก Ubuntu 18.04 LTS App คลิก Get ถาม Sign in with Microsoft ให้ตอบ No, thanks จากนั้นรอ

    Open Microsoft Store
    Select Ubuntu 18.04 LTS App
    Get
    Answer with “No, thanks”
    On downloading

    3.เปิด Ubuntu 18.04 LTS ที่ปุ่ม Windows Start ให้คีย์คำว่า ubuntu แล้วเลือก Run ad administrator จะใช้เวลาสักครู่ แล้วจะให้เราตั้ง username และ password ที่ไม่จำเป็นต้องเหมือนกับ username ที่ sign in เข้า Windows

    Open Ubuntu with Run as administrator
    First time Installing

    4.เปิดอนุญาตให้มีการเชื่อมต่อผ่าน sshd ในครั้งแรกที่คีย์คำสั่งว่า
    sudo service ssh start

    Allow ssh in Windows Firewall

    5.ให้ถอนโปรแกรม openssh-server เพราะว่า Ubuntu ที่ได้มาไม่มี host key

    sudo apt remove openssh-server
    Remove sshd

    6.แล้วจะติดตั้งใหม่จะได้ ssh host key

    sudo apt install openssh-server
    Install sshd with new host key

    เปิด sshd service ด้วยคำสั่ง

    sudo service ssh start

    และทดสอบว่า บริการ sshd ทำงานได้แล้วด้วยคำสั่ง

    ssh john@127.0.0.1

    ให้เปลี่ยนคำว่า john เป็นชื่อ username ที่ใช้งาน
    จะพบว่าครั้งแรกนี้ จะเข้าไม่ได้ Permission denied (publickey)

    Permission denied

    7.เราจะตั้งค่าให้ใช้ password ได้ด้วยนอกจากใช้ public key

    sudo sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config
    Allow using password

    เปิด sshd service อีกครั้ง ด้วยคำสั่ง
    sudo service ssh restart
    และทดสอบอีกครั้งว่า บริการ sshd ทำงานได้แล้วด้วยคำสั่ง
    ssh john@127.0.0.1
    ให้เปลี่ยนคำว่า john เป็นชื่อ username ที่ใช้งาน
    ในรอบนี้ เราจะใส่ password ได้แล้ว หลังจากสำเร็จ ก็ใช้คำสั่ง exit ออกมา

    sshd is OK

    เมื่อมาถึงตรงนี้ เราได้ทำให้บริการ sshd พร้อมใช้งานใน Windows ของเราแล้ว

    ต่อไปเป็นการตั้งค่าให้บริการ sshd ทำงานทันทีที่เปิด Windows
    คีย์คำสั่งเหล่านี้

    echo "sudo /usr/sbin/service ssh start" > /mnt/c/startssh.sh

    และ

    echo "%sudo ALL = NOPASSWD: /usr/sbin/service ssh start" | sudo tee /etc/sudoers.d/custom

    (ตรงนี้อาจมีถาม password ของ username ที่กำลังใช้งานที่มีสิทธิใช้คำสั่ง sudo)
    และคำสั่งนี้

    sudo chmod 0440 /etc/sudoers.d/custom

    เสร็จแล้วคีย์คำสั่ง exit เพื่อปิดหน้าต่าง

    To prepare a task for Task Schdule

    คำเตือน: หากคีย์ข้อความในคำสั่งตกหล่น จะต้องกลับไปติดตั้ง Ubuntu ใหม่โดยการ Uninstall แล้ว Install ใหม่

    เราจะไปตั้งค่าให้ startssh.sh ทำงานด้วย Task Schedule
    เปิด Task Scheduler เลือก Run as administrator เลือก Task Scheduler Library ดูด้านขวา เลือกคำสั่ง Create Task

    Open Task Schedule
    Select Create Task

    แท็บแรกคือ General ตั้ง Name ว่า startssh เลือก Run whether user is logged on or not เลือก Run with highest privileges ที่ช่อง Configure for เลือก Windows 10

    General Tab

    แท็บสองคือ triggers เลือก New ที่ช่อง Begin the task เลือก At startup ที่ช่อง Advanced Settings ด้านล่าง เลือก Enabled

    Triggers Tab

    แท็บสามคือ Actions เลือก New ที่ช่อง Action เลือก Start a program ที่ช่อง Program/script ใส่คำว่า bash และที่ช่อง Add arguments ใส่ข้อความ /mnt/c/startssh.sh

    Action Tab

    จะมี pop up window ถาม username กับ password ที่จะรัน Task นี้ ก็ใส่ให้ถูก แล้วปิดหน้าต่าง Task Schedule

    Enter password

    เมื่อมาถึงตรงนี้ เราก็ได้ตั้งค่าให้ Start sshd เมื่อ Windows Start เสร็จแล้ว

    ทดสอบโดยการ reboot Windows เพื่อดูว่า Task Schedule ทำ task ขื่อ startssh ให้อัตโนมัติสำเร็จหรือไม่ โดยการทดสอบ ssh เข้าจาก PC อีกเครื่อง สมมติว่า เครื่อง Windows มี IP 192.168.6.221

    ssh john@192.168.6.221

    หลังจากตอบ Yes แล้วใส่ password ผ่าน ก็ให้พิมพ์คำสั่ง exit เป็นอันเสร็จสิ้นการทดสอบ
    หากได้ข้อความประมาณว่า ssh: connect to host 192.168.6.221 port 22: Resource temporarily unavailable ก็ต้องกลับไปตรวจสอบว่า ทำไมจึงเปิดบริการ sshd ไม่สำเร็จ ลองเช็ค Windows Firewall

    ต่อไปเป็นการนำ ssh key (id_rsa.pub) จากเครื่อง server ไปฝากไว้ที่ Windows Subsystem for Linux เพื่อเป็น publickey ใช้แทนการใส่ password เมื่อเราจะส่งคำสั่งเข้าไปจัดการ Windows ผ่านทาง Windows Subsystem for Linux เช่น reboot Windows เป็นต้น

    ตรวจสอบที่ server จะต้องมีไฟล์ id_rsa.pub ใน ~/.ssh/ ถ้ายังไม่ได้สร้าง key ก็ให้ใช้คำสั่งนี้

    ssh-keygen -t rsa
    directory ~/.ssh

    ส่ง ssh key ด้วยคำสั่งนี้

    ssh-copy-id -i ~/.ssh/id_rsa.pub john@192.168.6.221

    ให้แทนที่ john ด้วย username ที่ใช้ และเปลี่ยน IP เป็นที่ใช้

    Send ssh key

    ถ้าทำสำเร็จ ทดสอบด้วยคำสั่ง ssh john@192.168.6.221 จะเข้าได้โดยไม่มีถาม password
    ให้ออกจาก ssh นั้นด้วยคำสั่ง exit

    Testing

    ขั้นสุดท้ายทดสอบสั่ง reboot Windows ด้วยคำสั่ง เขียนติดกันเป็นบรรทัดเดียว

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no john@192.168.6.221 "/mnt/c/Windows/system32/shutdown.exe -r -f -t 0"
    Now we can manage Windows from remote

    วิธีที่ได้นำเสนอนี้ จะนำไปเป็นส่วนหนึ่งในการควบคุม Windows PC ในห้องบริการคอมพิวเตอร์ ซึ่งเราจะประยุกต์ให้เป็นการติดตั้งผ่าน shell script ไม่ต้องคีย์ทีละคำสั่ง

  • Download and install Office365

    ปัจจุบันนักศึกษาและบุคลากรของมหาวิทยาลัยสงขลานครินทร์ สามารถใช้งาน Office365 ได้แล้ว โดยมีเงื่อนไขดังนี้

    • PC (Windows) หรือ Macs สามารถติดตั้งรวมกันได้ 5 เครื่อง
    • Tablets ติดตั้งได้ 5 เครื่อง (Android, iPadOS)
    • โทรศัพท์ ติดตั้งได้ 5 เครื่อง (Android, iOS)
    • email account ภายใต้โดเมน @email.psu.ac.th ขนาด 50GB
    • พื้นที่จัดเก็บข้อมูล One drive ขนาด 5TB

    สำหรับนักศึกษา

    • สามารถเข้าระบบได้ที่ http://email.psu.ac.th หรือ https://outlook.com/email.psu.ac.th
    • โดย username จะเป็น
      [รหัสนักศึกษา]@email.psu.ac.th
      ยกตัวอย่าง เช่น 62111111111@email.psu.ac.th
    • รหัสผ่านคือรหัสเดียวกับ PSU Passport

    สำหรับบุคลากร

    • ต้องขอเปิดใช้บริการก่อนที่ https://passport.psu.ac.th
    • หลังจากขอเปิดใช้บริการ ต้องรอ 1 ชั่วโมง จึงจะสามารถใช้งานได้
    • สามารถเข้าระบบได้ที่ http://email.psu.ac.th หรือ https://outlook.com/email.psu.ac.th
    • โดย Username จะเป็น
      [log in ของ PSU passport]@email.psu.ac.th
      ยกตัวอย่าง เช่น username.s@email.psu.ac.th
    • รหัสผ่านคือรหัสเดียวกับ PSU Passport
    ขอใช้บริการ Office365

    เริ่ม…ได้

    Sign in

    หากเป็นการเข้าระบบครั้งแรก ระบบจะให้ทำการตั้งค่า Multi-factor authentication

    More information required
    • จะเป็นหน้า Additional security verification
    Additional security verification 
    • หากต้องการความง่ายให้เลือกตามรูป แล้วใส่หมายเลขโทรศัพท์ของเราลงไป
    • คลิก Next แล้วรอรับ SMS (**อาจใช้เวลานานกว่า SMS จะมา)
    Telephone 📞
    • กรอกตัวเลขจาก SMS แล้วกด Next
    SMS

    Pages: 1 2 3