Попытка написать сценарий .exe с параметрами запуска в Powershell

avatar
JHPXIL1
9 августа 2021 в 00:04
92
1
1

Я новичок в PowerShell и пытаюсь создать сценарий, который удалит Dell Data Protection с параметрами, специфичными для этого .exe-файла.

Вот что у меня есть за вычетом фактических кредитов, которые я бы использовал:

Start-Process -Filepath C:\Programfiles (x86)\Dell\Dell Data Protection\DataSecurityUninstaller.exe" -argumentlist "CMG_DECRYPT=1 FORENSIC_ADMIN="ExampleUser" FORENSIC_PWD="Passw0rd" NOREBOOT /silent"

Я получаю:

A positional parameter cannot be found that accepts argument "ExampleUser" FORENSIC_PWD="Passw0rd" NOREBOOT

Когда я помещаю это в CMD, все работает. Наверное, я не знаю, как правильно обрабатывать параметры запуска.

Источник
Santiago Squarzon
9 августа 2021 в 00:24
0

Посмотрите на пример 7 командлета, каждый аргумент разделен запятыми, что означает, что список аргументов должен быть массивом. docs.microsoft.com/en-us/powershell/module/…

Ответы (1)

avatar
Santiago Squarzon
9 августа 2021 в 00:33
2

Должен работать любой из них:

Start-Process -Filepath 'C:\Programfiles (x86)\Dell\Dell Data Protection\DataSecurityUninstaller.exe' -ArgumentList 'CMG_DECRYPT=1 FORENSIC_ADMIN="ExampleUser" FORENSIC_PWD="Passw0rd" NOREBOOT /silent'
Start-Process -Filepath 'C:\Programfiles (x86)\Dell\Dell Data Protection\DataSecurityUninstaller.exe' -ArgumentList 'CMG_DECRYPT=1', 'FORENSIC_ADMIN="ExampleUser"', 'FORENSIC_PWD="Passw0rd"', 'NOREBOOT', '/silent'

Вы открываете " здесь "CMG, а затем закрываете здесь _ADMIN=", что приводит к тому, что командлет думает, что вы вводите ExampleUser... в качестве ввода другого параметра, отсюда и ошибка.

Кроме того, вы можете просто запустить программу удаления из текущего сеанса, и Start-Process в этом случае не понадобится. Думаю, это будет выглядеть так:

& 'C:\Programfiles (x86)\Dell\Dell Data Protection\DataSecurityUninstaller.exe' CMG_DECRYPT=1 FORENSIC_ADMIN="ExampleUser" FORENSIC_PWD="Passw0rd" NOREBOOT /silent
Abraham Zinala
9 августа 2021 в 00:42
0

Интересно, что первый пример работает

Santiago Squarzon
9 августа 2021 в 00:48
1

@AbrahamZinala, я не уверен на 100%, что это сработает, но если что-то подобное работает (2 аргумента в 1 строке) Start-Process powershell -ArgumentList '-NoLogo -WindowStyle Maximized', я не понимаю, почему другой не работает.

Abraham Zinala
9 августа 2021 в 00:49
0

Имеет смысл для меня.