Windows 7上不执行C#Powershell代码

时间:2019-03-25 19:48:08

标签: c# powershell

通过我的C#应用​​程序执行的Powershell代码在Windows 10上可以完美执行,但甚至无法在Windows 7上运行。它也没有超越Process.WaitForExit()

我尝试在代码内部使用Powershell(System.Management.Automation)本身。 我还设置了“ set-executionpolicy remotesigned”,它使用Powershell脚本(.ps1)运行,但是在C#代码中使用它时,如下所示。

        Process p = new Process();
        p.StartInfo.FileName = "powershell";
        p.StartInfo.RedirectStandardInput = true;
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.CreateNoWindow = true;
        p.Start();

        using (StreamWriter sw = p.StandardInput)
        {
            if (sw.BaseStream.CanWrite)
            {
                string pdfName = fileName.Substring(0, fileName.Length - new FileInfo(fileName).Extension.Length) + ".pdf";

                sw.WriteLine("$Exl = New-Object -ComObject Excel.Application");
                sw.WriteLine("$Doc = $Exl.Workbooks.Open(\"" + fileName + "\")");
                sw.WriteLine("$Doc.ExportAsFixedFormat([Microsoft.Office.Interop.Excel.XlFixedFormatType]::xlTypePDF, \"" + pdfName +"\")");
                sw.WriteLine("$Doc.Close($False)");
                sw.WriteLine("[gc]::Collect()");
                sw.WriteLine("[gc]::WaitForPendingFinalizers()");
                sw.WriteLine("$Exl.Quit()");
                sw.WriteLine("[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Exl)");
                sw.WriteLine("Remove-Variable Exl");
            }
        }
        p.WaitForExit();

在Windows 10上,脚本成功将Excel文件转换为pdf,但是在Windows 7上-脚本甚至没有打开Excel来转换文件。

0 个答案:

没有答案