सभी उपयोगकर्ताओं के लिए बैकअप और नेटवर्क प्रिंटर को पुनर्स्थापित करने के लिए एक बैच फ़ाइल बनाएँ


2

मेरे पास एक XP मशीन है जिसमें कई प्रोफाइल हैं। इन प्रोफाइल में कभी-कभी प्रत्येक उपयोगकर्ता के लिए अलग-अलग प्रिंटर होते हैं। उदाहरण:

  • उपयोगकर्ता A में नेटवर्क प्रिंटर 1, 2 और 5 मैप किया गया है। प्रिंटर 2 डिफ़ॉल्ट है।
  • उपयोगकर्ता बी में नेटवर्क प्रिंटर 1, 4 और 8 मैप किया गया है। प्रिंटर 4 डिफ़ॉल्ट है।
  • उपयोगकर्ता C में नेटवर्क प्रिंटर 2 मैप किया गया है। प्रिंटर 2 डिफ़ॉल्ट है।

मेरा आदर्श यह होगा कि मशीन पर मौजूद प्रत्येक उपयोगकर्ता को, उसके द्वारा मैप किए गए सभी प्रिंटरों को सूचीबद्ध करें, और फिर डुप्लिकेट को बाहर निकाल दें ताकि मेरे पास मशीन में मैप किए गए अद्वितीय प्रिंटरों की एक सूची हो। आदर्श रूप से मैं वह देखना चाहूंगा जो सबसे अधिक बार चूक गया था, लेकिन यह पूरी तरह से वैकल्पिक है। तब सूची इस तरह दिखाई देगी:

Machine.Old

 - Printer 1
 - Printer 2 [Defaulted most often]
 - Printer 4
 - Printer 5
 - Printer 8

फिर मैं अपनी नई मशीन पर प्रत्येक उपयोगकर्ता को प्रिंटर की पूरी सूची को पुनर्स्थापित करना चाहूंगा। वे एक नई विंडो 7 मशीन की ओर पलायन कर रहे हैं।

मैंने सोचा है कि एकल उपयोगकर्ता मशीनों के लिए यह कैसे करना है, निम्न कोड के साथ:

Echo exporting printers
reg export HKCU\Printers\Connections %~d0\%username%\printers.reg
net use >%~d0\%username%\mappings.txt

Echo Importing Printers
reg import %~d0\%username%\printers.reg

समस्या यह है कि यह केवल एक उपयोगकर्ता के लिए काम करता है। मेरे पास एक व्यवस्थापक खाता है, और मैं एक मल्टीप्रोफाइल मशीन के लिए एक ही बार में काम करना चाहता हूं।


क्या आप सिर्फ वही नहीं दोहरा सकते जो आपके पास सभी उपयोगकर्ता सबफ़ोल्डरों के लिए एक एकल उपयोगकर्ता के लिए है C:\Documents and Settings? आप अतिथि के रूप में कुछ हार्डकोड छोड़ना चाह सकते हैं, हालांकि
martineau

पुनर्स्थापना में मैं ऐसा कर सकता हूं, हालांकि उन सभी को एक साथ मैप करना अच्छा होगा। यह मुख्य रूप से बैकअप है कि समस्या है। मुझे सभी उपयोगकर्ताओं के पास सभी प्रिंटर की आवश्यकता है, और कभी-कभी इस मशीन पर लॉग इन करने वाले उपयोगकर्ता के पास शायद ही कोई प्रिंटर मैप नहीं होता है जब उन्हें कुछ की आवश्यकता होगी।
Wyko

जवाबों:


0

सिस्टम पर अन्य उपयोगकर्ताओं की रजिस्ट्री कुंजी तक पहुंचने के लिए आपको प्रत्येक उपयोगकर्ता के लिए रजिस्ट्री हाइव लोड करना होगा। देख reg /? उपयोगकर्ता की हाइव फ़ाइल NTUser.dat प्रत्येक उपयोगकर्ता की निर्देशिका के आधार पर स्थित होगा। C:\Documents and Settings\<User>\NTUser.dat। ध्यान दें कि यह एक छिपी हुई सिस्टम फ़ाइल है।

मेरे पास पूरी रिपोर्ट बनाने का समय नहीं है, लेकिन यहां बताया गया है कि सभी उपयोगकर्ताओं के लिए प्रिंटर कैसे निर्यात करें। यह प्रत्येक उपयोगकर्ता निर्देशिका के माध्यम से लूप करेगा, अपनी रजिस्ट्री हाइव को लोड करेगा, और ड्राइव के आधार पर प्रिंटर को उपयोगकर्ता निर्देशिका में निर्यात करेगा।

@echo off
pushd "C:\Documments and Settings\"
for /d %%A in (*) do call :ExportPrinters "%%~dpnA" "%~d0\%%~nA"
popd
goto End


:ExportPrinters <UserDir> <Target>
setlocal
set "xUserDir=%~1"
set "xTarget=%~2"
if not defined xUserDir goto :eof
if not exist "%xUserDir%" goto :eof
if not defined xTarget goto :eof
if not exist "%xTarget%" goto :eof
reg load "HKU\TempHive" "%xUserDir%\NTUser.dat"
reg export "HKU\TempHive\Printers\Connections" "%xTarget%\printers.reg"
reg unload "HKU\TempHive"
endlocal
goto :eof


:End
pause
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.