Назад | Перейти на главную страницу

Закрытие всех общих файлов в сети

Я пытаюсь закрыть все открытые файлы в общих папках сервера с помощью сценария PowerShell. Я нашел следующий сценарий, который закрывает файлы только на одном диске (F :), однако на этом сервере есть 3 диска (F: \, G: \, H :), которые я хочу закрыть все.

net files | 
    where   { $_.Contains( "F:\" ) } |
    foreach { $_.Split( ' ' )[0] }   |
    foreach { net file $_ /close }

Есть ли способ добавить недостающие диски в этот скрипт или мне придется использовать один и тот же скрипт отдельно для каждого диска?

Я попытался { $_.Contains( "F:\", "G:\", "H:\" ) } но не сработало

Спасибо за помощь!

Используемая вами команда не является собственной командой PowerShell. Однако PowerShell имеет множество функций для управления SMB-соединениями и общими ресурсами.

То, что вы ищете, может быть таким:

Get-SMBOpenFile | Close-SMBOpenFile -Force

Это закроет все файлы, открытые через общие файловые ресурсы. Вы также можете управлять SMB-соединениями (Get-SMBConnection) и другими вещами. С участием Get-Command *smb* вы получите список всех команд, связанных с SMB.