PowerShell ISE - добавление созданного файла - PullRequest
1 голос
/ 24 марта 2020

Я новичок в Powershell и надеюсь использовать его возможности для оказания помощи в аудите.

Попытка получить список всех файлов на общем диске и дату их создания.

Использование следующего кода дает мне полный список: Get-ChildItem -Path [server name folder name] -Depth 5

Однако поля, возвращаемые из кода: mode, lastwritetime, length и name. Я также хотел бы получить дату создания файла.

Кроме того, есть ли способ удалить 'mode' из возвращенного списка? Есть ли способ преобразовать длину из битов в КБ или МБ?

Заранее спасибо, MS

1 Ответ

0 голосов
/ 24 марта 2020

Используйте .CreationTime, чтобы получить дату создания.

$target_files = Get-ChildItem "\\server\folder1\folder2\*" -recurse -include "*"
$target_files.CreationTime

Используя мою переменную выше $ target_files, вы можете просмотреть все свойства объекта, выполнив $target_files | get-member

4, которые вы видите: Mode, LastWriteTime, Length, Name. Это только те свойства, которые выводятся командой, но это еще не все.

С учетом сказанного вы можете управлять выводом, используя select-object

$target_files = Get-ChildItem "\\server\folder1\folder2\*" -recurse -include "*"
$target_files | select-object -Property CreationTime, name, @{n='Length';e={$_.Length / 1KB}}

Просто поставьте любые свойства, которые вы хотите, после вышеуказанного флага -Property. Это должно решить ваш вопрос о том, чтобы не показывать «mode»

Чтобы получить вашу длину в КБ, МБ, ГБ или что-то еще, вам просто нужно сделать .... length / 1kb, length / 1mb, et c ...

foreach($a in $target_files){
    "File: " + $a 
    "Size: " + $a.length/1kb
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...