Script - Cara memeriksa apakah jalur jaringan tersedia dan kemudian memetakannya

13

Saya ingin skrip screen saver / logon yang memeriksa apakah jalur jaringan tersedia dan kemudian memetakannya ke unit. Jika tidak tersedia maka terputus / tidak terhubung.

Jalur jaringan adalah \ 192.168.1.1 \ drive1

Saya juga perlu menggunakan nama pengguna / kata sandi untuk terhubung ke jalur itu.

FernandoSBS
sumber

Jawaban:

15

Anda dapat menggunakan existperintah untuk memeriksa apakah jalur itu valid:

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

Jika Anda perlu memberikan kredensial (yaitu pengguna Windows Anda saat ini tidak memiliki akses ke share itu), tambahkan /user:

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

Jika ada kemungkinan bagian itu sudah ada, dan Anda ingin menghapusnya jika itu tidak lagi tersedia, tambahkan sebuah elseklausa:

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

Dan sekali lagi, tambahkan /userjika Anda membutuhkannya.

Anda dapat mengikat ini bersama-sama dalam file batch yang mirip dengan yang berikut ini:

@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=
Geoff
sumber
ok saya hanya menyisipkan itu di notepad dan menyimpan sebagai .vbs tetapi ketika saya menjalankan tugas itu memberikan kesalahan Visual Basic?
FernandoSBS
1
Perintah itu adalah perintah batch - itu harus bekerja dari file batch standar.
Geoff
C: \ Windows> jika ada \\ 192.168.1.1 \ volume1 (net use y: \\ 192.168.1.1 \ volume1) e lse (net use / delete y:) Koneksi jaringan tidak dapat ditemukan. Bantuan lebih lanjut tersedia dengan mengetik NET HELPMSG 2250.
FernandoSBS
Saya akan menambahkan suntingan ...
Geoff
Maafkan saya? (5 karakter)
FernandoSBS
6

Powershell akan mempermudah ini:

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}
Austin T French
sumber
ok saya hanya menyisipkan itu di notepad dan menyimpan sebagai .vbs tetapi ketika saya menjalankan tugas itu memberikan kesalahan Visual Basic?
FernandoSBS
1
Simpan sebagai .ps1 dan jalankan dari Powershell.
Austin T French
Saya tidak terbiasa dengan PowerShell, bagaimana saya bisa mengotomatiskannya di Penjadwal Tugas?
FernandoSBS
Anda harus benar-benar membagi 2 pertanyaan. Ini adalah situs QA. Juga, cari di google jika Anda belum: google.com/...
Austin T French
OK mengerti. Apa bonus menggunakan PowerShell?
FernandoSBS
0

Itu hanya lebih sederhana untuk hanya mencoba memetakannya menggunakan Windows File explorer atau menggunakan perintah net use. Entah itu berhasil atau tidak.

mdpc
sumber
Jika tersedia saya ingin terhubung secara otomatis ketika saya masuk / screen saver, jika tidak maka saya ingin dihapus dari drive yang dipetakan. Jadi apa yang Anda sarankan bukanlah suatu pilihan.
FernandoSBS
Saya tidak mengerti, jika Anda mengeluarkan penggunaan bersih, jika perintah berhasil itu akan terhubung. Jika perintah gagal, maka dihapus dari drive yang dipetakan. Tampak sederhana bagiku.
mdpc
0

Ini adalah kode terakhir:

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 

Saya menggunakan Test-Path \\192.168.1.1\volume1seperti yang disarankan untuk memeriksa apakah jalur jaringan tersedia dan ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")untuk memeriksa apakah huruf drive ada.

FernandoSBS
sumber