在写入主机和读取主机

时间:2017-11-17 21:50:54

标签: powershell active-directory

代码不会返回Get-ADUser命令的结果,直到我在代码末尾点击回车符

    Write-Host "Please enter the user account name. Ex. jsmith1" -ForegroundColor Yellow -BackgroundColor Black
$Username = Read-Host
"`n"

Write-Host "Is this the correct username?  $Username" -ForegroundColor Yellow -BackgroundColor Black
Write-Host "If Yes Type 1; If No type 2" -ForegroundColor Yellow -BackgroundColor Black
$Continue1 = Read-Host

IF ($Continue1 -eq 1)
{
  Get-ADUser -Server "contoso.com" -filter * -Properties * | Where {$_.SamAccountName -match $Username} | Select DisplayName, SamAccountName, EmployeeID, EmployeeNumber
}
ELSE
{}

Write-Host "Would you like to update the Employee ID and the Employee Number?" -ForegroundColor Yellow -BackgroundColor Black
Write-Host "If Yes Type 1; If No type 2" -ForegroundColor Yellow -BackgroundColor Black
$Continue2 = Read-Host

我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

在执行命令期间会立即显示Write-Host个项目。

Get-ADUser结果在输出管道上。

通常,这允许您将值返回到另一个脚本,例如,以便进一步处理。由于您没有分配它或捕获输出,因此它只是转到默认格式化程序并在执行结束之前的所有其他内容后显示。

如果您真的只是想显示输出,可以在| Write-Host来电的末尾添加Get-ADUser。如果您想将此连接到另一个脚本,您可以将值捕获到变量,然后是Write-Host,然后是Write-Output,以将其添加回管道。

另请参阅:Understanding the Windows PowerShell Pipeline

答案 1 :(得分:0)

我发现您还可以在末尾添加一些格式,并且在您期望的时候它会按您期望的那样输出。我在最后添加了这种格式:

| FT -AutoSize