在脚本之后运行Powershell命令

在脚本之后运行Powershell命令,powershell,cmdlets,Powershell,Cmdlets,我是PowerShell的新手,我试图通过为日常任务创建脚本(获取用户名、重置密码和解锁帐户)来节省几次点击 问题是:当我启动脚本时,Powershell将执行除cmdlet之外的所有操作,并将通过cmdlet完成 例如,当我使用第一个选项(Get username)时,它会提示我“按enter键结束脚本”,然后显示GetUserName函数的结果 请在下面找到我的代码: # Author : Maxime # Creation date : 20/06/2018 # Version : 0.

我是PowerShell的新手,我试图通过为日常任务创建脚本(获取用户名、重置密码和解锁帐户)来节省几次点击

问题是:当我启动脚本时,Powershell将执行除cmdlet之外的所有操作,并将通过cmdlet完成

例如,当我使用第一个选项(Get username)时,它会提示我“按enter键结束脚本”,然后显示GetUserName函数的结果

请在下面找到我的代码:

# Author : Maxime
# Creation date :  20/06/2018
# Version : 0.1
Function GetUserName($name)
{
    $u = 'surname -like "' +$name+ '"'
    $res = Get-ADUser -Filter $u | select Name, GivenName, Surname
    return $res
}


echo "Menu"
echo "------"
$choix = read-host " 1. Trouver utilisateur par nom `n 2. Reset Password `n 3. Deverrouiller compte `nChoix  "


if($choix = 1)
{
    $name = Read-Host "Entrez nom utilisateur "
    GetUserName($name)

}
elseif( $choix = 2) 
{
    $id = Read-Host "Entrez ID"
    Set-ADAccountPassword $id -confirm -Reset
}
elseif ($choix -= 3)
{
    $id = Read-Host "Entrez ID "
    Unlock-ADAccount -Confirm $id
}
else
{
    echo "Mauvais choix"
}



read-host "Press enter to end the script ..."
编辑:

当我在没有ISE的情况下启动脚本时:

当我使用ISE启动脚本时,我可以看到在确认关闭后显示我的结果

我希望脚本显示信息,然后显示关闭窗口的确认信息


要确保在从
读取主机发出提示之前显示输出,您可以使用:

$res = GetUserName($name)
$res | Format-Table
很可能与
Select Object
功能(也有报告)的延迟有关

另一个选择是更改此行

$res = Get-ADUser -Filter $u | select Name, GivenName, Surname


当您使用
格式列表
格式表
时,不会出现延迟,您的输出会以正确的顺序显示。

我真的不理解这个问题。就我看来,代码看起来不错(我现在没有服务器要检查)。让我们编辑并添加屏幕截图:)当我测试它时,它会显示输出,但在你按下enter键后(我正在ISE中测试,所以我看到了)。试着使用这个(保存到变量和管道到表:
$res=GetUserName($name);$res | ft
@robdy,没错!你的解决方案有效,你知道为什么在“按enter”后会显示它吗?可能与此有关。不过,我很高兴它有效,让我将其转换为一个答案,以便你可以接受它(如果你愿意的话)。
$res = Get-ADUser -Filter $u | fl Name, GivenName, Surname