1
我想投一個對象內部的Select-Object
PowerShell的:選擇對象
我似乎無法得到正確的語法:(
Select-Object `
@{name='a';expression={$path}}, `
@{name='b';expression={$folder}}, `
@{Name='c';expression={ [System.Security.Principal.SecurityIdentifier]$_.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value}}, `
@{Name='SID';expression={$_.IdentityReference}}
也能收到空字符串
內投對象任何想法?
編輯:我應該提到我在這裏要做的。 IdentityReference
似乎是給我一個SID,我只是想將它轉換爲名稱。
@briantist - 是劇組工作之外,儘量([System.Security.Principal.SecurityIdentifier]"S-1-5-XX-VALID-SID-HERE").Translate([System.Security.Principal.NTAccount]).Value
我開始。
@TessellatingHeckler $_.IdentityReference.Translate([System.Security.Principal.SecurityIdentifier])
沒有傷心地工作。
是否'選擇-Object'外投工作? – briantist
例如' '4' |選擇@ {N = 'nocast'; E = {$ _ + 1}},@ {N = '鑄造'; E = {[INT] $ _ + 1}} | fl' - 投射到'[int]'在表達式內部工作,所以你不會錯誤的語法。如果表達式由於任何原因拋出異常,它將被取消,並且你什麼也得不到,例如''a'| select @ {N ='cast'; E = {[int] $ _ + 1}} | fl'。什麼類型是'$ _'?因爲我無法從FileSystemAccessRule/NTAccount快速創建該工作。它看起來像你得到一個用戶名,翻譯成用戶名,獲得用戶名值,然後投到一個SID。你可以直接'$ _。IdentityReference.Translate([System.Security.Principal.SecurityIdentifier])'? 。 – TessellatingHeckler
'([System.Security.Principal.SecurityIdentifier] $ _的IdentityReference).Translate([System.Security.Principal.NTAccount])Value' – PetSerAl