ฉันจะตั้งค่าไทม์เอาต์ของเครือข่าย Windows สำหรับไดรฟ์ที่แมปถูกตัดการเชื่อมต่อทางกายภาพได้อย่างไร


28

เมื่อไดรฟ์เครือข่าย ( net use) ถูกตัดการเชื่อมต่อทางกายภาพ Windows Explorer (และโปรแกรมอื่น ๆ ) จะพยายามระบุและ / หรือใช้งานเป็นเวลา 60 วินาที

มีวิธีการลดการหมดเวลานี้เป็น 5 วินาทีหรือไม่?

เพียงเพื่อชี้แจงฉันไม่ได้ถามเกี่ยวกับไดรฟ์เครือข่ายที่ Windows ถูกตัดการเชื่อมต่อโดยอัตโนมัติหลังจากช่วงระยะเวลาหนึ่งหรือเกี่ยวกับการเชื่อมต่ออัตโนมัติอีกครั้งระหว่างการเข้าสู่ระบบ

คำถามเกี่ยวกับเรื่องนี้:

เชื่อมต่อไดรฟ์เครือข่ายกับคอมพิวเตอร์เครื่องอื่น จากนั้นปิดคอมพิวเตอร์เครื่องอื่น จากนั้นลองเชื่อมต่อไดรฟ์เครือข่ายอีกครั้งเช่นโดยดับเบิลคลิกใน Windows Explorer →การหมดเวลานานมาก ฉันจะลดการหมดเวลานี้ได้อย่างไร


2
คุณอาจจะกำลังมองหาสิ่งนี้: superuser.com/a/332754/124651
deppfx

@ Ƭᴇcʜιᴇ007ขอบคุณสำหรับความโปรดปราน แต่ฉันคิดว่าผู้คนยังคงเข้าใจผิด ฉันพยายามที่จะเรียบเรียงคำถามอีกครั้งเพื่อให้ชัดเจนยิ่งขึ้น
Andreas Haferburg

1
@ AndreasHaferburg ไม่มีปัญหาหากคุณมีเวลาทดสอบคำตอบใหม่ ๆ นั่นก็จะเป็นประโยชน์ :)
Ƭᴇcʜιᴇ007

ดูเหมือนว่าไม่มีการเปลี่ยนแปลงใด ๆ ในรีจิสทรีที่แนะนำในคำตอบ ฉันสงสัยว่าการหมดเวลาที่เราต้องการลดนั้นไม่ใช่การหมดเวลาของ SMB แต่เป็นการหมดเวลา TCP / IP ทั่วไป (หรือการรวมกันของหลาย ๆ อย่าง)
mivk

คำตอบ:


6

ในไดรฟ์เครือข่ายที่แมป Windows 7 และ Vista จะยกเลิกการเชื่อมต่อด้วยตนเองหลังจากนั้นสักครู่และแสดงกากบาทสีแดงบนไอคอนไดรฟ์ คุณจะยังสามารถคลิกที่ไดรฟ์และดู / ใช้เนื้อหา แต่แอปพลิเคชันที่ต้องใช้ไดรฟ์เครือข่ายจะเห็นว่าพวกเขาถูกตัดการเชื่อมต่อและจะไม่เห็นไฟล์ หากคุณพยายามยกเลิกการเชื่อมต่อไดรฟ์จะยังมีคำว่า 'Disconnected Network Drive' อยู่ - นั่นเป็นวิธีเดียวที่จะรีบูต นี่เป็นเพราะมีเวลาตัดการเชื่อมต่อเริ่มต้นสำหรับการเชื่อมต่อเครือข่ายที่ไม่ได้ใช้งาน หากต้องการแก้ไขและปิดการเชื่อมต่ออัตโนมัติให้ทำดังต่อไปนี้:

  1. เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ หากต้องการทำสิ่งนี้:

    • ไปที่ Start →โปรแกรมทั้งหมด→อุปกรณ์เสริมคลิกขวาที่ "Command Prompt" แล้วเลือก "Start as Administrator" หรือ

    • พิมพ์cmdลงในช่องค้นหาแล้วกดCtrl+ Shift+Enter

  2. ในพรอมต์คำสั่งพิมพ์ต่อไปนี้:

    net config server /autodisconnect:-1
    
  3. กด Enter

  4. รีบูทคอมพิวเตอร์

ไดรฟ์เครือข่ายที่แมปของคุณควรยังคงเชื่อมต่ออยู่ - นี่เป็นการแก้ไขถาวร


4
สิ่งนี้ไม่ตอบคำถามจริงของ OPs คำขอต้นฉบับเข้าใจผิดดูการแก้ไขของ OP
Ƭᴇcʜιᴇ007

ฉันรู้ว่ามันไม่เกี่ยวข้องกับ OP แต่นี่คือสิ่งที่ฉันกำลังมองหา แต่ถูกปฏิเสธการเข้าถึง ฉันเป็นผู้ดูแลระบบบนพีซีของฉัน
Rick

3

อ้างอิงจากhttp://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in-windows.aspxดูเหมือน Windows การหมดเวลาใช้งานร่วมกันจะถูกควบคุมโดยรายการรีจิสตรี "Request Expiration Timer"

\HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\
Value type: Dword  
Value name: SessTimeout
Default:    60 seconds (Windows Vista)

นอกจากนี้ยังกล่าวถึงค่านี้ลดลงเป็น 20s ใน Windows 8 SMB 3.0 สำหรับการเฟลโอเวอร์อย่างรวดเร็ว


3
น่าเสียดายที่การทดสอบของฉันแสดงว่าการตั้งค่านี้ไม่มีผลต่อการหมดเวลาที่เกี่ยวข้องในการรอไดรฟ์เครือข่ายที่ใช้งานไม่ได้ ฉันตั้งไว้ที่ 5 วินาทีและฉันยังรอเหมือนเดิม ~ 30 วินาที (Windows 7) ฉันเป็นก่อนที่ฉันจะตั้งค่า (และรีบูตเครื่อง)
Ƭᴇcʜιᴇ007

2

ฉันมีปัญหาเดียวกัน แต่ในขั้นต้นมันเป็นเพียงประมาณ 30 วินาที แต่เมื่อมันเพิ่มขึ้นประมาณ 2 นาที (ด้วยเหตุผลบางอย่างที่ไม่ทราบ) มันน่ารำคาญมากฉันต้องหาวิธีแก้มัน

ฉันสร้างแบทช์สคริปต์ซึ่งทดสอบเครือข่ายโดยดูว่ามันสามารถ ping เครื่องเป้าหมายได้หรือไม่หากมันสามารถแมปไดรฟ์ (หากไม่ได้แมป) มิฉะนั้นจะเป็นการลบการแมป

@echo off

set ipaddr=192.168.5.3

set current=neither

:begin

    set state=down

    for /f %%i in ('ping -n 1 %ipaddr% -w 1000 ^| findstr /C:"Received = 1"') do (
        set state=up
    )

    if not %state% == %current% (
        set current=%state%
        if %state% == up (
            net use R: \\%ipaddr%\archive$
        )
        if %state% == down (
            net use R: /delete /y
        )
    )

    sleep 5

goto begin

สคริปต์นั้นจะถูกเรียกใช้โดยภารกิจที่กำหนดเวลาไว้ซึ่งจะเรียกใช้สคริปต์ทุก 10 นาทีโดยมีเวลางานสูงสุด 10 นาที แม้ว่าหน้าต่างคอนโซลจะยังคงเปิดอยู่ในช่วงเวลานี้ฉันกำลังตรวจสอบNetwork Conditionsเรื่องนี้ในการตั้งค่ากำหนดการซึ่งสามารถตั้งค่าเพื่อสร้างการแชร์เมื่อเชื่อมต่อกับเครือข่ายที่ฉันรู้ว่าเปิดอยู่ (ซึ่งจะเป็นการตั้งค่าสถานะ) และสคริปต์ที่สองซึ่งจะทำงานหนึ่งครั้งตลอด 5 นาทีหรือมากกว่านั้นซึ่งหากการตั้งค่าสถานะเก่ากว่าอย่างน้อยก็นานมันจะลบการแชร์ลดเวลาหน้าต่างคอนโซล


4
น่าเสียดายที่ฉันคิดว่าวิธีการแก้ปัญหาประเภทนี้นั้นดีพอ ๆ กับที่เราคาดไว้ (ยังคง ณ สิ้นปี 2557) อย่างน้อยที่สุดก็คือการเข้าสู่ระบบ / การเริ่มต้นล่าช้าของ Explorer ที่เกิดจากไดรฟ์เครือข่าย มีความกรุณาของฉัน บางทีเราสามารถกลับมาทบทวนอีกครั้งในอีกไม่กี่ปีข้างหน้า :)
Ƭᴇcʜιᴇ007

sleepในสคริปต์ของคุณไม่ใช่คำสั่งพื้นฐาน ควรใช้ vbscript ในกรณีนี้ดีกว่า
Azevedo

@ Ƭᴇcʜιᴇ007คุณเคยพบวิธีแก้ปัญหาจริงหรือไม่? ฉันมีไดรฟ์เครือข่ายซึ่งมักถูกปิดการใช้งานทางกายภาพและพยายามเข้าถึงไดรฟ์จากเครื่องไคลเอนต์ทำให้เกิดความล่าช้าที่น่าผิดหวัง
WackGet

1

โซลูชันของคุณอยู่ด้านล่าง

กำจัด "การคืนค่าการเชื่อมต่อเครือข่าย" ที่ยาวนานที่ล็อกออน (defer = การเชื่อมต่อโกสต์)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]

"RestoreConnection"=dword:00000001 ;(0=no attempt, you must click it)

"RestoreTimeout"=dword:00000005

เชื่อมต่อผีหากไม่ตอบสนองภายใน RestoreTimeout

"DeferConnection"=dword:00000001

1
แหล่งข้อมูลใดที่คุณได้รับข้อมูลนี้หรือแหล่งข้อมูลที่ช่วยอธิบายสาเหตุ
Ƭᴇcʜιᴇ007

2
น่าเสียดายที่การทดสอบของฉันแสดงว่าการตั้งค่านี้ไม่มีผลต่อการหมดเวลาที่เกี่ยวข้องในการรอไดรฟ์เครือข่ายที่ใช้งานไม่ได้ ฉันสร้างปุ่มด้านบนและตั้งค่าของพวกเขา แต่ฉันยังรอเหมือนเดิม ~ 30 วินาที (Windows 7) ฉันก่อนที่ฉันจะตั้งค่า (และรีบูต)
Ƭᴇcʜιᴇ007

1
นอกจากนี้ยังมี: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ LanmanWorkstation \ Parameters] "ReconnectTimeout" = dword: 00000005 พบได้ที่นี่: sevenforums.com/network-sharing/ ...... การตั้งค่ารายการนี้รวมถึงรายการที่อยู่เหนือทั้งหมดถึง 1 ดูเหมือนจะทำให้เป็น ความแตกต่างอย่างมาก (หลังจากรีบูต) ตอนนี้ทุกอย่างรวดเร็วตามที่คาดไว้อีกครั้ง
มิต

1

สิ่งนี้ใช้ได้กับฉันใน Windows 7 ตามที่คาดไว้ นอกจากนี้ยังแก้การรอนานหลังจากเข้าสู่ระบบ วางที่นี่เป็นไฟล์. reg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]
"RestoreConnection"=dword:00000000
"RestoreTimeout"=dword:00000004
"DeferConnection"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
"SessTimeout"=dword:0000000a
"ExtendedSessTimeout"=dword:00000000
"ReconnectTimeout"=dword:00000004

สิ่งนี้ใช้ไม่ได้กับ 8.1
midenok

0

ตามโพสต์นี้บนWindows7Hacker การแก้ไขปัญหานี้ในฝั่งไคลเอ็นต์เกี่ยวข้องกับการแก้ไขรีจิสทรี

  1. เปิดรีจิสทรีด้วยRegedit.exe
  2. นำทางไปยัง HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. สร้างชื่อค่าDWORDKeepConnและตั้งค่าเป็นเวลาในไม่กี่วินาทีเพื่อให้การเชื่อมต่อมีชีวิต

ตัวอย่างเช่นฉันตั้งไว้ที่86400 (หนึ่งวัน)


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนที่สำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Ivo Flipse

นอกจากนี้เพื่อเตือนความจำทั่วไป: พยายามทำให้คำตอบของคุณยาวเกินหนึ่งประโยคและเพิ่มบริบทด้วย อธิบายว่าลิงก์ตอบคำถามอย่างไร - อาจไม่ชัดเจน
slhck

@IvoFlipse: แน่นอน ขอบคุณสำหรับข้อเสนอแนะ
deppfx

@slhck: จะจำไว้ว่า
deppfx

1
สิ่งนี้ไม่ตอบคำถามจริงของ OPs คำขอต้นฉบับเข้าใจผิดดูการแก้ไขของ OP
Ƭᴇcʜιᴇ007
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.