|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Есть скрипт - Удаление папки с компьютера в локальной сети - подскажите пожалуйста.. |
|
PowerShell - [решено] Есть скрипт - Удаление папки с компьютера в локальной сети - подскажите пожалуйста..
|
Старожил Сообщения: 169 |
Здравствуйте,
Подскажите пожалуйста: Есть скрипт удаляющий папку или несколько папок (и даже файлов) с указанного компьютера в сети. Вопрос будет ли работать скрипт с несколькими машинами, если у казать компьютеры через запятую PK-New, PK-New2, PK-New3 ? function Deleted-ObjectLocalNetwork(){ param ( $Computer, #IP или Имя удаленного компьютера [String[]]$SeachObjectDeleted #Объект (папка, файл) для удаления. ) #Поиск логических дисков на компьютере. $Disks = $null trap {Write-Host “Error WmiObject $Computer”;Continue} $Disks += Get-WmiObject Win32_Logicaldisk -ComputerName $Computer | Where-Object {$_.Size -ne $null} foreach ($Disk in $Disks){ #В имени диска заменяем “:” на “$” if ($Disk.Name -like “*:*”) {$Disk = $Disk.Name.replace(“:”,“$”)} #Загружаем в массив данные логического диска. $Info = $null trap {Write-Host “Error ChildItem $Computer”;Continue} $Info += Get-ChildItem “\\$Computer\$Disk\*” -recurse -ErrorAction SilentlyContinue if ($Info -ne $null){ #Удаляем Объект (папка, файл) из всех расположений логического диска. foreach ($Folder in $SeachObjectDeleted){ $Info | Where-Object {$_.Name -like $Folder} | % {Remove-Item $_.FullName -Recurse -Force -ErrorAction SilentlyContinue} } } else {Write-Host “$SeachObjectDeleted Not Found” } }} Deleted-ObjectLocalNetwork -Computer PK-New -SeachObjectDeleted Papka_ |
|
Отправлено: 20:11, 15-10-2012 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Если передать,как:
"PK-New"," PK-New2", "PK-New3" | Foreach {Deleted-ObjectLocalNetwork -Computer $_ -Seach "file.txt"} А так если добавить [string[]]$Computer и дополнительный цикл foreach.Условия trap не будут отрабатывать. |
Отправлено: 22:47, 15-10-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Попробовал свой вариант скрипта не работает, попробовал ваш вариант, уважаемый Kazun, тоже не работает. Указываю два IP адреса или два имени компьютера . Подскажите пожалуйста в чем может быть проблема с данным скриптом.
А вот такой скрипт работает на ура [CmdLetBinding()] param($files = ("test007")) foreach ($i in 15,16) { $pc = "192.168.1.$i" if (Test-Connection $pc -Count 2 -Quiet) { Write-Verbose "осуществляется поиск на $pc" Get-ChildItem "\\$pc\c$" -Recurse -Force | Where {$files -contains $_.name} | Remove-Item -Force -Confirm:$false } else { Write-Verbose "$pc не отвечает" } } |
Отправлено: 09:44, 16-10-2012 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать function Deleted-ObjectLocalNetwork { [CmdLetBinding()] param ( [String[]]$ComputerName, #IP или Имя удаленного компьютера [String[]]$SeachObjectDeleted #Объект (папка, файл) для удаления. ) foreach($Computer in $ComputerName) { if (Test-Connection $Computer -Count 2 -Quiet) { Write-Verbose "осуществляется поиск на $computer" trap {Write-Host "Error WmiObject $Computer";Continue} $Disks = Get-WmiObject Win32_Logicaldisk -Filter "Size > 0 and DriveType=3" -ComputerName $Computer -ErrorAction Stop foreach ($Disk in $Disks){ $Disk = $Disk.Name.replace(":","$") Write-Verbose "Загружаем в массив данные логического диска \\$Computer\$Disk" $Info = Get-ChildItem "\\$Computer\$Disk" -Recurse -ErrorAction SilentlyContinue $Info | Where-Object {$SeachObjectDeleted -contains $_.Name} | Foreach {Remove-Item $_.FullName -Recurse -Force -Verbose} } } else { Write-Verbose "$computer не отвечает" } } } |
Последний раз редактировалось Kazun, 16-10-2012 в 10:48. Отправлено: 10:41, 16-10-2012 | #4 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Спасибо за помощь уважаемый Kazun, скрипт работает отлично .
|
|
Отправлено: 19:30, 16-10-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Скрипт для подключения локальной папки как диска. | grafgeest | Скриптовые языки администрирования Windows | 2 | 22-07-2011 13:32 | |
Прочее - [решено] Подскажите пожалуйста есть ли на роутере port-forwarder? | BROTHERHOOD | Сетевые технологии | 2 | 28-06-2009 12:54 | |
Вопрос - настройка компов в локальной сети для обновления из локальной папки | WChek | Защита компьютерных систем | 4 | 08-02-2009 10:46 | |
Доступ - Не видно компьютеров в локальной сети | Zak0n | Microsoft Windows Vista | 23 | 06-07-2008 14:37 | |
Прочее - Нет пинга от компьютеров в локальной сети. | Maxwell_Forrest | Сетевые технологии | 4 | 10-03-2008 20:27 |
|