首页 > 解决方案 > Powershell.Create 在调试时返回 null

问题描述

在运行下面的代码时,我在 Powershell.create 上收到如下错误,以前有没有人看到过这个错误,我安装了 Micosoft.Powershell.Sdk。怎么了??我的 powershell 方法中也没有 InvokeAsync 方法吗?这是为什么

代码:

public async Task<string> RunScript( string contentScript, Dictionary<string, EntityProperty> parameters)
        {
            List<string> parameterList = new List<string>();
            foreach( var item in parameters )
            {
                parameterList.Add( item.Value.ToString() );
            }
            using( PowerShell ps = PowerShell.Create() )
            {
                ps.AddScript( contentScript );
                ps.AddParameters( parameters );
                
                IAsyncResult async = ps.BeginInvoke();
                StringBuilder stringBuilder = new StringBuilder();
                foreach( PSObject result in ps.EndInvoke( async ) )
                {
                    stringBuilder.AppendLine( result.ToString() );
                }
                return stringBuilder.ToString();
            }
        }

错误:

System.NullReferenceException:“对象引用未设置为对象的实例。” 5__4 为空。

标签: c#powershell

解决方案


我通过安装 Microsoft.PowerShell.Sdk(7.0.0) 和 Microsft.WSMan.Runtime(7.0.0) 版本来修复它


推荐阅读