このエントリーをはてなブックマークに追加


PowerShellを使ってネットワークドライブの接続・切断する方法

PowerShellのコマンドレットを使用して、ネットワークドライブの接続、切断する方法を以下に記します。
使用したPowerShellのバージョンは以下の通りです。

PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.17134.228

関連記事

ネットワークドライブ接続

New-PSDriveコマンドレットを使用することにより、ネットワークドライブとして接続することができます。
構文は以下の通りです。

  • PowerShellのセッションのみネットワークドライブとして認識
    New-PSDrive -Name <ドライブ文字> -PSProvider FileSystem -Root <共有フォルダのパス>
  • 永続的にネットワークドライブとして認識させる(エクスプローラーなどGUIでも認識できる)
    New-PSDrive -Persist -Name <ドライブ文字> -PSProvider FileSystem -Root <共有フォルダのパス>
    以下、実際にNew-PSDriveコマンドレットを使用してネットワークドライブとして接続してみます。
     
  1. Get-PSDriveコマンドレットの出力です。
    PS C:\> Get-PSDrive | Format-Table -AutoSize
    
    Name     Used (GB) Free (GB) Provider    Root               CurrentLocation
    ----     --------- --------- --------    ----               ---------------
    Alias                        Alias
    C            50.35     68.29 FileSystem  C:\
     Cert                         Certificate \
    D             0.97     27.67 FileSystem  D:\
    Env                          Environment
    Function                     Function
    HKCU                         Registry    HKEY_CURRENT_USER
    HKLM                         Registry    HKEY_LOCAL_MACHINE
    Variable                     Variable
    WSMan                        WSMan
  2. 共有フォルダをネットワークドライブとして接続してみます。
    • ネットワークドライブ名: P:
    • 共有フォルダのパス: \\raspberrypi\pi
       
      以下、New-PSDriveコマンドレットを実行したときの出力です。
      PS C:\> New-PSDrive -Name P -PSProvider FileSystem -Root \\raspberrypi\pi
      
      Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
      ----           ---------     --------- --------      ----                                               ---------------
      P                                      FileSystem    \\raspberrypi\pi
      
      PS C:\> p:
      PS P:\> c:
      以下は、Pドライブを削除し確認しています。
      PS C:\> Remove-PSDrive -Name P
      PS C:\> Get-PSDrive
      
      Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
      ----           ---------     --------- --------      ----                                               ---------------
      Alias                                  Alias
      C                  50.39         68.25 FileSystem    C:\
      Cert                                   Certificate   \
      D                   0.97         27.67 FileSystem    D:\
      Env                                    Environment
      Function                               Function
      HKCU                                   Registry      HKEY_CURRENT_USER
      HKLM                                   Registry      HKEY_LOCAL_MACHINE
      Variable                               Variable
      WSMan                                  WSMan
       
      注意:-Persistオプションをつけていないため、GUIによる確認はできません。
      このPowerShellのセッションのみネットワークドライブとして認識します。
      ただし、利点としてドライブレターではなく、わかりやすい名称にすることができます。
       
      ドライブ名をRaspberryPiとしてみましょう。
      PS C:\> New-PSDrive -Name RaspberryPi -PSProvider FileSystem -Root \\raspberrypi\pi
      
      Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
      ----           ---------     --------- --------      ----                                               ---------------
      Raspber...                             FileSystem    \\raspberrypi\pi
      
      
      PS C:\> cd RaspberryPi:
      PS RaspberryPi:\>
      上記の通り、ドライブ名をRaspberryPiにすることができました。(PowerShellセッション内のみです。)
      PowerShellスクリプト上で使えば、わかりずらいドライブレターではなく、意味を持たすことができますね。
       
      以下は、RaspberryPiで接続したドライブを削除(切断)しています。
      PS RaspberryPi:\> c:
      PS C:\> Remove-PSDrive -Name RaspberryPi
       
  3. GUIでも認識するネットワークドライブとしてNew-PSDriveコマンドレットを実行してみます。
    -Persistオプションを追加してあります。
  4. すでに、Pドライブとしてマップしているので、切断します。
    PS P:\> cd
    PS P:\> cd c:
    PS C:\> Remove-PSDrive p
     
  5. -Persistオプションを追加してNew-PSDriveコマンドレットを実行します。
    1. コマンド実行前
      01.png
       
    2. コマンド実行
      PS C:\> New-PSDrive -Persist -Name P -PSProvider FileSystem -Root \\raspberrypi\pi
      
      Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
      ----           ---------     --------- --------      ----                                               ---------------
      P                  60.89         54.77 FileSystem    \\raspberrypi\pi
       
      02.png
    3. 切断します。
      PS C:\> Remove-PSDrive -Name P
       
      03.png

上記では、PowerShellセッション内のみのネットワークドライブ(マップドライブ)および
コマンドプロンプトで使用するnet use同等の操作手順でした。

資格情報(ユーザアカウント、パスワード)が必要なフォルダにマウントする方法

上記ではユーザアカウント、パスワードが不要な場合の接続でした。
以下、ユーザID、パスワードの入力を必要とするネットワークフォルダに接続するサンプルコードになります。

$uid = 'ユーザアカウント'
$pwd = 'ユーザパスワード'
$serverNameOrIP = 'サーバ名 or IP'
$mountDriveName = 'NetDrive'             # NetDriveという名称でマウント
$mountPoint = 'マウントするフォルダ名'   # \\server\folder の場合は folder を指定する
$securePassword = ConvertTo-SecureString $pwd -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential "$serverNameOrIP\$uid", $securePassword

New-PSDrive -Name $mountDriveName -PSProvider FileSystem -Root "\\$serverNameOrIP\$mountPoint" -Credential $credential

ドライブ一覧の確認

上記の操作例で既に使用していますが、Get-PSDriveによりドライブの一覧を取得することができます。

PS C:\> Get-PSDrive

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Alias                                  Alias
C                  50.46         68.18 FileSystem    C:\
Cert                                   Certificate   \
D                   0.97         27.67 FileSystem    D:\
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

ネットワークドライブ(マップドライブ)の切断(削除)

上記の操作例で既に使用していますが、Remove-PSDriveで削除(切断)することができます。

  1. Pドライブとして接続
    PS C:\> New-PSDrive -Persist -Name P -PSProvider FileSystem -Root \\raspberrypi\pi
    
    Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
    ----           ---------     --------- --------      ----                                               ---------------
    P                  60.89         54.77 FileSystem    \\raspberrypi\pi
  2. ドライブ一覧の表示(Pドライブが存在します)
    PS C:\> Get-PSDrive
    
    Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
    ----           ---------     --------- --------      ----                                               ---------------
    Alias                                  Alias
    C                  50.46         68.18 FileSystem    C:\
    Cert                                   Certificate   \
    D                   0.97         27.67 FileSystem    D:\
    Env                                    Environment
    Function                               Function
    HKCU                                   Registry      HKEY_CURRENT_USER
    HKLM                                   Registry      HKEY_LOCAL_MACHINE
    P                  60.89         54.77 FileSystem    \\raspberrypi\pi
    Variable                               Variable
    WSMan                                  WSMan
  3. Pドライブの削除(切断)
    PS C:\> Remove-PSDrive P
  4. ドライブ一覧の表示(Pドライブが消えています)
    PS C:\> Get-PSDrive
    
    Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
    ----           ---------     --------- --------      ----                                               ---------------
    Alias                                  Alias
    C                  50.46         68.18 FileSystem    C:\
    Cert                                   Certificate   \
    D                   0.97         27.67 FileSystem    D:\
    Env                                    Environment
    Function                               Function
    HKCU                                   Registry      HKEY_CURRENT_USER
    HKLM                                   Registry      HKEY_LOCAL_MACHINE
    Variable                               Variable
    WSMan                                  WSMan

以上、PowerShellでネットワークドライブ、マップドライブについて一覧表示、接続、切断(削除)の操作例でした。



添付ファイル: file02.png 1049件 [詳細] file03.png 1052件 [詳細] file01.png 1062件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-11-01 (水) 09:48:26