Войти

Показать полную графическую версию : Удаление временных файлов


pogo
07-02-2015, 00:35
Доброго времени суток.

Есть скрипт на ps, для решения данной задачи:
#системные пути для очистки
$OtherCleanPathsArr = “C:\Temp\*”, “C:\Windows\Temp\*”, “C:\swsetup”
#пути в профилях для очистки
$InProfilesCleanPathsArr = “\AppData\Local\Temp\*”, “\AppData\Local\*.auc”, “\AppData\Local\Microsoft\Terminal Server Client\Cache\*”, “\AppData\Local\Microsoft\Windows\Temporary Internet Files\*”, “\AppData\Local\Microsoft\Windows\WER\ReportQueue\*”, “\AppData\Local\Microsoft\Windows\Explorer\*”
#извлекли из реестра местоположение профилей, сформировали список
$Profiles = Get-ChildItem (Get-ItemProperty -path “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList”).ProfilesDirectory -Exclude “Администратор”, "admin", “Administrator”, “Setup”, “Public”, “All Users”, “Default User”

ForEach ($Path in $OtherCleanPathsArr) {
Remove-Item -Path $Path -Recurse -Force -ErrorAction SilentlyContinue
}
ForEach ($Profile in $Profiles) {
ForEach ($Path in $InProfilesCleanPathsArr) {
Remove-Item -Path $Profile$Path -Recurse -Force -ErrorAction SilentlyContinue
}
}Проблема его в том, что при запуске его из планировщика, с любыми ключами (-NoProfile -NonInteractive -WindowsStyle Hidden), окно ps всё равно выскакивает.
Помогите пожалуйста переписать скрипт на vbs\js. Начал гуглить и что-то сразу застрял, на том, как получить список всех путей до профилей пользователей на комп, как-то в ps это делается в одну строку, а на др языках, прям как-то страшненько

pogo
11-02-2015, 21:51
Что совсем никаких идей нет, как можно с ps скрипт переписать?

Georgio
12-02-2015, 00:48
Что совсем никаких идей нет, как можно с ps скрипт переписать? »


Есть другая идея -- запускать PowerShell без создания окна из VBS-файла: CreateObject("WScript.Shell").Run "powershell ""$OtherCleanPathsArr = 'C:\Temp\*', 'C:\Windows\Temp\*', 'C:\swsetup'; $InProfilesCleanPathsArr = '\AppData\Local\Temp\*', '\AppData\Local\*.auc', '\AppData\Local\Microsoft\Terminal Server Client\Cache\*', '\AppData\Local\Microsoft\Windows\Temporary Internet Files\*', '\AppData\Local\Microsoft\Windows\WER\ReportQueue\*', '\AppData\Local\Microsoft\Windows\Explorer\*'; $Profiles = Get-ChildItem (Get-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList').ProfilesDirectory -Exclude 'Администратор', 'admin', 'Administrator', 'Setup', 'Public', 'All Users', 'Default User'; ForEach ($Path in $OtherCleanPathsArr) {Remove-Item -Path $Path -Recurse -Force -ErrorAction SilentlyContinue}; ForEach ($Profile in $Profiles) {ForEach ($Path in $InProfilesCleanPathsArr) {Remove-Item -Path $Profile$Path -Recurse -Force -ErrorAction SilentlyContinue}}""", 0.

Iska
12-02-2015, 04:07
Что совсем никаких идей нет, как можно с ps скрипт переписать? »
pogo, идеи есть. Нет никакого желания.




© OSzone.net 2001-2012