В моем скрипте powershell я вызываю командлет (скажем, «Connect-Database»).Если командлету нужен дополнительный параметр, он предлагает пользователю ввести эти значения (скажем, «Connect-Database» не может получить учетные данные из реестра, поэтому он запрашивает «Имя пользователя» «пароль» на консоли Powershell и ожидает, что пользователь предоставит это значение).значение).
Я посмотрел код командлета Powershell.Я обнаружил, что он использует «CommandInvocationIntrinsics» для запроса пользователя (используя «NewScriptBlock», а затем «Invoke» метод «CommandInvocationIntrinsics»).
Поскольку я вызываю эти командлеты из сценария Powershell, я хочу, чтобывсякий раз, когда такая подсказка произошла, она будет подавлена, и будет выдано исключение.
Код выглядит примерно так -
try
{
$db = Connect-Database <databasename>
#if username / password is prompted, it should be converted into error. But it should not be shown in powershell console.
if($Error.Count > 0)
{
throw $Error[0]
}
}
catch
{
#do something
}