無法從某些PowerShell命令獲取我想要的輸出。我正在創建一個PowerShell腳本來幫助清理主目錄。我需要獲得目錄的權限,並確保directoy的名稱和有權訪問的用戶匹配。Powershell輸出
我使用Get-Acl函數,它有很多額外的數據。理論上這些目錄上的文件權限應該以管理員作爲所有者,用戶應該是Access下列出的唯一人員。
PS C:\> Get-Acl "\\fs1\home\e55555"
Directory: \\fs1\home
Path Owner Access
---- ----- ------
e55555 BUILTIN\Administrators DOM\e55555 Allow ...
我想篩選出除訪問權限以外的所有內容。我嘗試了管道|選擇Access但它不會給我相同的輸出。
我知道除了UserID之外我還會得到額外的信息,所以我想我可以寫一個文件並嘗試「grep」我需要的東西。通過一些谷歌上搜索和實驗我得到了一些輸出,我覺得會很容易解析,這裏是命令和輸出:
PS C:\> $test = Get-Acl \\fs1\home\\e55555 | Select-Object -ExpandProperty Access
| select IdentityReference
IdentityReference
-----------------
DOM\e55555
NT AUTHORITY\SYSTEM
BUILTIN\Administrators
NT AUTHORITY\Authenticated Users
嘗試使用正則表達式來找到我想要的線,沒有我想的東西給我任何輸出。我想下面的命令不同的變化和也試圖解析,而不是一個變量文件:
echo $test | Select-String -pattern "^DOM"
[regex]::matches($test,"^DOM")
因此,如何將我的輸出調整了我的GET-acl命令?我怎麼能「grep」的任何行開始與DOM沒有額外的數據?
非常感謝您!能夠得到你需要的代碼。當我在PowerShell中看到你的代碼是面向對象的,而且我只需引用該屬性時,是一個很大的幫助。 – zjherner