сценарий powershell, считывающий дату последнего изменения папки

#excel #date

#excel #Дата

Вопрос:

Мне нужен скрипт, который считывает дату последнего изменения файла и кем он был изменен, и выводит данные в Excel. Я нашел скрипт, который изменяет дату изменения.

 $a = get-date
$b = Get-ChildItem "C:Intel" -recurse | ? { !$_.psiscontainer }
foreach ($i in $b)
{
    $i.LastWriteTime = $a 
}

$b
  

Ответ №1:

Вы можете легко получить LastWriteTime, проверив свойство LastWriteTime файла.

 get-childitem * | select FullName,LastWriteTime,Owner
  

Вы можете проверить владельца файла, который может быть или не быть последним человеком, который изменялся, в зависимости от типа файла. Некоторые файлы office сменят владельца на последнего пользователя, который им писал, но я не уверен, что это надежно.

 get-childitem * | ForEach-Object {get-acl $_ | select owner}
  

NTFS не регистрирует последнего пользователя, который изменил файл. Вы можете либо включить аудит и проверить журнал событий системного аудита, либо заглянуть в класс filesystemwatcher и создать пользовательский скрипт, который отслеживает изменения в папке. (Предупреждение: это может вызвать проблемы с производительностью.)