Я пишу сценарий входа в систему, который отключает отображение и переназначает некоторые диски.
Powershell вызывает небольшой пакетный файл для фактического отключения сопоставления, поскольку Powershell кажется немного нестабильным при надежном сопоставлении дисков.
Я использую следующий код:
$arrDrives = "m:","n:","o:","p:","q:","r:","s:","u:","v:","x:","y:"
foreach ($drive in $arrDrives) {
if (test-path $drive) {
UpdateSubHeading ("Removing drive " + $drive)
c:\bin\removeDrive.bat $drive }
}
И командный файл, который он вызывает, просто:
if exist %1 net use %1 /del
Все это работает нормально, если нет открытого подключения к диску, который он пытается отключить. Если у пользователя открыт файл, то он зависает.
Есть ли способ проверить, есть ли открытые подключения к подключенному диску, прежде чем я попытаюсь отключить его и пропустить отключение, если оно есть?
Спасибо,
Бен
Сценарий, вероятно, ожидает разрешения на удаление соединения
например
M:\>net use m: /delete
There are open files and/or incomplete directory searched pending on the connection to m:.
Is it OK to continue disconnection and force them closed (Y/N) [N]:
Вам необходимо предоставить разрешение в командной строке
например
M:\>net use m: /delete /yes
There are open files and/or incomplete directory searched pending on the connection to m:.
m: was deleted successfully
или в вашем случае
if exist %1 net use %1 /del /yes