Как отключить все общие папки на компьютере

Рассмотрим как принудительно отключить общие папки на своем или удаленном компьютере, используя Powershell.

 

Для чего это надо , когда это можно отключить непосредственно через Windows интерфейс?

 

1. При большом количестве общих папок, очень неудобно, выискивать где они находятся физически ( даже в пределах одного компьютера)

2. В доменной структуре, Вы, являясь администратором, легко можете отключить общие папки на удаленных рабочих станциях, которые по каким то причинам надо отключить.

 

Код на PowerShell  прост

 

$CompName = Read-Host 'What is your comp?'

If ($Share = Get-WmiObject -Class Win32_Share -ComputerName $CompName  -filter "not Name like '%$%'")  {

 $Share.delete()

}

 

Первая строка запрашивает у пользователя имя компьютера где  необходимо провести отключение.

 

Во второй строке нас интересует  часть -filter "not Name like '%$%'"

Если мы фильтр не будем использовать, то мы отключим папки с административными и "скрытыми" именами, такие как C$,D$,IPC$ и прочие, которые имеют в конце знак "$"

 

Фильтр нам выберет только те общие папки, в которых нет служебного символа "$".

 

Дальше идет удаление выбранных общих папок, вернее отключение общего доступа к ним. Данные естественно не исчезают.

 

Например результат выполнения  может быть следующим.

 

Result delete share folders

 

Скрипт можно дорабатывать, что бы отработка шла например по диапазону компьютеров, или настроить фильтр так, что бы удалялись имена папок выбранные по какому то другому критерию.

 

Удачи!