スクリプト-ネットワークパスが使用可能かどうかを確認してからマップする方法


13

ネットワークパスが利用可能かどうかを確認し、それをユニットにマップするスクリーンセーバー/ログオンスクリプトが必要です。利用できない場合は、切断/接続しません。

ネットワークパスは\ 192.168.1.1 \ drive1です

また、そのパスに接続するにはユーザー名/パスワードを使用する必要があります。

回答:


15

このexistコマンドを使用して、パスが有効かどうかを確認できます。

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

資格情報を提供する必要がある場合(つまり、現在のWindowsユーザーがその共有にアクセスできない場合)、以下を追加し/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=

OK、メモ帳に貼り付けて.vbsとして保存するだけですが、タスクを実行するとVisual Basicエラーが発生しますか?
FernandoSBS

1
このコマンドはバッチコマンドです。標準のバッチファイルから動作するはずです。
ジェフ

C:\ Windows> if exist \\ 192.168.1.1 \ volume1(net use y:\\ 192.168.1.1 \ volume1)e lse(net use / delete y:)ネットワーク接続が見つかりませんでした。NET HELPMSG 2250と入力すると、さらにヘルプが利用できます。–
FernandoSBS

私は...編集を追加します
ジェフ・

申し訳ありません?(5文字)
FernandoSBS

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}

OK、メモ帳に貼り付けて.vbsとして保存するだけですが、タスクを実行するとVisual Basicエラーが発生しますか?
FernandoSBS

1
.ps1として保存し、Powershellから実行します。
オースティンTフランス語

PowerShellに慣れていないのですが、タスクスケジューラでPowerShellを自動化するにはどうすればよいですか?
FernandoSBS

本当に2つの質問を分ける必要があります。これはQAサイトです。また、Googleをまだグーグルしていない場合は、google.com
オースティンTフランス語

はい、わかった。PowerShellを使用することのボーナスは何ですか?
FernandoSBS

0

Windowsファイルエクスプローラーまたはnet useコマンドを使用してマップしようとするのは簡単です。動作するか、動作しないかのどちらかです。


使用可能な場合は、ログオン/スクリーンセーバー時に自動的に接続し、使用できない場合は、マップされたドライブから削除します。したがって、あなたが提案したのはオプションではありません。
FernandoSBS

私は理解していません、あなたはコマンドが成功した場合、それは接続されますネット使用を発行します。コマンドが失敗すると、マップされたドライブから削除されます。私には単純に思えます。
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")かどうか、およびドライブ文字が存在するかどうかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.