2017-11-01 17 views
0

私はPowerShell 5.1.14409.1012を使用しており、New-PsDriveを使用してネットワークドライブを作成します。私は(hereから取られた)次のコードを使用し、ユーザーによって使用されていないマップされたネットワークドライブを作成することを確実にするために未使用のネットワークマップドライブを確認してください

$used = Get-PSDrive | Select-Object -Expand Name | Where-Object { $_.Length -eq 1 } 
$drive = 90..65 | ForEach-Object { [string][char]$_ } | 
     Where-Object { $used -notcontains $_ } | 
     Select-Object -First 1 

私はGet-PSDrive | Select-Object -Expand Name | Where-Object { $_.Length -eq 1 }を実行すると、以下が表示されたものです:

C 
D 
E 
P 
Q 
T 
U 
V 
W 
X 
Y 
Z 

事は、私がマイコンピュータ]をチェックすると、現在の切断ドライブ文字のカップルがあり、次のとおりです。

​​

あなたが見ることができるように、Get-PSDriveは(例えば、「S」ドライブなど)切断されたネットワークドライブをピックアップしていない、と私はそれに接続しようとしたとき、これは次のエラーを作成しました:

New-PSDrive error

接続されていないネットワークドライブをキャプチャするのに最適な方法は何ですか?

+0

この回答から未使用のドライブ文字を取得するための私のコードを試してみてください。 [Powershell関数が呼び出されたときにドライブをマッピングしない](// stackoverflow.com/a/44680810)、私は接続されていないドライブを処理する必要があると思います。 –

+0

これは何を返します:[System.IO.DriveInfo] :: GetDrives()|フォーマットテーブル –

答えて

0

同様の機能は、既に`Net Use'に存在する:(次の利用可能なデバイス名を割り当てる代わりに、特定のデバイス名のアスタリスク(*)を入力)

実際の選択されたドライブ名を取得する:

$Drive = (net use * \\Server\Share)[0][6] 

また、使用中のドライブを検索するためGet-WMIObjectを使用することを検討するかもしれない:

Get-WMIObject -query "Select * From Win32_LogicalDisk Where DriveType = 4" | Select-Object -Expand DeviceID 
関連する問題