2013-12-18 3 views
2

У меня есть 200 ПК, которым необходимо удалить определенные значки.PowerShell для удаления элементов рабочего стола с удаленного компьютера

Я создал файл CSV с (имя 1 на строку) ИмяКомпьютера

У меня есть еще один файл с именем файла значка, который должен быть удален из рабочих столов (Shortcut1.lnk и т.д.). Этот другой файл также является CSV (1 имя файла для каждой строки).

Как запустить сценарий PowerShell для удаления этих значков. (Обратите внимание, что не все компьютеры в моем CSV-файле могут быть включены. Возможно, у вас проблемы с сетью).

$SOURCE = "C:\powershell\shortcuts" 
$DESTINATION = "c$\Documents and Settings\All Users\Desktop" 
$LOG = "C:\powershell\logs\logsremote_copy.log" 
$REMOVE = Get-Content C:\powershell\shortcuts-removal.csv 

Remove-Item $LOG -ErrorAction SilentlyContinue 
$computerlist = Get-Content C:\powershell\computer-list.csv 

foreach ($computer in $computerlist) { 
    foreach ($file in $REMOVE) { 
    Remove-Item "\\$computer\$DESTINATION\$file" -Recurse 
    } 
} 

Это мой код, но до сих пор он не появляется, чтобы удалить файлы из

\\computername\c$\Documents and Settings\All Users\Desktop 

Я получаю ошибки и предупреждения. Файл журнала также не создается.

В любом случае, чтобы получить отчет о том, что было удалено. что не было удалено?

ответ

4

Изменить это, вы уже указать косую черту в вашей целевой переменной $, вы скрючившись @\\c$

Remove-Item "\\$computer$DESTINATION\$file" -Recurse 

иначе, вы пытаетесь удалить этот путь и не удается.

\\computername\\c$\Documents and Settings\All Users\Desktop\$file 
+0

Спасибо. Я пропустил его, но я получаю предупреждения о том, что «Удалить элемент: не удается найти путь» \\ COMPUTERNAME \ c $ \ Documents and Settings \ All Users \ Desktop \ SCANNER.lnk ', потому что он не существует. В C: \ powershell \ powerdelete.ps1: 11 char: 16 + Удалить элемент <<<< "\\ $ computer \ $ DESTINATION \ $ file" -Recurse + CategoryInfo: ObjectNotFound: (\\ COMPUTERNAME \ c $ \ D ... top \ SCANNER.lnk: String) [Удалить-Item], ItemNotFoundException + FullyQualifiedErrorId: PathNotFound, Microsoft.PowerShell.Commands.RemoveItemCommand –

+0

Попробуйте обернуть предложение if вокруг оператора тестового пути, чтобы проверить файл существует, прежде чем пытаться удалить. Вот вид синтаксиса: http://serverfault.com/questions/560505/suppressing-the-reason-for-shutdown-on-windows-server/561003#561003 –

Смежные вопросы