วิธีการตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้ PowerShell
PowerShell เป็นเครื่องมือการเขียนสคริปต์และอินเทอร์เฟซบรรทัดคำสั่งที่ช่วยให้คุณสามารถโต้ตอบกับคอมพิวเตอร์ของคุณในลักษณะที่ไม่สามารถทำได้ด้วยอินเทอร์เฟซผู้ใช้แบบกราฟิกแบบเดิม เมื่อทำงานกับการกำหนดค่าระบบ คุณอาจต้องเข้าถึงระบบและพารามิเตอร์เฉพาะของผู้ใช้บ่อยครั้ง พารามิเตอร์เหล่านี้เรียกว่าตัวแปรสภาพแวดล้อม และนำเสนอวิธีที่สะดวกในการดึงข้อมูลสำคัญและปรับแต่งแอปพลิเคชันและสคริปต์ของคุณ ในบทความนี้ ฉันจะแสดงวิธีตั้งค่าตัวแปรสภาพแวดล้อมอย่างมืออาชีพใน PowerShell
ความรู้เบื้องต้นเกี่ยวกับตัวแปรสภาพแวดล้อม
ก่อนที่เราจะเจาะลึกการตั้งค่าตัวแปรสภาพแวดล้อมใน PowerShell เรามาเริ่มต้นด้วยการแนะนำตัวแปรสภาพแวดล้อมโดยย่อ ตัวแปรสภาพแวดล้อมคือชุดของค่าไดนามิกที่อาจส่งผลต่อการทำงานของโปรแกรมที่ทำงานบนคอมพิวเตอร์ของคุณ ใช้สำหรับจัดเก็บข้อมูล เช่น ตำแหน่งของไฟล์ระบบ การกำหนดค่าของผู้ใช้ เส้นทางไปยังไฟล์ปฏิบัติการ ตำแหน่งของไฟล์ระบบปฏิบัติการ Windows เส้นทางโปรไฟล์ผู้ใช้ และการกำหนดค่าเฉพาะระบบอื่นๆ ตัวแปรสภาพแวดล้อมถือเป็นสิ่งสำคัญสำหรับโปรแกรมซอฟต์แวร์จำนวนมากเพื่อให้ทำงานได้อย่างถูกต้อง
นี่คือตัวอย่างบางส่วนของตัวแปรสภาพแวดล้อมทั่วไปที่ใช้:
เส้นทาง: ตัวแปรนี้ประกอบด้วยรายการไดเรกทอรีที่ Windows ค้นหาเมื่อค้นหาไฟล์ปฏิบัติการTEMP: ตัวแปรนี้มีเส้นทางไปยังโฟลเดอร์ชั่วคราวบนคอมพิวเตอร์ของคุณUSERNAME: ตัวแปรนี้มีชื่อผู้ใช้ของผู้ใช้ที่เข้าสู่ระบบในปัจจุบันPSModulePath: ตัวแปรสภาพแวดล้อม psmodulepath ประกอบด้วยรายการตำแหน่งที่ถูกค้นหาเพื่อค้นหาโมดูลและทรัพยากร
จะตั้งค่าตัวแปรสภาพแวดล้อมใน Windows 10 ได้อย่างไร?
โดยทั่วไปแล้ว ตัวแปรสภาพแวดล้อมจะถูกตั้งค่า แก้ไข และลบโดยผู้ดูแลระบบ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมผ่านหน้าต่างคุณสมบัติของระบบ โดยมีวิธีการดังนี้:
- ไปที่เมนู Start ค้นหา "แก้ไขตัวแปรสภาพแวดล้อมของระบบ" และคลิกที่ผลลัพธ์
ในหน้าต่าง "คุณสมบัติของระบบ" ที่ปรากฏขึ้น ให้คลิกที่ปุ่ม "ตัวแปรสภาพแวดล้อม" ที่ด้านล่างขวา
- นี่จะเป็นการเปิดหน้าต่าง "ตัวแปรสภาพแวดล้อม" ที่นี่คุณจะเห็นสองช่อง “ตัวแปรผู้ใช้” (เฉพาะสำหรับผู้ใช้ปัจจุบัน) และ “ตัวแปรระบบ” (มีให้สำหรับผู้ใช้ทุกคน)
ตัดสินใจว่าคุณต้องการสร้างผู้ใช้หรือตัวแปรระบบ: หากต้องการสร้างตัวแปรผู้ใช้ ให้คลิกปุ่ม "ใหม่" ใต้ช่อง "ตัวแปรผู้ใช้" หรือช่อง "ตัวแปรระบบ"
- ในหน้าต่าง "ตัวแปรผู้ใช้ใหม่" หรือ "ตัวแปรระบบใหม่" ที่ปรากฏขึ้น ให้พิมพ์ชื่อของตัวแปรในช่อง "ชื่อตัวแปร" และค่าของตัวแปรในช่อง "ค่าตัวแปร"
- คลิก "ตกลง" เพื่อปิดกล่องโต้ตอบ จากนั้นคลิก "ตกลง" อีกครั้งเพื่อปิดหน้าต่าง "ตัวแปรสภาพแวดล้อม" และอีกครั้งเพื่อปิดหน้าต่าง "คุณสมบัติของระบบ"
โปรดจำไว้ว่า การเปลี่ยนแปลงใด ๆ ที่คุณทำกับตัวแปรสภาพแวดล้อมจะมีผลกับเซสชัน Command Prompt หรือ PowerShell ใหม่เท่านั้น ไม่ใช่ส่วนใด ๆ ที่เปิดอยู่ในปัจจุบัน ดังนั้นคุณจะต้องเริ่มเซสชันใหม่เพื่อดูการเปลี่ยนแปลงของคุณ
การตั้งค่าตัวแปรสภาพแวดล้อมใน PowerShell
ในการจัดการตัวแปรสภาพแวดล้อมจาก PowerShell คุณสามารถใช้วิธี [System.Environment] จากคลาส .NET ที่ตั้งค่าตัวแปรสภาพแวดล้อมอย่างถาวรหรือโดยใช้ $env: ใน PSDrive สำหรับตัวแปรเซสชันชั่วคราว
สร้างหรืออัปเดตตัวแปรสภาพแวดล้อมด้วยวิธี SetEnvironmentVariable()
เมื่อต้องการเพิ่มหรืออัพเดตตัวแปรสภาพแวดล้อม คุณสามารถใช้เมธอด SetEnvironmentVariable() ได้ ไวยากรณ์สำหรับการเพิ่มหรืออัปเดตตัวแปรสภาพแวดล้อมด้วยวิธี .Net Framework “SetEnvironmentVariable” มีดังต่อไปนี้:
[System.Environment]::SetEnvironmentVariable("<variable_name>", "<variable_value>" ,"<target>")
นี่คือตัวอย่างในการตั้งค่าตัวแปรสภาพแวดล้อมตามขอบเขตผู้ใช้:
[System.Environment]::SetEnvironmentVariable("MY_VAR","My_Value","User")
สิ่งนี้จะตั้งค่า “MY_VAR” เป็น “My_Value” สำหรับผู้ใช้ปัจจุบัน หากคุณต้องการให้ตัวแปรพร้อมใช้งานสำหรับผู้ใช้ทั้งหมด ให้แทนที่ 'ผู้ใช้' ด้วย 'เครื่อง' คุณยังสามารถใช้ขอบเขตกระบวนการที่มีตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับกระบวนการปัจจุบันหรือเซสชัน PowerShell ที่กำลังทำงานอยู่ ในการตั้งค่าตัวแปรสภาพแวดล้อมของระบบ ให้ใช้ขอบเขตเป็น “เครื่อง” (ขอบเขตของระบบ)
[System.Environment]::SetEnvironmentVariable("MY_VAR","My_Value",[System.EnvironmentVariableTarget]::Machine)
ตรวจสอบให้แน่ใจว่าคุณเรียกใช้สคริปต์ PowerShell ในฐานะผู้ดูแลระบบ มิฉะนั้น คุณจะได้รับข้อผิดพลาด: "ข้อยกเว้นที่เรียก 'SetEnvironmentVariable' ด้วยอาร์กิวเมนต์ '3': ไม่อนุญาตให้เข้าถึงรีจิสทรีที่ร้องขอ"
จะแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดใน PowerShell ได้อย่างไร
หากต้องการแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดใน PowerShell คุณสามารถใช้เฟรมเวิร์ก .Net ในทำนองเดียวกัน ให้ใช้คำสั่งต่อไปนี้:
[System.Environment]::GetEnvironmentVariables()
คำสั่งนี้จะแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดใน PowerShell พร้อมด้วยค่าต่างๆ
รับค่าของตัวแปรสภาพแวดล้อม
หากต้องการดึงค่าของตัวแปรสภาพแวดล้อมเฉพาะ เช่น "OneDrive" ใต้ส่วน "ผู้ใช้" ให้ใช้สิ่งต่อไปนี้:
[System.Environment]::GetEnvironmentVariable("OneDrive", "User")
ผนวกค่าเข้ากับตัวแปรสภาพแวดล้อม
นี่คือสคริปต์ PowerShell เพื่อตรวจสอบว่ามีค่าเฉพาะอยู่ในตัวแปรสภาพแวดล้อม PATH หรือไม่ เพิ่มถ้าไม่! ค่าจะถูกคั่นด้วยเครื่องหมายอัฒภาค
# Define the path you want to check and add
$PathToCheck = "C:\WINDOWS\System32\WindowsPowerShell\v1.0\"
# Get the current value of the PATH variable
$CurrentPath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
# Check if the PATH environment variable contains the path
If ($CurrentPath -notlike "*$PathToCheck*")
{
# If not, append the path to the PATH environment variable
$NewPath = $CurrentPath + ";" + $PathToCheck
#Set the New Path
[System.Environment]::SetEnvironmentVariable("PATH", $NewPath, "Machine")
Write-host -f Green "Added '$PathToCheck' to 'Path' Variable!"
}
Else
{
Write-host -f Yellow "$PathToCheck already exists in 'Path' Variable!"
}
จะลบตัวแปรสภาพแวดล้อมใน PowerShell ได้อย่างไร
หากต้องการลบตัวแปรสภาพแวดล้อมใน PowerShell โดยใช้คลาส .NET [System.Environment] ให้ใช้สคริปต์ต่อไปนี้:
[System.Environment]::SetEnvironmentVariable("My_Var", $null ,"User")
วิธีนี้จะลบ "My_Var" ออกจากส่วน "ผู้ใช้" ของตัวแปรสภาพแวดล้อม สคริปต์ใช้เมธอด SetEnvironmentVariable เพื่อตั้งค่าของตัวแปรสภาพแวดล้อมเป็น null และลบออกได้อย่างมีประสิทธิภาพ โปรดทราบว่าคุณต้องเริ่มเซสชันใหม่ (เปิดหน้าต่าง PowerShell ใหม่) เพื่อให้การเปลี่ยนแปลงมีผล
การจัดการตัวแปรสภาพแวดล้อมผ่าน PSDrive ใน PowerShell
ใน PowerShell นั้น PSDrive นั้นเป็นที่เก็บข้อมูล เช่นเดียวกับรันไทม์ไดรฟ์ ซึ่งสามารถแมปข้อมูลประเภทต่างๆ ได้ เช่น รีจิสตรีคีย์ ตัวแปรสภาพแวดล้อมของระบบ ที่เก็บใบรับรอง ฯลฯ PowerShell มาพร้อมกับ PSDrive ในตัวที่เรียกว่า Env: ที่แมปกับตัวแปรสภาพแวดล้อม (AKA: ผู้ให้บริการสภาพแวดล้อม PowerShell) ซึ่งช่วยให้คุณเข้าถึงและแก้ไขตัวแปรสภาพแวดล้อมได้เหมือนกับว่าเป็นไฟล์ในไดรฟ์
จะเพิ่มตัวแปรสภาพแวดล้อมใน PowerShell ได้อย่างไร
หากต้องการเพิ่มตัวแปรสภาพแวดล้อมใน PowerShell คุณสามารถใช้ cmdlet New-Item ได้ ตัวอย่างเช่น หากต้องการเพิ่มตัวแปรสภาพแวดล้อมใหม่ชื่อ NEW_VAR ด้วยค่า new value คุณสามารถใช้คำสั่งต่อไปนี้:
New-Item -Path Env:MY_VAR -Value "new value"
สิ่งหนึ่งที่ควรทราบที่นี่คือ เมื่อคุณเพิ่มตัวแปรสภาพแวดล้อมใหม่ ตรวจสอบให้แน่ใจว่าตัวแปรนั้นไม่ขัดแย้งกับตัวแปรถาวรที่มีอยู่ มิฉะนั้น คุณจะเห็น "รายการใหม่ : รายการที่เส้นทาง 'ตัวแปร' มีอยู่แล้ว" ข้อผิดพลาด.
อัปเดตตัวแปรสภาพแวดล้อมใน PowerShell
หากต้องการอัปเดตตัวแปรสภาพแวดล้อมสำหรับเซสชัน PowerShell คุณสามารถใช้ Set-Item cmdlet พร้อมพารามิเตอร์ -Path ที่ตั้งค่าเป็น Env: PowerShell ไดรฟ์และชื่อและค่าของตัวแปร นี่คือตัวอย่าง:
Set-Item -Path Env:MyVariable -Value "MyValue"
ตรวจสอบว่ามีตัวแปรสภาพแวดล้อมอยู่ใน PowerShell หรือไม่
หากต้องการตรวจสอบว่ามีตัวแปรสภาพแวดล้อมอยู่ใน PowerShell หรือไม่ คุณสามารถใช้ Get-Item cmdlet พร้อมพารามิเตอร์ -Path ที่ตั้งค่าเป็น Env: PowerShell ไดรฟ์และชื่อของตัวแปร นี่คือตัวอย่าง:
# Define the name of the environment variable
$variableName = "MY_VAR"
# Try to get the environment variable
$EnvVar = Get-Item "Env:$variableName" -ErrorAction SilentlyContinue
# Check if the environment variable exists
if ($EnvVar) {
Write-host -f Green "Environment variable $variableName exists."
} else {
Write-host -f Yellow "Environment variable $variableName does not exist."
}
สคริปต์นี้จะตรวจสอบและส่งคืนว่ามีตัวแปรสภาพแวดล้อม MyVariable อยู่หรือไม่
รับตัวแปรสภาพแวดล้อมในสคริปต์ PowerShell
หากต้องการรับตัวแปรสภาพแวดล้อมทั้งหมด: Get-Item cmdlet พร้อมพารามิเตอร์ -Path ที่ตั้งค่าเป็นไดรฟ์ Env: PowerShell ไดรฟ์ Env: เป็นไดรฟ์พิเศษใน PowerShell ที่ให้การเข้าถึงตัวแปรสภาพแวดล้อมของระบบ (รวมถึงตัวแปรชั่วคราวจากเซสชันและตัวแปรถาวร) ต่อไปนี้คือตัวอย่างวิธีใช้ตัวแปรสภาพแวดล้อมในสคริปต์ PowerShell:
Get-Item -Path Env:
คำสั่งนี้รับตัวแปรสภาพแวดล้อมทั้งหมด! คุณยังสามารถใช้ “Dir Env:” หรือ “Get-ChildItem Env:” ได้เช่นกัน ในทำนองเดียวกัน เมื่อต้องการดูค่าของตัวแปรสภาพแวดล้อมเฉพาะใน PowerShell คุณสามารถใช้สคริปต์ต่อไปนี้:
Get-Item Env:My_Var
การลบตัวแปรสภาพแวดล้อม
หากต้องการลบตัวแปรสภาพแวดล้อมใน PowerShell คุณสามารถใช้ Remove-Item cmdlet ตัวอย่างเช่น หากต้องการลบตัวแปรสภาพแวดล้อม MY_VAR คุณสามารถใช้คำสั่งต่อไปนี้:
Remove-Item -Path Env:MY_VAR
ผนวกเข้ากับมูลค่าสิ่งแวดล้อม
มาต่อท้ายค่าใหม่ให้กับตัวแปรสภาพแวดล้อมโดยใช้ $Env:App_Path
# Get the current value of the environment variable
$CurrentValue = (Get-Item 'Env:App_Path').Value
# Define the value you want to append
$ValueToAppend = ";C:\Program Files\MyApp"
# Append the new value to the current value
$NewValue = $CurrentValue + $ValueToAppend
# Set the new value as the environment variable's value
$Env:App_Path = $NewValue
โปรดจำไว้ว่า: หากต้องการเปลี่ยนแปลงตัวแปรสภาพแวดล้อมอย่างถาวร (ซึ่งจะคงอยู่หลังจากเซสชันสิ้นสุดลง) คุณต้องใช้คลาส .NET [System.Environment]
ตำแหน่งรีจิสทรีสำหรับตัวแปรสภาพแวดล้อม
ตัวแปรสภาพแวดล้อมจะถูกจัดเก็บไว้ใน Windows Registry ในตำแหน่งต่อไปนี้:
- ตัวแปรสภาพแวดล้อมทั้งระบบ: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
- ตัวแปรสภาพแวดล้อมเฉพาะผู้ใช้: [HKEY_CURRENT_USER\Environment]
แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการตัวแปรสภาพแวดล้อมใน PowerShell
การจัดการตัวแปรสภาพแวดล้อมใน PowerShell อาจเป็นเครื่องมือที่มีประสิทธิภาพ แต่สิ่งสำคัญคือต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเพื่อหลีกเลี่ยงข้อผิดพลาดทั่วไป คำแนะนำบางประการที่ควรคำนึงถึงมีดังนี้:
- ใช้ชื่อตัวแปรเชิงพรรณนา: ใช้ชื่อตัวแปรเชิงพรรณนาที่ง่ายต่อการจดจำและเข้าใจ ซึ่งจะทำให้ง่ายต่อการบำรุงรักษาสคริปต์ของคุณเมื่อเวลาผ่านไป
- หลีกเลี่ยงการเขียนทับตัวแปรที่มีอยู่: โปรดใช้ความระมัดระวังเมื่อตั้งค่าตัวแปรเพื่อหลีกเลี่ยงการเขียนทับตัวแปรที่มีอยู่ ซึ่งอาจทำให้เกิดพฤติกรรมที่ไม่คาดคิดในสคริปต์ของคุณ
- ใช้เครื่องหมายคำพูดล้อมรอบค่าตัวแปร: ใช้เครื่องหมายคำพูดล้อมรอบค่าตัวแปรเสมอเพื่อหลีกเลี่ยงปัญหาเรื่องการเว้นวรรคหรืออักขระพิเศษ
การแก้ไขปัญหาทั่วไปเกี่ยวกับตัวแปรสภาพแวดล้อมใน PowerShell
เมื่อทำงานกับตัวแปรสภาพแวดล้อมใน PowerShell คุณอาจประสบปัญหาทั่วไปบางประการ ต่อไปนี้เป็นเคล็ดลับที่จะช่วยคุณแก้ไขปัญหาเหล่านี้:
- ตรวจสอบชื่อตัวแปร: ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อตัวแปรที่ถูกต้องเมื่อตั้งค่าหรืออ้างอิงตัวแปร
- ตรวจสอบว่ามีตัวแปรอยู่หรือไม่ก่อนดำเนินการเพิ่ม/อัปเดต/ลบ
- ตรวจสอบค่าตัวแปร: ตรวจสอบค่าของตัวแปรเพื่อให้แน่ใจว่าตั้งค่าไว้อย่างถูกต้อง
- ตรวจสอบขอบเขตตัวแปรสภาพแวดล้อม: ตัวแปรสภาพแวดล้อมสามารถมีขอบเขตที่แตกต่างกันได้ ดังนั้นตรวจสอบให้แน่ใจว่าคุณกำลังตั้งค่าและอ้างอิงตัวแปรในขอบเขตที่ถูกต้อง
บทสรุป
ในบทความนี้ เราได้กล่าวถึงพื้นฐานของการตั้งค่าและการจัดการตัวแปรสภาพแวดล้อมใน PowerShell ไม่ว่าจะเป็นการดู การสร้าง การแก้ไข หรือการลบตัวแปรสภาพแวดล้อม PowerShell ช่วยคุณได้ PowerShell นำเสนอวิธีที่ง่ายและรวดเร็วในการจัดการตัวแปรสภาพแวดล้อมในสภาพแวดล้อม Windows ของคุณ การใช้สคริปต์อันทรงพลังเหล่านี้ทำให้คุณสามารถจัดการตัวแปรสภาพแวดล้อมในสภาพแวดล้อม Windows ของคุณโดยอัตโนมัติ และทำให้ชีวิตของคุณง่ายขึ้นมาก


