私のPowerShellスクリプトでは、コマンドレットを呼び出しています(「Connect-Database」と言う)。コマンドレットに追加のパラメータが必要な場合は、ユーザーにこれらの値を入力するように指示します(たとえば、「Connect-Database」はレジストリから資格情報を取得できないため、Powershellコンソールで「Username」「パスワード」を要求し、値)。Powershell - Powershellスクリプトで非対話形式でcmdletを呼び出す方法は?
Powershellコマンドレットのコードを調べました。 "CommandInvocationIntrinsics"を使用して、 "NewScriptBlock"を使用して "CommandInvocationIntrinsics"の "Invoke"メソッドを使用してユーザーを確認することがわかりました。
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
}