2017-06-22 87 views
1

我正在嘗試獲取文件所有者而不以域/用戶名格式顯示。獲取無域路徑的文件所有者名稱

Get-ChildItem T:\file\ -Recurse| Where { 
$_.PSIsContainer -eq $True} | select @{Name='Date Modified'; Expression= 
{$_.LastWriteTime.ToString('MM/dd/yyyy')}}, @{Name='Owner';E= 
{$_.GetAccessControl().Owner}}, FullName 

所有者輸出是這樣的:

1stserver \用戶名

有反正我能得到它只是這個?:

用戶名

我基本上試圖從文件路徑中刪除域名/服務器名稱,只顯示用戶名。

回答

2
Get-ChildItem T:\file\ -Recurse| Where { 
$_.PSIsContainer -eq $True} | select @{Name='Date Modified'; Expression= 
{$_.LastWriteTime.ToString('MM/dd/yyyy')}}, @{Name='Owner';E= 
{(($_.GetAccessControl().Owner.Split('\'))[1])}}, FullName 

使用你的代碼,我們只需通過分離分裂「域\用戶」「\」,然後採取1nth元素(也就是用戶)

+0

秒元素,實際上,作爲PowerShell使用零 - 數組的原始數據。我的第一個想法是使用'[-1]',因爲它說「採用最後一個元素,而不管陣列中有多少個元素」。 –

+0

@JeffZeitlin如果你的域名或用戶名中有反斜槓,你就會遇到更大的問題。 – ConnorLSW

+0

如果它是第一個元素,我會說你的0,因爲它們是從零開始的數組。這是Windows安全描述符的重度類型對象,此值始終以此格式顯示。 – thepip3r

相關問題