【问题标题】:Powershell is changing the output of the script [duplicate]Powershell正在更改脚本的输出[重复]
【发布时间】:2017-08-10 11:35:01
【问题描述】:

所以,我得到了这个脚本:

    $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

谁能告诉我为什么会这样,我该如何解决?

【问题讨论】:

  • 不知道为什么这被标记为重复。副本与问题的内容完全相反。答案甚至没有提到Format-Table,这是回答这个问题所需的cmdlet!
  • @BaconBits 我将其标记为重复,因为根本问题是相同的(PowerShell 默认输出格式),我相信我对另一个问题的回答解释了它为什么会发生以及如何缓解它.
  • @AnsgarWiechers 是的,我认为这使它成为解释 PowerShell 的默认输出处理的一个很好的参考,但不是重复的问题。毕竟,this questionthis question 并不是重复的,即使它们都在有效地询问“我如何使用格式运算符?”。如果链接问题中的答案完全回答了问题,则它应该是重复的,对吗?
  • 我的回答不是这样吗?
  • @AnsgarWiechers 否。此问题的答案需要使用 Format-Table cmdlet。如果有人不知道Format-Table cmdlet 的存在,那么阅读您的答案将 解决他们的问题,它只会告诉他们为什么 他们遇到问题。这是解释,不是答案。这就像去看医生说“我的胳膊疼”,然后你的医生花了 20 分钟向你解释身体是如何经历疼痛的。

标签: powershell


【解决方案1】:

看起来输出系统将其格式化为列表而不是表格。这可能是因为上一行将输出格式化为列表而不是表格。

尝试将其强制为表格:

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

【讨论】:

  • 成功了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2012-11-23
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
相关资源
最近更新 更多