मैंने इसे मूल रूप से स्टैक ओवरफ्लो पर पोस्ट किया था, लेकिन बताया गया था कि इस प्रश्न को पोस्ट करने के लिए यह एक बेहतर जगह हो सकती है, इसलिए यहाँ जाता है;
मैंने एक छोटी स्क्रिप्ट बनाई है, जो अपने आप कंप्यूटर को रिकवरी सीक्वेंस (विंडोज रिकवरी एनवायरनमेंट) में रिबूट कर देगी। यहाँ मेरा कोड है:
$testpath = test-path "bcdedit.txt"
if ($testpath -eq $true){
Remove-item "bcdedit.txt"
}
bcdedit | Out-File "bcdedit.txt"
foreach($line in Get-Content .\bcdedit.txt) {
if($line -match $regex){
if($line -like 'recoverysequence*') {
$variable = "{" + $line.Split('{')[-1]
}
}
}
bcdedit /bootsequence $variable
Remove-item "bcdedit.txt"
shutdown /r /t 1
यह पॉवर्सशेल स्क्रिप्ट मेरे इलेक्ट्रॉन (एक Node.js- आधारित फ्रेमवर्क) ऐप से चलाई गई है। यह ऐप प्रति दिन सैकड़ों विभिन्न कंप्यूटर मॉडल पर चलता है, उनकी हार्डवेयर जानकारी इकट्ठा करता है और उत्पादन परिवेश में यूनिट के यूपीसी को पुनः प्राप्त करने के लिए डेटाबेस के साथ उनकी तुलना करता है।
हालाँकि, मेरे पास यह सुविधा है क्योंकि मैं वह करने का तरीका नहीं खोज सकता जो मैं वास्तव में करना चाहता था। मैं इस स्क्रिप्ट को वास्तव में एक कंप्यूटर को रिबूट करना चाहता था, और एक USB ड्राइव की .EFI फ़ाइल में बूट करना चाहता था । विंडोज रिकवरी एनवायरनमेंट को रिबूट करना एक वर्कअराउंड था जिसे मैंने लागू किया क्योंकि यह USB फ्लैश ड्राइव में बूट करने के लिए एक बटन प्रस्तुत करता है। मैं यहां पोस्ट कर रहा हूं क्योंकि मैं वास्तव में इस कदम को खत्म करना चाहूंगा और सीधे यूएसबी फ्लैश ड्राइव में बूट करूंगा। USB फ्लैश ड्राइव जो प्रोग्राम चला रहा है उसमें बूट करने योग्य .EFI फ़ाइल भी होगी।
अब सवाल यह है: मैं एक कोड कैसे लिख सकता हूं (PowerShell, इलेक्ट्रॉन, या Node.js में) जो कंप्यूटर को रिबूट करता है और इसे यूएसबी फ्लैश ड्राइव से बूट करता है?
मैंने यह देखने की कोशिश की है कि यह कैसे करना है bcdedit
, और कुछ भी नहीं मिल सकता है, और मुझे वास्तव में किसी भी अन्य खोज शब्द का पता नहीं है कि मुझे क्या चाहिए, मैं यहां एक नुकसान में हूं।