Как указал ADyson, вызов PowerShellInstance.Invoke();
является синхронным.
Однако, если вы хотите узнать, была ли команда успешной или нет, вы можете использовать HadErrors
и при необходимости прочитайте поток ошибок:
if (!PowerShellInstance.HadErrors)
{
MessageBox.Show("the process was successfully completed");
}
else
{
string[] errors = PowerShellInstance.Streams.Error.Select(x => x.ToString()).ToArray();
// Show error to user or log them...
}