Start-Process всегда выдает ошибку "не удается найти позиционный параметр, принимающий аргумент "$null""

на сервере 2012 R2 я монтирую носитель SQLServer как диск (работает), но каждый раз, когда я запускаю установку с помощью "Start-Process", ошибка "позиционный параметр не может быть найден, который принимает аргумент" $null "" всегда генерируется, даже если мои пути и argumebnts хороши (установка завершается успешно).

$sqlreturn = Start-Process -FilePath "$DVDDriveLetter`Setup.exe" -ArgumentList "$ArgumentList" -Wait

установка работает, у меня есть длинный список аргументов, как коллекция, которая также распознается правильно (все paramenters работают для SQL). Я ей напишу аргументы, использующие цикл foreach с Write-Verbose и eveything распознается параметром Start-Process "- ArgumentList" правильно:

Write-Verbose "--- Full Argument List:"
foreach ($arg in $ArgumentList) {Write-Verbose $arg}

VERBOSE: --- Full Argument List:
VERBOSE: /ACTION=Install
VERBOSE: /IACCEPTSQLSERVERLICENSETERMS
VERBOSE: /X86=False
VERBOSE: /TCPENABLED=1
VERBOSE: /SQLSYSADMINACCOUNTS=DOMAINserver_admins DOMAINSQLServer_admins
VERBOSE: /QS
VERBOSE: /FEATURES=SQLENGINE,REPLICATION,FULLTEXT,BIDS,CONN,IS,BC,SDK,BOL,SSMS,ADV_SSMS,SNAC_SDK
VERBOSE: /INSTANCENAME=MSSQLSERVER
VERBOSE: /INSTANCEID=MSSQLSERVER
VERBOSE: /SQLBACKUPDIR=C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackup
VERBOSE: /SQLUSERDBDIR=C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLData
VERBOSE: /SQLUSERDBLOGDIR=C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLData
VERBOSE: /SQLTEMPDBDIR=C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLData
VERBOSE: /SQLTEMPDBLOGDIR=C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLData
VERBOSE: /SQLSVCACCOUNT=DOMAINMSAAccount1$
VERBOSE: /AGTSVCACCOUNT=DOMAINMSAAccount2$
VERBOSE: /ISSVCACCOUNT=DOMAINMSAAccount3$
VERBOSE: /SAPWD=System.Security.SecureString
VERBOSE: /SECURITYMODE=SQL

Так почему же я всегда получаю ошибку "позиционный параметр не может быть найден, который принимает аргумент "$null" с Start-Process, даже если установка работает правильно?

24
задан Mark
21.02.2023 7:23 Количество просмотров материала 3013
Распечатать страницу

1 ответ

оказывается, проблема была в отсутствующем параметре " - PassThru "по умолчанию командлет Start-Process не генерирует выходных данных - поэтому ошибка заключалась в попытке присвоить null переменной" $sqlreturn"

1
отвечен Mark 2023-02-22 15:11

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх