BackstoryВысота в PowerShell
У меня есть скрипт, который вызывает Enable-Mailbox сразу после создания новой учетной записи пользователя, но проблема в том, мне нужно передать администратора учетные данные вместе с командой для того, чтобы Работа. Сценарий был создан с помощью графического интерфейса для облегчения процесса ежедневных задач администрирования и будет использоваться людьми, которые ничего не знают о PowerShell или даже о том, как сменить каталог на сценарий. Из-за этого я хочу, чтобы он запускался при двойном щелчке в проводнике и запрашивал пользователя один раз для учетных данных администратора. После того, как учетные данные вводятся они будут храниться в файле в том же каталоге, используя следующий код:
Try {
$credsFile = Import-Clixml "credentials"
$credsFile.Password = $credsFile.Password | ConvertTo-SecureString
$adminCreds = New-Object System.Management.Automation.PsCredential($credsFile.Username, $credsFile.Password)
}
Catch {
# This means the credentials file does not exist
$adminCreds = Get-Credential
$adminCreds = $adminCreds | Select-Object *
$adminCreds.password = $adminCreds.Password | ConvertFrom-SecureString
$adminCreds | Export-Clixml "credentials"
$adminCreds.password = $adminCreds.Password | ConvertTo-SecureString
}
Попытки
Поскольку Enable-Mailbox не имеет -Credential параметр для меня Чтобы перейти к нему, я пытался найти способ запуска скрипта в качестве администратора с самого начала с сохраненными учетными данными. Я создал сценарий, который пытается вызвать основной скрипт в повышенном состоянии.
Первый я попытался было:
Start-Process -File "$PSHOME\powershell.exe" -ArgumentList "-NoExit","-Command Scripts\MainScript.ps1" -Credential $adminCreds -Wait
но он просто запрашивает учетные данные (каждый раз) и не загружает скрипт.
Далее я попробовал:
start-process powershell -verb runas -argument "scripts\MainConsole.ps1"
Это загружает скрипт просто найти внутри ISE, но не загружает его, когда в два раза щелкнул в Проводнике.
Я также рассмотрел Invoke-Command и Invoke-Expression, чтобы попытаться запустить команду Enable-Mailbox в качестве администратора, но не удалось. Кто-нибудь знает, как запустить сценарий в качестве администратора с самого начала или хотя бы передать учетные данные в Enable-Mailbox и другие параметры, подобные этому?