it-swarm.asia

هل يمكن إعادة توصيل محرك أقراص الشبكة؟

على أساس يومي ، أجد نفسي في أمر Windows مطالبة في الوصول إلى محرك أقراص شبكة تم تعيينه ولكن غير متصل. لم أجد حتى الآن أمرًا يعيد توصيل محرك الأقراص هذا دون إلغاء رسم الخرائط وإعادة تعيينها (مما يؤدي إلى لعبة تخمين كلمة المرور ، لأنني لا أملك أجهزة الكمبيوتر هذه). أود أيضًا أن أكون قادرًا على كتابة هذا الأمر ، بحيث يتم إعادة توصيل محرك الأقراص كل ليلة إذا أصبح متقطعًا بطريقة ما.

أسرع حل لدي حاليا هو:

  1. اكتب "start." لفتح مستكشف ،
  2. Alt-D لتركيز شريط العنوان ،
  3. اكتب حرف محرك الأقراص الذي أريده واضغط على إدخال ، وانتظر حتى يتم عرض محتويات محرك الأقراص ،
  4. ثم أخيرًا ، أغلق Explorer ورجع إلى موجه الأوامر.

أعلم أن ذلك يمثل إزعاجًا بسيطًا ، لكني غالبًا ما أقوم بذلك من خلال اتصال VNC أو PCAnywhere بطيء حيث يكون القيام بأي شيء من خلال واجهة المستخدم الرسومية فظيعة ، لذلك أنا فقط أتساءل عما إذا كان هناك حل أفضل.

32
Stephen Jennings

ربما حاول pushd \\server\share؟

12
wfaulk

إنشاء ملف دفعي (refreshletters.cmd) مع هذه الأوامر فيه

( هذه ستعمل فقط داخل ملف دفعي )

تم اختباره على Win7 و XP لتحديث أحرف برنامج التشغيل "غير متصل" و "غير متوفر" في نافذة وحدة التحكم (سطر الأوامر).

@echo off
Net Use |FIND ":" > %temp%\used.txt
FOR /F " tokens=1,2,3 delims= " %%i in (%temp%\used.txt) do (

  if %%i EQU Unavailable  (
    Net Use %%j %%k
    echo Activated %%j
   ) ELSE (
     if %%i EQU Disconnected (
       pushd .
       cd /d %%j
       dir . %>nul
       if NOT exist %%j\. (
          Net Use %%j /del /y
          Net Use %%j %%k
          echo Remapped %%j
          ) else (
             echo Fixed-up %%j
            )
       popd
       ) ELSE (
          echo Checked %%j
          )
     )
 )
7
Brian

يجب أن أبدأ تشغيل Windows 7 قبل أن أتمكن من تشغيل برنامج VPN الذي يربطني بمحركات أقراص شبكة الشركة. لذلك لا تقوم محركات أقراص الشبكة الخاصة بي بإعادة الاتصال تلقائيًا ، فقط فتحها في مستكشف Windows يعيد توصيلها.

لقد قمت بإنشاء ملف دفعي صغير لبدء تشغيل VPN وإعادة توصيل محركات أقراص الشبكة وبدء تشغيل بعض التطبيقات التي أستخدمها دائمًا.

في ملفي الدفعي لدي ما يلي:

REM Connect VPN here...

REM Opens an Explorer window looking at T: forcing a reconnect
Start /min Explorer t:\

timeout 3 /nobreak

REM Kill all Explorer windows beginning with "T_drive" in the title
Taskkill /fi "windowtitle eq T_drive*"

REM Finish starting up here...

exit

الأمر Taskkill /fi "windowtitle eq" حساس لحالة الأحرف!

7
Claus Melander

قد يكون هذا سؤالًا غبيًا ، ولكن بافتراض أن محرك الأقراص "غير المتصل" هو H: ، هل حاولت تغييره مباشرةً إلى محرك الأقراص؟

يعمل لي تحت XPSP3:

C:\>Net Use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Disconnected H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.


C:\>h:

H:\>Net Use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.
6
wfaulk

أعلم أنك قلت "Net Use" لم ينجح معك - ولكن هنا هو ما يمكنك تجربته.

قم بتشغيل ملف دفعي باستخدام خيار Net Use/DELETE لإزالة الاتصالات الحالية/المستمرة ويمكنك بعد ذلك استخدام Net Use مع الخيار/SAVECRED لإعادة استخدام بيانات اعتماد passowd المستخدمة في تسجيل الدخول الناجح الأخير. لست متأكدًا مما إذا كان هذا سيعالج مشكلتك ، لكن الأمر يستحق النظر فيها.

4
Critical Skill

لدي نفس المشكلة في الاتصالات المتعددة ، وهي متقطعة. عندما أعيد تشغيل الكمبيوتر ، يكون الاتصال في بعض الأحيان "جيدًا" وأحيانًا لا. ليس لدي مشكلة كلمة المرور لأنني على شبكة LAN خاصة بشركة ، لكن لا يزال لدي الجانب الآخر من المشكلة.

لقد قمت بإنشاء ملف دفعي يسمى ex.bat ، وقمت بتخزينه (إلى جانب العديد من الأشياء الأخرى) في دليل\util الذي أضعه في طريقي. يمكنني كتابة "ex h:" وسيتم تشغيل مستكشف Windows وتعيينه للانتقال مباشرة إلى محرك الأقراص h:. هنا هو الملف الدفعي:

start Explorer /e,/select,%1

هذا يعمل ، مع الكثير من ضربات المفاتيح. أو إذا لم ينجح ذلك في البداية ، فاضغط على المفتاح Enter لفتح المجلد h: root وعرض المحتويات. أو اكتب "ex h:\sub" حيث يوجد المجلد الفرعي "sub".

يبدو أن هذه المشكلة قد ازدادت سوءًا مؤخرًا ، وربما يرجع ذلك إلى أحد تصحيحات أمان WindowsXP.

شيء آخر لمحاولة هو على جانب الخادم. على خوادم Windows ، من المفترض أن يؤدي تعديل مفتاح التسجيل إلى منع الخادم من فصل اتصالاته في مهلة. أفعل هذا على جميع خوادمنا. الملف هو:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"autodisconnect"=dword:ffffffff
2
Warren

واجهت مشكلة مماثلة واكتشفت أنه يمكنني فرض إعادة الاتصال بـ "dir x:" بسيط من سطر الأوامر (حيث كان X: هو محرك الأقراص المعين ولكن غير المتصل.) كان هذا من نظام Server 2003 إلى محركات أقراص معيّنة على XP و Win7.

قمت بإنشاء ملف دفعي ، wake_network_drives.bat ، بهذين السطرين:

    dir x:
    dir z:

وقم بتعيين مهمة مجدولة لتشغيلها كل ليلة قبل برنامج النسخ الاحتياطي الذي فشل لأن محركات الأقراص كانت تظهر أحيانًا على أنها غير متصلة.

1
StanZ

TL ؛ ملخص DR: استخدم Net Use و if exist

واجهت مشكلة ذات صلة أثناء إنشاء برنامج نصي احتياطي ليلي. كان عليه التحقق مما إذا كان الكمبيوتر قيد التشغيل (باستخدام ping) ، وأرسل حزمة سحرية لتشغيله إذا لزم الأمر (باستخدام MC-WOL ) ، انتظر حتى يقوم نظام التشغيل Windows بالإقلاع ، ثم قم بإنشاء اتصال بمشاركة SMB وانتظر أن يكون موجودًا.

على الرغم من أن الإجابات الأخرى هنا رائعة ، إلا أنني لم أكن أريد ظهور أحرف محركات أقراص معيّنة داخل/خارج الوجود ، أو فصل أي شيء قد يكون المستخدم يعمل معه ، أو أن تومض نوافذ Explorer. على سبيل المثال ، كان الهدف صفر إلهاء المستخدم .

إليك مجموعة من التعليمات البرمجية التي قد تكون مفيدة لك:

set TARGET_IP=192.168.1.3
set TARGET_PATH=\\%TARGET_IP%\d$\backups
set ATTEMPTS=0

:LOOP

REM Give up eventually
if %ATTEMPTS% GEQ 200 goto NOJOY

REM Wait for IP connectivity to Host, and/or burn up a couple seconds before retry
ping -n 1 -w 2000 %TARGET_IP% | find "TTL" > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

REM See if we're already connected, and try to give it a kick
if exist %TARGET_PATH% goto CONNECTED

REM Try to reconnect
Net Use %TARGET_PATH% > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

:CONNECTED
echo Connected
exit /b

:NOJOY
echo Couldn't connect

إذا كنت تفضل ذلك ، يمكنك استبدال عنوان IP أعلاه باسم المضيف (على سبيل المثال ، server1).

Net Use مطلوبة في حالة عدم وجود اتصال موجود. واجهت بعض الحالات الزاوية حيث بدا أنها غير كافية "لإيقاظ" المشاركة (على سبيل المثال ، إذا كان هناك اتصال مسبق موجود في حالة انقطاع الاتصال). لقد وجدت أن توجيه if exists له تأثير مماثل مثل البدائل المذكورة في الإجابات الأخرى (مثل pushd ، dir ، Explorer ، وما إلى ذلك) ، لكنها بدت مقاربة خفيفة الوزن.

0
rkagerer

ربما كان سؤالًا قديمًا ولكنه لا يزال ذا صلة في عام 2017 و Windows 10 نظرًا لأن مشاركة الشبكة لا يتم إعادة توصيلها أو توصيلها بشكل جيد بواسطة النوافذ لأسباب مختلفة. بناءً على هذه المشكلة وغياب حل عملي حقيقي وكامل ، قمتُ بإنشاء مشروع Github يحتوي على "مهمة جدولة" و "VBS" لحل المشكلة عن طريق محاولة إعادة توصيل محركات الأقراص بعد استئناف أو تسجيل الدخول إن لم تكن متصلاً أو متصلاً بالإنترنت.

البرنامج النصي قابل للتكوين بالكامل ويمكن إعداده حسب احتياجات المستخدم الفعلي.

المسار إلى مشروع جيثب

0
thex

إذا لم تعارض الاحتفاظ بكلمات المرور هذه في نص عادي في مجموعة ، فيمكنك كتابة عملية حذف وإعادة رسم خريطة بما في ذلك بيانات الاعتماد.

Net Use H: /delete
Net Use H: \\server\share /user:domain\user password /persistent:yes

أعلم أنه لا يفي بشرط عدم حذف المشاركة ، ولكنه يحل جذر مشكلة الحاجة إلى تذكر كلمات المرور.

0
MDMarra

فقط اكتب:

Net Use H: \\server\share

(حيث H: هو حرف محرك الأقراص الخاص بك بالطبع)

اكتب "صافي /؟ استخدم "لرؤية كل الخيارات التي يمنحكها هذا الأمر.

0
Zoran

نجحت الإجابة من StanZ بالنسبة لي ، لكن كان يجب أن أكون قادرًا على تحديد أي محركات أقراص معيّنة برمجيًا دون حالة "موافق" ، حيث يحصل المستخدمون في مجالنا على تعيينات مختلفة لمحركات الأقراص. أنا مشفرة هنا لأعمل كإصدار مستقل ، والذي ينفذ Net Use قبل وبعد الكود الفعلي ، حتى تتمكن من رؤية النتائج ، لكن عليك فقط نسخ عبارة FOR (ثلاثة أسطر) في الكود الخاص بك للحصول على المطلوب النتائج.

@ECHO OFF
::  
:: revision of answer from StanZ on superuser.com at the following url  
:: https://superuser.com/questions/52595/can-a-mapped-network-drive-be-reconnected-from-the-command-line/367910#367910  
:: https://superuser.com/a/367910  
:: which resulted in my  
::  
:: DriveStatusOK.bat  
:: iCharlieC  
::  
SETLOCAL ENABLEEXTENSIONS  
::  
:: you need only copy the one FOR statement (three lines)  
::   to use in your own code  
::   to force status of mapped network drives to OK  
::  
:: "tokens=1-2 delims=: " is used in the for statement  
:: to output only the drive letter from the output of...  
:: Net Use  
:: is piped to the first findstr which outputs only lines with drive letters  
::   then piped to another findstr to eliminate drives with a status of OK  
::   then piped to another findstr to get lines that start with a status  
::     -in other words, those lines that the first character is a letter-  
::     -this due to the fact that in our domain we have a drive  
::      that is mapped to a letter, but never has a status.  
::      I do not know the reason for this,  
::      but adding that last findstr prevents me from getting an error  
::      from trying to execute a dir on a non-existant drive letter.-  
::   then dir is executed on each drive letter (after appending ":\" to the letter)  
::      and the output redirected to NUL  
::  
:: run Net Use before as a visual here  
Net Use  
::  
FOR /F "tokens=1-2 delims=: " %%i in (  
    'Net Use ^| findstr ":" ^| findstr /i /v "^OK" ^| findstr /i "^[A-Z]"'  
    ) do dir "%%j:" > NUL  
::  
:: run Net Use after "waking" drive(s)  
Net Use  
::  
ENDLOCAL  
0
Charlie C