У меня такой же код.Как передать новое изменение среды при создании нового процесса через WMI ($ ai.EnvironmentVariables =?)
Мой пример не работает, я выдаю неверный параметр (21)
$procClass=[WMICLass]"win32_processstartup"
$ai = $procClass.createinstance()
$ai.ShowWindow = 1
$ai.EnvironmentVariables = @('name', 'testvar')
$ai.X = 0
$ai.Y = 0
$wmiclass = [wmiclass]"win32_process"
$wmiMethodParameters = $wmiclass.psbase.GetMethodParameters("Create")
$wmiMethodParameters.CommandLine = "test "
$wmiMethodParameters.CurrentDirectory = "."
$wmiMethodParameters.ProcessStartupInformation = $ai
$pInfoCreate = $wmiclass.psbase.InvokeMethod("Create",$wmiMethodParameters,$null);
$tempId = $pInfoCreate.ProcessId
$pInfoObject = get-WmiObject -query "select * from win32_process where processid=$tempId"