स्क्रिप्ट - कैसे जांच करें कि क्या कोई नेटवर्क पथ उपलब्ध है और फिर उसे मैप करें


13

मुझे एक स्क्रीन सेवर / लॉगऑन स्क्रिप्ट चाहिए जो यह जांचती है कि क्या नेटवर्क पथ उपलब्ध है और फिर इसे एक इकाई में मैप करें। यदि यह उपलब्ध नहीं है तो यह डिस्कनेक्ट / कनेक्ट नहीं होता है।

नेटवर्क पथ \ 192.168.1.1 \ drive1 है

इसके अलावा, मुझे उस पथ से कनेक्ट करने के लिए उपयोगकर्ता नाम / पासवर्ड का उपयोग करने की आवश्यकता है।

जवाबों:


15

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

if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1

यदि आपको क्रेडेंशियल प्रदान करने की आवश्यकता है (यानी आपके वर्तमान विंडोज उपयोगकर्ता के पास उस हिस्से तक पहुंच नहीं है), जोड़ें /user:

if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword

यदि एक मौका है कि शेयर पहले से मौजूद है, और आप इसे हटाना चाहते हैं यदि यह उपलब्ध नहीं है, तो एक elseखंड जोड़ें :

if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)

और एक बार फिर, /userअगर आपको इसकी आवश्यकता है , तो जोड़ें ।

आप निम्न के समान बैच फ़ाइल में यह सब एक साथ बाँध सकते हैं:

@echo off
if exist \\192.168.1.1\drive1 (set shareExists=1) else (set shareExists=0)
if exist y:\ (set driveExists=1) else (set driveExists=0)
if %shareExists%==1 if not %driveExists%==1 (net use y: \\192.168.1.1\drive1)
if %shareExists%==0 if %driveExists%==1 (net use /delete y:)
set driveExists=
set shareExists=

ठीक है, मैं सिर्फ नोटपैड में पेस्ट कर रहा हूं और .vbs के रूप में सहेज रहा हूं, लेकिन जब मैं इसका एक कार्य चलाता हूं तो यह विज़ुअल बेसिक एरर देता है?
फर्नांडोबीएस

1
वह कमांड एक बैच कमांड है - इसे किसी भी मानक बैच फ़ाइल से काम करना चाहिए।
ज्योफ

C: \ Windows> यदि मौजूद \\ 192.168.1.1 \ volume1 (शुद्ध उपयोग y: \\ 192.168.1.1 \ volume1) e lse (नेट का उपयोग / हटाएं y)) नेटवर्क कनेक्शन नहीं मिल सका। NET HELPMSG 2250 टाइप करके अधिक मदद उपलब्ध है।
फर्नांडोबीएस

मैं एक संपादन
जोड़ूंगा

मुझे माफ कर दो? (5 वर्ण)
फर्नांडोबीएस

6

Powershell यह आसान होगा:

If(Test-Path \\192.168.1.1\Drive1)
  {
    net use M: \\192.168.1.1\Drive1 /user:Domain\UserName Password
  }
else {net use M: /delete > nul}

ठीक है, मैं सिर्फ नोटपैड में पेस्ट कर रहा हूं और .vbs के रूप में सहेज रहा हूं, लेकिन जब मैं इसका एक कार्य चलाता हूं तो यह विज़ुअल बेसिक एरर देता है?
फर्नांडोबीएस

1
इसे .ps1 के रूप में सहेजें और इसे Powershell से चलाएँ।
ऑस्टिन टी फ्रेंच

मैं शक्तियां से परिचित नहीं हूं, मैं इसे टास्क शेड्यूलर में कैसे स्वचालित कर सकता हूं?
फर्नांडोबीएस

आपको वास्तव में 2 प्रश्नों को विभाजित करना चाहिए। यह एक QA साइट है। इसके अलावा, अगर आप पहले से ही नहीं हैं, तो इसे google करें: google.com/…
Austin T French

ठीक मिल गया। शक्तियों का उपयोग करने का बोनस क्या है?
फर्नांडोबीएस

0

विंडोज फाइल एक्सप्लोरर का उपयोग करके या नेट उपयोग कमांड का उपयोग करके केवल इसे मैप करना सरल है। या तो यह काम करता है या यह नहीं है।


यदि यह उपलब्ध है तो मैं लॉगऑन / स्क्रीन सेवर करते समय स्वचालित रूप से कनेक्ट होना चाहता हूं, यदि यह नहीं है तो मैं चाहता हूं कि इसे मैप किए गए ड्राइव से हटा दिया जाए। इसलिए आपने जो सुझाव दिया है वह कोई विकल्प नहीं है।
फर्नांडोबीएस

मुझे समझ में नहीं आता है, यह आप एक शुद्ध उपयोग जारी करते हैं, अगर कमांड सफल होता है तो यह जुड़ा होगा। यदि कमांड विफल हो जाती है, तो इसे मैप किए गए ड्राइव से हटा दिया जाता है। मेरे लिए सरल लगता है।
mdpc

0

यह अंतिम कोड है:

function run{
net use
If(Test-Path \\192.168.1.1\volume1)
  {
    if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")) 
        {
            "already mounted and accessible"
        }
    else
        {
            net use Y: \\192.168.1.1\volume1
            "mounting"
        }
  }
else { 
    if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
        {
            net use Y: /delete
            "removing"
        }
}
exit 4
}

run 

मैं Test-Path \\192.168.1.1\volume1नेटवर्क पथ उपलब्ध है या नहीं, ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")यह जांचने के लिए सुझाव दिया जाता है कि ड्राइव अक्षर मौजूद है या नहीं।

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