脚本后的 Powershell 运行 命令
Powershell running command after script
我是 PowerShell 的新手,我试图通过为日常任务(获取用户名、重置密码和解锁帐户)创建脚本来节省点击次数。
问题是:当我启动我的脚本时,Powershell 将执行除 cmdlet 之外的所有内容,并由它们完成。
例如,当我使用第一个选项(获取用户名)时,它会提示我 "Press enter to end the script",然后显示我的 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 启动脚本时,我可以看到我的结果在确认关闭后显示。
我希望脚本显示信息,然后显示确认以关闭 window。
要确保在 Read-Host
提示之前显示输出,您可以使用:
$res = GetUserName($name)
$res | Format-Table
很可能与 Select-Object
函数的一些延迟有关(也报告 here)。
另一种选择是更改此行
$res = Get-ADUser -Filter $u | select Name, GivenName, Surname
至
$res = Get-ADUser -Filter $u | fl Name, GivenName, Surname
当您使用 Format-List
或 Format-Table
时,没有延迟并且您的输出以正确的顺序显示。
我是 PowerShell 的新手,我试图通过为日常任务(获取用户名、重置密码和解锁帐户)创建脚本来节省点击次数。
问题是:当我启动我的脚本时,Powershell 将执行除 cmdlet 之外的所有内容,并由它们完成。
例如,当我使用第一个选项(获取用户名)时,它会提示我 "Press enter to end the script",然后显示我的 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 启动脚本时,我可以看到我的结果在确认关闭后显示。
我希望脚本显示信息,然后显示确认以关闭 window。
要确保在 Read-Host
提示之前显示输出,您可以使用:
$res = GetUserName($name)
$res | Format-Table
很可能与 Select-Object
函数的一些延迟有关(也报告 here)。
另一种选择是更改此行
$res = Get-ADUser -Filter $u | select Name, GivenName, Surname
至
$res = Get-ADUser -Filter $u | fl Name, GivenName, Surname
当您使用 Format-List
或 Format-Table
时,没有延迟并且您的输出以正确的顺序显示。