How to get PST file onwer from network location using powershell

How to PST file owner,Filename,network location path,size of the PST file.

This why the Get-ChildItem Get-Acl cmdlets exists.
Get-ChildItem -Path [Path to file location]
Get-Acl $Path | Select Path, Owner -expand access

Quick and dirty.

($FilesToVerify = Get-ChildItem -Path C:\Temp -Filter ‘*.pst’ | Select -Property PSDrive,Fullname,Length -First 1 )
ForEach($TargetFile in $FilesToVerify)
{Get-Acl $TargetFile.FullName | Select Owner -expand access}

I am not sure what you mean by network location, because you have to know where the file is to ask for any info on it.
There is no network location as meta data on a file. Which means you already have to know the network location / servername / clientname.
This is domain level information / client / server, not network IP ranges.
If you are saying, you want to pull the server’s IPA from the server name from which you asked for file information, then that is
what Test-Connection is for.

So, changing the above a bit, you get…

Test if the server target that has the file(s) needed is up

($ServerIPA = (Test-Connection -ComputerName ‘satlws01’ -Count 1)).IPV4Address

You could use that IPA to determine what network segment the server was in, but why is the question.

($FilesToVerify = Get-ChildItem -Path C:\Temp -Filter ‘*.pst’ | Select -Property PSDrive,Fullname,Length -First 1 )
ForEach($TargetFile in $FilesToVerify)
{Get-Acl $TargetFile.FullName | Select Owner -expand access}

Now, none of the above is elegant, and can be made better, but this should get you started.

Hi,
Thanks for your quick response. Below listed is my requirement…
Data fetch of PST File path location in client machines.
I already have a script file which is able to fetch the details like Path, Size, last login user of PST file path from client systems.
But i also want to know the PST file owner from whose ID/maibox it has been created…could you please help on the same.

Below is the script which i am currently using to fetch the details which is not giving the PST file owner details:
$strComputers = Get-Content -Path “C:\Computers.txt”
[bool]$firstOutput = $true
foreach($strComputer in $strComputers)
{
$colFiles = Get-Wmiobject -namespace “root\CIMV2” `
-computername $strComputer `
-Query “Select * from CIM_DataFile `
Where Extension = ‘pst’”
foreach ($objFile in $colFiles)
{
if($objFile.FileName -ne $null)
{
$filepath = $objFile.Drive + $objFile.Path + $objFile.FileName + “.” `

  • $objFile.Extension;
    $query = “ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='” `
  • $filepath `
  • “'} WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner”

$LogedInUser = Get-WmiObject -ComputerName $strComputer -Class Win32_ComputerSystem -Property UserName |
Select-Object -Property UserName
$output = $strComputer + “,” + $filepath + “,” + $user + “,” + $objFile.FileSize/1gb + “,” + $LogedInUser
if($firstOutput)
{
Write-output $output | Out-File -Encoding ascii -filepath “C:\Result.csv”
$firstOutput = $false
}
else
{
Write-output $output | Out-File -Encoding ascii -filepath “C:\Result.csv” -append
}
}
}
}