Просмотрите текущий объект пользовательского интерфейса хоста, чтобы запросить у пользователя учетные данные, например:
PSCredential cred = this.Host.UI.PromptForCredential("Enter username/password",
"", "", "");
Однако, если вы создаете командлет и идете по этому пути, а не создаете параметр Credential, тогда пользователь не сможет предоставить учетные данные в автоматическом режиме (т. Е. Через параметр параметра Credential).
Кстати, если ваша программа знает учетные данные и вы не хотите запрашивать конечного пользователя, вы можете создать новый PSCredential напрямую, например ::
var password = new SecureString();
Array.ForEach("opensesame".ToCharArray(), password.AppendChar);
var cred = new PSCredential("john", password);
Однако я бы не стал жестко кодировать пароль в EXE. Я бы использовал DPAPI или что-то в этом роде.