Pergunta

I run this code:

Get-ChildItem 'C:\Test Folder' | Where {$_.LastWriteTime} | select -last 1

And I get back Mode, LastWriteTime, Length, and Name of the last modified file - great!

I'm trying to get the username of the file's owner as well.

I've added this code:

| ForEach-Object {Get-Acl $_.FullName}

Which returns Path, Owner, Access for the file.

How can I display LastWriteTime, and Owner to be the only objects shown in the output?

Foi útil?

Solução

Are you sure that what you are trying to do is not the following?

Get-ChildItem 'C:\Test Folder' | Sort {$_.LastWriteTime} | select -last 1

You can try this:

$c = Get-ChildItem 'C:\Test Folder' | Sort {$_.LastWriteTime} | select -last 1 | foreach {$a=$_;$b=Get-Acl $_.FullName; Add-Member -InputObject $b -Name "LastWriteTime" -MemberType NoteProperty -Value $a.LastWriteTime;$b}
$c.LastWriteTime

Outras dicas

So the select will allow you to just get the properties you are interested in.

So a few things to do:

  1. Figure out what properties you could select from
    Get-ChildItem | Get-Member -membertype properties
    
  2. Once you know the properties just add to the select in your original statement

    Get-ChildItem'c:\test folder' | where {$_.lastwritetime} | select -last 1 | `
    foreach { write-host $_.lastwritetime ((get-ACL).owner)}
    

Finally, don't be afraid of the Get-Help command.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top