การเข้ารหัสไฟล์และการถอดรหัสไฟล์อาจเป็นงานที่ค่อนข้างยาก อย่างไรก็ตาม เมื่อใช้PowerShellคุณสามารถลดความซับซ้อนของกระบวนการนี้ให้เหลือเพียงคำสั่งบรรทัดเดียวได้ ในการดำเนินการนี้ เราจำเป็นต้องติดตั้ง Gpg4win และโมดูล Powershell ใช้สคริปต์เพื่อทำให้กระบวนการเข้ารหัสและถอดรหัสเป็นแบบอัตโนมัติ บทความนี้จะแสดงวิธีเข้ารหัสไฟล์ใน Windows 10 โดยอัตโนมัติด้วยสคริปต์
ก่อนที่จะเริ่มต้น ผู้ใช้จำเป็นต้องติดตั้งและ กำหนดค่าเครื่องมือGPG4Winคุณจะใช้ฟังก์ชันการเข้ารหัสแบบสมมาตรของ GPG4Win ในโมดูลนี้
โมดูล Powershell นี้จัดการการเข้ารหัสไฟล์ด้วยรหัสผ่านแทนที่จะเป็นคู่กุญแจ ความแรงของการเข้ารหัสขึ้นอยู่กับความแรงของรหัสผ่าน ผู้ใช้ควรเลือกรหัส ผ่านที่ซับซ้อน อาจใช้ เครื่องมือ LastPassหรือ เครื่องมือ จัดการรหัส ผ่านอื่น สุดท้าย ทำการติดตั้งให้เสร็จสิ้นและไปยังโมดูล Powershell
โมดูล Powershell เป็นชุดฟังก์ชันแบบแพ็กเกจ โดยใช้รูปแบบไฟล์ PSM1 คุณสามารถบันทึกไฟล์เหล่า นี้ในโฟลเดอร์ Modules ในโปรไฟล์ของคุณ จากนั้นเพิ่มโมดูลไปยังเซสชัน/สคริปต์ของคุณโดยใช้Import-Module
cmdlet ของโมดูลทั้งหมดพร้อมใช้งาน เมื่อคุณพัฒนาทักษะ Powershell คุณสามารถสร้างโมดูลของคุณเองได้ หากต้องการติดตั้งโมดูลการเข้ารหัสไฟล์ให้ดาวน์โหลดโมดูลจาก TechNet ถัดไป คุณต้องคัดลอกลงในโฟลเดอร์ Modules โฟลเดอร์ใดโฟลเดอร์หนึ่ง หากคุณต้องการติดตั้งด้วยตนเอง ให้คัดลอกไปที่ PowershellModules ในไดเร็กทอรีผู้ใช้ของคุณ คัดลอกบรรทัดด้านล่างลงใน Explorer เพื่อสร้างทางลัด:
%โปรไฟล์ผู้ใช้%\Documents\WindowsPowerShell\Modules
หากคุณต้องการติดตั้งโมดูลสำหรับผู้ใช้ทั้งหมด ให้ใช้ โฟลเดอร์ Program Files\Windows PowerShell\ Modules วางบรรทัดต่อไปนี้ลงใน Explorer เพื่อสร้างทางลัด:
%ProgramFiles%\Windows PowerShell\Modules
สร้างโฟลเดอร์ใหม่ชื่อ GNUPG ในโฟลเดอร์ Modules และวางไฟล์ PSM1 ที่นั่น
คุณต้องนำเข้าโมดูลทุกครั้งที่คุณใช้: Import-Module GnuPG อย่างไรก็ตาม คุณสามารถปรับการดำเนินการเป็นไม่จำกัดได้โดยการเรียกใช้Set -ExecutionPolicy RemoteSigned cmdlet
เนื่องจากคุณได้โหลดโมดูลนี้แล้ว คุณจะต้องทำเครื่องหมายว่าเป็นไฟล์ในเครื่อง คลิกขวาที่ไฟล์และเลือกPropertiesจากนั้นในกล่องโต้ตอบ ให้เลือกUnblockยืนยันการดำเนินการในกล่องโต้ตอบ UAC และคุณพร้อมที่จะใช้โมดูลแล้ว
คำสั่ง Cmdlet
ข้ามคำสั่ง Cmdlet แรกที่ใช้ในการติดตั้ง GPG4Win หากคุณยังไม่เสร็จสิ้นขั้นตอนนี้ คุณสามารถใช้ cmdlet นี้เพื่อติดตั้งและกำหนดค่าโปรแกรมได้ cmdlet จะโหลดลงในไดเร็กทอรีที่คุณเลือกและรันโปรแกรมติดตั้ง คำ สั่ง cmdlet อีกสองคำสั่งเพิ่มเติม: Add-EncryptionและRemove-Encryptionทั้งสองมีพารามิเตอร์สามตัว
พารามิเตอร์แรกคือโฟลเดอร์: -FolderPathโมดูลนี้จะผ่านแต่ละไฟล์ในโฟลเดอร์เพื่อเข้ารหัสหรือถอดรหัสไฟล์ หากคุณไม่ต้องการชี้ไปที่โฟลเดอร์ Documents คุณควรสร้างโฟลเดอร์ย่อยคู่หนึ่งเพื่อทำงานกับสคริปต์นี้ หากคุณดูซอร์สโค้ดของโมดูล โมดูลจะใช้Get-ChildItemเพื่อรับทุกสิ่งในไดเร็กทอรี ฟังก์ชันถอดรหัสจะจำกัดการค้นหาเฉพาะไฟล์ที่ลงท้ายด้วย .GPG
พารามิเตอร์ถัดไปคือรหัสผ่านที่ใช้สำหรับการเข้ารหัสไฟล์: -Passwordตรวจสอบให้แน่ใจว่ารหัสผ่านนี้ซับซ้อน เนื่องจากจะปกป้องไฟล์ของคุณ ฟังก์ชั่นนี้จะผ่านแต่ละไฟล์ด้วย ForEach loop ไฟล์และรหัสผ่านรวมกันเป็นอาร์กิวเมนต์ในStart-Processสำหรับ GPG4Win
พารามิเตอร์สุดท้าย-GPGPathเป็นทางเลือก มีการติดตั้งเป็นตำแหน่งเริ่มต้นสำหรับ GPG4Win หากคุณติดตั้ง บนไดรฟ์อื่น คุณสามารถอัปเดตได้โดยใช้พารามิเตอร์นี้เพื่อเปลี่ยนเป้าหมายสำหรับStart-Process
เขียนสคริปต์
ตอนนี้ถึงเวลาที่จะทำให้กระบวนการเป็นแบบอัตโนมัติ สคริปต์นี้จะเข้ารหัสไฟล์ในโฟลเดอร์ ย้ายไฟล์ที่ถอดรหัสไปยังโฟลเดอร์ใหม่ และลบไฟล์ต้นฉบับ
ขั้นแรก ให้นำเข้าโมดูลโดยใช้mport-Module GnuPG คุณต้องตั้งค่าตัวแปรสองสามตัว ตัวแปรตัวแรก$EncryptionTargetคือไดเร็กทอรีเป้าหมาย (ตัวอย่างเช่น ตัวแปรสภาพแวดล้อมใช้เพื่อชี้ไปยังไดเร็กทอรีเอกสารของผู้ใช้ปัจจุบัน) ตั้งตัวแปรตัวที่สองเป็นข้อความรหัสผ่าน ขั้นตอนนี้จะทำให้การเปลี่ยนรหัสผ่านง่ายขึ้น
นำเข้าโมดูล GnuPG
$EncryptionTarget = "$($env:USERPROFILE)\Documents\Files-ToEncrypt"
$วลีรหัสผ่าน = "MakeAVeryLongSecurePhrase"
เพิ่มการเข้ารหัส $EncryptionTarget -รหัสผ่าน $วลีรหัสผ่าน
เริ่ม-สลีป-วินาที 60
$EcnryptedFiles = Get-ChildItem $EncryptionTarget | โดยที่วัตถุ $_.Name เหมือน "*.gpg"
foreach ($gpg ใน $EcnryptedFiles){
ย้ายรายการ -Path $gpg.FullName -Destination "$($env:USERPROFILE)\Documents\$($gpg.Name)"
}
$UnEncryptedFiles = รับ-ChildItem $EncryptionTarget | โดยที่วัตถุ $_.Name - ไม่เหมือน "*.gpg"
foreach ($nongpg ใน $UnEcnryptedFiles){
ลบรายการ -Path $nongpg.FullName -ยืนยัน $false
}
ตัวแปรเหล่านี้ไปที่Add-Encryptionเป็นพารามิเตอร์ ผู้ใช้ใช้Start-Sleepเพื่อตั้งเวลาในการเข้ารหัสไฟล์ให้เสร็จสิ้น เช่น เวลาคือสามนาที เวลานี้อาจแตกต่างกันไปตามขนาดและจำนวนไฟล์ที่กำลังดำเนินการ
คุณได้รับไฟล์ .GPG โดยการรวมGet-ChildItemกับWhere- Object ใช้ForEach loop เพื่อให้แต่ละไฟล์ถูกคัดลอกไปยังไดเร็กทอรีใหม่ คุณสามารถทำซ้ำขั้นตอนเหล่านี้ได้ แต่แปลง-like เป็น -notlike เพื่อให้ ForEachวง ที่สอง ล้างไฟล์ต้นฉบับ
ตั้งค่างาน cron
เมื่อคุณมีสคริปต์แล้ว คุณต้องสร้างงานที่กำหนดเวลาไว้ เปิดTask Schedulerแล้วคลิกCreate Task
ตั้งชื่อมันว่าเข้ารหัสอัตโนมัติ หากคุณต้องการเรียกใช้งานเฉพาะเมื่อเข้าสู่ระบบแล้ว ให้คงการตั้งค่าไว้ตามค่าเริ่มต้น หากตั้งค่าให้ทำงานไม่ว่าผู้ใช้จะเข้าสู่ระบบหรือไม่ ให้เลือก " เรียกใช้ไม่ว่าผู้ใช้จะเข้าสู่ระบบหรือไม่ " ซึ่งจะสามารถเข้าถึงเฉพาะโฟลเดอร์ในคอมพิวเตอร์เท่านั้น อย่างไรก็ตาม หากปลายทางของคุณอยู่บนคอมพิวเตอร์ระยะไกล คุณจะต้องจัดเก็บรหัสผ่าน นอกจากนี้ คุณยังสามารถตั้งค่าบัญชีรองเพื่อปกป้องบัญชีหลักของคุณได้
คลิกที่ แท็บท ริกเกอร์และตั้งค่าเงื่อนไข จากนั้นคลิกใหม่เพื่อเปิดหน้าต่างการกำหนดเวลา คุณสามารถปล่อยให้การตั้งค่าเป็นค่าเริ่มต้น จากนั้นคลิกที่ช่องถัดจากทำซ้ำงานทุกๆและตั้งค่าเป็น5 นาทีคุณสามารถเลือกเวลาเพิ่มเติมได้หากความต้องการของคุณไม่เร่งด่วน ในเมนูแบบเลื่อนลงถัดจากระยะเวลา:เลือกIndefinitelyคลิกOKเพื่อกลับไปยังหน้าต่าง Create Task
บน แท็บ การดำเนินการคลิกใหม่ในหน้าต่างป๊อปอัป ตั้งค่าเส้นทางไปยัง Powershell ใน กล่อง โปรแกรม :
%SystemRoot%/system32/Windows PowerShell/v1.0/powershell.exe
ในกล่องอาร์กิวเมนต์ ให้ใส่./และเส้นทางไปยังสคริปต์ คลิกตกลงสองครั้งและสคริปต์จะถูกตั้งค่าให้ทำงานตามงานที่กำหนดเวลาไว้
ดูเพิ่มเติม: