it-swarm.asia

Eşlenen bir ağ sürücüsü komut satırından tekrar bağlanabilir mi?

Günlük olarak kendimi Windows komutunda buluyorum, eşlenmiş fakat bağlantısı kesilmiş bir ağ sürücüsüne erişmem gerekiyor. Henüz bu sürücüyü, eşlemesini açmadan ve yeniden eşlemeden yeniden bağlayacak bir komut bulamadım (bu, bilgisayarlara sahip olmadığım için bir parola tahmin etme oyununa yol açar). Bunu da yazabilmeyi isterim, böylece her gece bir şekilde bağlantısı kesilirse sürücüye yeniden bağlanır.

Şu anda sahip olduğum en hızlı çözüm:

  1. Explorer’ı açmak için "start." yazın,
  2. Alt-D adres çubuğunu odaklamak,
  3. i̇stediğim sürücü harfini yazıp enter tuşuna basın ve sürücü içeriğini göstermesini bekleyin,
  4. daha sonra nihayet Explorer'ı kapatın ve komut istemine geri dönün.

Küçük bir rahatsızlık olduğunu biliyorum, ancak bunu genellikle GUI üzerinden bir şey yapmanın berbat olduğu yavaş bir VNC veya PCAnywhere bağlantısı aracılığıyla yapıyorum, bu yüzden daha iyi bir çözüm olup olmadığını merak ediyorum.

32

Belki pushd \\server\share denemek?

12
wfaulk

içinde bu komutlarla bir toplu iş dosyası (refreshletters.cmd) oluşturun

(bunlar yalnızca bir toplu iş dosyasında çalışır)

Konsol penceresindeki 'Disconnected' ve 'Unavailable' sürücü harflerini yenilemek için Win7 ve XP üzerinde test edildi (komut satırı).

@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

Beni şirket ağ sürücülerine bağlayan VPN programını çalıştırabilmem için Windows 7'yi başlatmam gerekiyor. Bu nedenle, ağ sürücülerim otomatik olarak yeniden bağlanmıyor, yalnızca Windows Gezgini'nde açmanız onları yeniden bağlıyor.

VPN'i başlatmak, ağ sürücülerini yeniden bağlamak ve her zaman kullandığım bazı uygulamaları başlatmak için küçük bir toplu iş dosyası hazırladım.

Batch dosyamda aşağıdakiler var:

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" komutu büyük/küçük harfe duyarlıdır!

7
Claus Melander

Bu muhtemelen aptalca bir soru, ancak "bağlantınız kesildi" sürücünüzü H olarak kabul edersek, doğrudan sürücüye geçmeyi denediniz mi?

XPSP3 altında benim için çalışıyor:

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" dediğini söylemediğini biliyorum - ama işte deneyebilirsin.

Varolan/kalıcı bağlantıları kaldırmak için Net Use/DELETE seçeneğiyle bir toplu iş dosyası çalıştırın ve ardından son başarılı oturum açma işleminde kullanılan geçiş kimlik bilgilerini yeniden kullanmak için Net Use/SAVECRED seçeneğiyle kullanabilirsiniz. Sorununun çözülüp çözülmeyeceğinden emin değilim ama araştırmaya değer.

4
Critical Skill

Aynı bağlantıyı birden fazla bağlantıyla da yaşıyorum ve bu zaman zaman sürüyor. Bilgisayarı yeniden başlattığımda, bazen bağlantı "iyi" ve bazen değil. Şirket LAN'ında olduğum için şifre sorunum yok ama yine de sorunun diğer yönü var.

Ex.bat adlı bir toplu iş dosyası oluşturdum ve (başka birçok şeyle birlikte) yoluma koyduğum bir\util dizininde sakladım. "Ex h:" yazabilir ve Windows Gezgini'ni çalıştıracak ve doğrudan h: sürücüsüne gidecek şekilde ayarlayacaktır. Toplu iş dosyası:

start Explorer /e,/select,%1

Bu, çok daha az tuş vuruşuyla çalışır. Veya ilk önce çalışmazsa, h: root klasörünü açmak ve içeriği görüntülemek için Enter tuşuna basın. Veya "sub" alt klasörünün bulunduğu "ex h:\sub" yazın.

Bu sorun, belki de Windows XPgüvenlik düzeltme eklerinden biri nedeniyle son zamanlarda çok daha kötüye gitti.

Denenecek başka bir şey sunucu tarafında. Windows sunucularında, bir Kayıt Defteri anahtarının değiştirilmesinin sunucunun bağlantılarını bir zaman aşımı ile bağlantısını kesmemesi gerekiyordu. Bunu hemen hemen tüm sunucularımızda yapıyorum. Dosya:

Windows Registry Editor Version 5.00

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

Benzer bir sorun yaşadım ve komut satırından basit bir "dir x:" ile yeniden bağlanmaya zorlayabileceğimi keşfettim (burada X: haritalandı ama bağlantısı kesildi.) Bu, bir Server 2003 sisteminden haritalanan sürücülere XP ve Win7 bilgisayarları.

Wake_network_drives.bat adlı toplu iş dosyasını bu iki satırla oluşturdum:

    dir x:
    dir z:

ve sürücüler zaman zaman bağlantısız olarak gösterildiğinden, başarısız olan yedekleme programından önceki gece çalışacak şekilde zamanlanmış bir görev belirleyin.

1
StanZ

TL; DR özeti: Net Use ve if exist öğelerini kullanın

Gecelik bir yedekleme betiği oluştururken ilgili bir sorunla karşılaştım. Bir bilgisayarın açılıp açılmadığını kontrol etmek zorunda kaldı (ping kullanarak), gerektiğinde açmak için sihirli bir paket yollayın ( MC-WOL ) kullanarak, Windows'un önyüklenmesini bekleyin, ardından bir bağlantı kurun bir SMB paylaşım ve mevcut olmasını bekleyin.

Buradaki diğer cevaplar harika olsa da, eşleştirilen sürücü harflerinin varlığın içine girip çıkması veya kullanıcının çalışabileceği herhangi bir şeyin bağlantısını kesmesini ya da Explorer pencerelerinin etrafında yanıp sönmesini istemedim. yani, bir hedef sıfır kullanıcı dikkatinin dağılmasıydı .

İşte size yardımcı olabilecek bir kod parçası:

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

İsterseniz, yukarıdaki IP adresini bir Ana Bilgisayar adıyla değiştirebilirsiniz (örneğin, server1).

Mevcut bir bağlantının olmaması durumunda Net Use gereklidir. Tek başına hisseyi "uyandırmak" için yetersiz görünen bazı köşe davalarına rastladım (örneğin, bağlantısı kesilmiş bir durumda önceden bir bağlantı varsa). if exists yönergesinin diğer cevaplarda (pushd, dir, Explorer vb. Gibi) belirtilen alternatiflerle benzer bir etkiye sahip olduğunu buldum, ancak daha hafif bir yaklaşım gibi görünüyordu.

0
rkagerer

Belki eski bir soru ama 2017 ve Windows 10'da hala geçerli çünkü ağ paylaşımları genellikle farklı nedenlerle pencerelerle yeniden bağlanmadı veya bağlanmadı. Bu soruna ve gerçek bir pazarlanabilir ve tam çalışan bir çözümün bulunmamasına dayanarak, bir Zamanlayıcı Görevi içeren bir Github projesi ve yalnızca bağlı olmadıklarında veya çevrimiçi olmadıklarında sürücüleri yeniden başlatmayı veya oturum açtıktan sonra yeniden bağlamayı deneyerek sorunu çözen bir VBS oluşturdum.

Komut tam yapılandırılabilir ve gerçek kullanıcının ihtiyaçlarına bağlı olarak ayarlanabilir.

Github projesine giden yol

0
thex

Bu şifreleri toplu halde düz metin olarak tutmamanıza karşıysanız, kimlik bilgilerini içeren bir silme ve kısa mesaj yazabilirsiniz.

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

Paylaşımı silmeme gerekliliğinizi karşılamadığını biliyorum, ancak parolaları hatırlamak zorunda kalmamanın sorununu giderir.

0
MDMarra

Sadece yaz:

Net Use H: \\server\share

(H: elbette sürücü mektubunuzdur)

'NET /? Yazın KULLANIN 'Bu komutu size veren tüm seçenekleri görmek için.

0
Zoran

StanZ'in cevabı benim için işe yaradı, ancak alanımızdaki kullanıcılar farklı sürücü eşlemeleri elde ettiklerinden, herhangi bir eşlenmiş sürücüyü OK durumu olmadan programatik olarak belirleyebildim. Burada, gerçek koddan önce ve sonra Net Use komutunu çalıştıran tek başına bir sürüm olarak çalıştırdım, böylece sonuçları görebiliyorsunuz, ancak istediğiniz kodu almak için kodunuza yalnızca bir FOR ifadesini (üç satır) kopyalamanız gerekiyor. Sonuçlar.

@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