Я сейчас пытаюсь вызвать второй сценарий в одном из моих сценариев PowerShell, используя Invoke-Expression. В настоящее время выдает ошибку:
"Набор параметров не может быть разрешен с использованием указанных именованных параметров."
Досадно, что он отлично работает для одного коммутатора (будучи -ServerDriveReport), но не работает для другого.
Первый скрипт (называемый DriveReport.ps1) выглядит так:
[cmdletbinding()]
Param(
[Parameter(ParameterSetName="ServerDriveReport")]
[switch]$ServerDriveReport,
[Parameter(ParameterSetName="VMDriveReport")]
[switch]$VMDriveReport)
If($ServerDriveReport){
Invoke-Expression "& 'C:\Scripts\Drive Report\EmailDriveReport.ps1' -ServerDriveReport"}
If($VMDriveReport){
Invoke-Expression "& 'C:\Scripts\Drive Report\EmailDriveReport.ps1' -VMDriveReport"}
Сценарий «EmailDriveReport.ps1» выглядит так:
[cmdletbinding()]
Param(
[Parameter(ParameterSetName="ServerDriveReport")]
[switch]$ServerDriveReport,
[Parameter(ParameterSetName="VMDriveReport")]
[switch]$VMDriveReport)
If($ServerDriveReport){
# Send an email containing the server drive report}
If($VMDriveReport){
# Send an email contining the VM drive report}
При запуске «DriveReport.ps1 -ServerDriveReport» все работает как положено. Но при запуске «DriveReport.ps1 -VMDriveReport» я получаю вышеупомянутое сообщение об ошибке.
Кто-нибудь видел это раньше?
Любая помощь будет принята с благодарностью!