Я застрял в довольно странной ситуации. Короче говоря, я пытаюсь удалить / отключить сетевой диск с помощью сценария VB.NET, но пока безуспешно. Мы назовем этот диск V, и он раньше хранился на удаленном сервере - он больше не существует.
Целевой путь этого сетевого диска был удален, и, следовательно, его невозможно найти, поэтому мы хотим удалить его с наших рабочих станций. Как я уже говорил, V хранился на удаленном сервере ... но как-то в «Моем компьютере» он обозначается как жесткий диск (то есть локальный, как C:). Взаимодействие с V при нажатии или с помощью скрипта приведет к следующей ошибке:
сетевое соединение не существует
Чтобы удалить его, я создал этот простой скрипт:
driveLetter = "V:" path = "***" 'скрыт в целях безопасности mapDrives(objNetwork, driveLetter, path)
«---
Sub mapDrives(ByVal objNetwork, ByVal driveLetter, ByVal path) Консоль.WriteLine("") Попробуйте консоль.WriteLine("Отключение старого" & driveLetter & «...») objNetwork.Консоль RemoveNetworkDrive(driveLetter).WriteLine(driveLetter & "отключено")
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Try
Console.WriteLine(" Mapping new " & driveLetter & "...")
objNetwork.MapNetworkDrive(driveLetter, path)
Console.WriteLine(driveLetter & " mapped successfully.")
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Используя powershell, я дважды проверяю, есть этот диск или нет. Я набираю gdr -PSProvider 'FileSystem', которая возвращает список всех доступных дисков, как локальных, так и удаленных. Я получаю все диски, как локальные, так и удаленные. V не является частью этого списка.
Следующим шагом я проверяю реестр в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2, чтобы увидеть, есть ли какая-нибудь запись мусора, которая не была удалена. Все записи соответствуют активным сетевым дискам; V не существует.
Затем я попытался запустить различные команды net use, например, для доступа / удаления диска. В качестве альтернативы вызываются следующие ошибки:
Имя локального устройства уже используется (при попытке удалить) Не удалось найти сетевое соединение (whw
Затем я пытаюсь просто переназначить V: в другое существующее удаленное местоположение. Я получаю следующую ошибку:
Таким образом, в основном все говорит мне, что V не существует и, следовательно, должно быть доступно, но все равно он выглядит как локальный диск, и с ним невозможно взаимодействовать или отображать в каком-либо другом месте. Он также не будет отображаться при попытке скрыть его с помощью групповой политики.
К вашему сведению, наши рабочие станции работают под управлением Windows 7, и сценарий был выполнен в VBNET. Раньше он был написан на VBS, что, по нашему мнению, могло быть проблемой, и поэтому я перенес его на VBNET. Скрипт будет хорошо работать с любым другим диском.
Какие-либо предложения? :) заранее спасибо!