Простой лог-файл для сценария PS? - PullRequest
1 голос
/ 04 ноября 2019

У меня есть сценарий PS, который удаляет определенные файлы из папки. Но я бы хотел, чтобы при запуске скрипта создавался и обновлялся лог-файл, в котором указано, какие файлы были удалены.

Мой скрипт:

$Directory = "C:\test"
Get-ChildItem -path $Directory | 
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-45) } | 
Remove-Item -Recurse -Force -Confirm:$false

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Если вы хотите, чтобы в вашем приложении содержались понятные и простые записи и чтения журналов, я советую вам использовать EventLog командлеты, доступные в Powershell.

Непосредственно из справки Powershell:

get-help New-EventLog -ShowWindow

Example 1: Create an event log and register its source
    PS C:\>New-EventLog -Source "TestApp" -LogName "TestLog" -MessageResourceFile "C:\Test\TestApp.dll"

get-help Write-EventLog -ShowWindow

Example 1: Write an event to the Application event log
    PS C:\>Write-EventLog -LogName "Application" -Source "MyApp" -EventID 3001 -EntryType Information -Message "MyApp added a user-requested feature to the display." -Category 1 -RawData 10,20

Затем вы можете прочитать свой журнал и сохранить его в файл, если вам нужно.

0 голосов
/ 04 ноября 2019

Вы можете настроить простую регистрацию с помощью Set-Content и Update-Content. Затем измените ваш скрипт для выполнения обеих задач.

$Directory = "C:\test"
$files = Get-ChildItem -path $Directory | 
    where-object { $_.LastWriteTime -lt (Get-Date).AddDays(-45) } | 
    Select-Object -ExpandProperty FullName
foreach($file in $files){
    Add-Content -Path C:\test\log.log -Value "Deleted file: $file"
    Remove-Item -path $file -Recurse -Force -Confirm:$false
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...