なんだかずいぶん手間のかかることをしている記事を見かけたのですが、ん~、そこまでしなくてもと思っちゃったので一応サンプルを。
net use
を使わずやりましょう。
PowerShell 3.0 でのサンプル
ソースコードをおいておきます。
guitarrapc/PowerShellUtil -Set-ShareDrive/SEt-ShareDrive.ps1 | GitHub
PowerShell 3.0からNew-PSDrive
を使えば共有ドライブを作成できます。-Persist
パラメータをつけないとそのPSセッションを抜けたときに消されますが、-Perist
をつけるとセッション終了後も利用できます。
$SharePath = "\\共有したいドライブパス" $DriveName = "空いてるドライブ名" if(-not ((Get-PSDrive).DisplayRoot -contains $SharePath)) { New-PSDrive -Name $DriveName -PSProvider FileSystem -Root $SharePath -Persist }
PowerShell 2.0 でのサンプル
PowerShell 2.0では次のようにWScriptを利用する必要がありました。
[CmdletBinding()] param( [string]$driveletter, [string]$path, [switch]$persistent ) process{ $nwrk=new-object -com Wscript.Network Write-Verbose "Mapping $($driveletter+':') to $path and persist=$persistent" try{ $nwrk.MapNetworkDrive($($driveletter+':'),$path) Write-Verbose "Mapping successful." } catch{ Write-Verbose "Mapping failed!" } }
別口でCOMを使う方法もありますがつらいです。
$Network = New-Object -ComObject "Wscript.Network" $Network.MapNetworkDrive("P:", "\\MyComputer\MyShare")
リストアップはこれで
(New-Object -Com WScript.Network).EnumNetworkDrives()
削除はこれで
(New-Object -Com WScript.Network).RemoveNetworkDrive("P:")