2017-08-10 153 views
0

所以,我得到這個腳本:PowerShell是改變腳本的輸出

$userName = Read-Host -Prompt 'Input User ID' 
echo "[$userName]" 

$Properties = 
@(
'DisplayName', 
'SamAccountName', 
'Enabled', 
'Created', 
'EmailAddress', 
'title', 
'manager', 
'AccountLockoutTime', 
'Department', 
'Description', 
'Division', 
'LastLogonDate', 
'LockedOut', 
'PasswordLastSet' 
) 

Get-ADUser $userName -Properties $Properties | select $Properties 
Get-ADPrincipalGroupMembership $userName | select name 

當我只執行了最後的命令:

Get-ADPrincipalGroupMembership $userName | select name 

輸出是:

name   
----   
Domain Users 
blabla 
blabla Users 
IT.BG   
blabla users 

但是當我運行該腳本輸出更改爲:

name : Domain Users 

name : blabla 

name : blabla Users 

name : blabla 

name : blabla 

name : blabla users 

有人可以告訴我爲什麼會發生這種情況,我該如何解決?

+0

不知道爲什麼這被標記爲重複。重複與問題的內容完全相反。答案甚至沒有提及'Format-Table',它是回答這個問題所需的cmdlet! –

+0

@BaconBits我將它標記爲重複項,因爲底層問題是相同的(PowerShell默認輸出格式),我相信我對於其他問題的回答解釋了爲什麼會發生這種情況以及如何減輕這種情況。 –

+0

@AnsgarWiechers是的,我認爲這是解釋PowerShell的默認輸出處理的一個很好的參考,但不是一個重複的問題。畢竟,[這個問題](https://stackoverflow.com/questions/2249619/how-to-format-a-datetime-in-powershell)和[這個問題](https://stackoverflow.com/questions/ 9904352/how-to-create-printf-effect-in-powershell)不是duplciates,即使它們都有效地詢問「如何使用格式運算符?」。只有在鏈接問題中的答案完全回答問題時,它才應該是重複的,對嗎? –

回答

1

看起來輸出系統將其格式化爲列表而不是表格。這可能是因爲上一行將輸出格式化爲列表而不是表格。

嘗試迫使它是一個表:

Get-ADPrincipalGroupMembership $userName | Format-Table -Property name -Autosize 
+0

它的工作。謝謝! –