Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell在单个哈希(C#)中包含多个表达式_C#_Powershell_Dns_Hashtable - Fatal编程技术网

Powershell在单个哈希(C#)中包含多个表达式

Powershell在单个哈希(C#)中包含多个表达式,c#,powershell,dns,hashtable,C#,Powershell,Dns,Hashtable,我正在尝试检索一些DNS记录数据,并希望返回主机名及其IPv4地址。在做了一些研究之后,我发现为了获得IPv4地址,我需要做一个计算表达式: ps.AddParameter("Property", new Hashtable { {"Name", "RecordData"}, {"Expression", ScriptBlock.Create("$_.RecordData.IPv4Addr

我正在尝试检索一些DNS记录数据,并希望返回主机名及其IPv4地址。在做了一些研究之后,我发现为了获得IPv4地址,我需要做一个计算表达式:

ps.AddParameter("Property",              
        new Hashtable
        {
            {"Name", "RecordData"},
            {"Expression", ScriptBlock.Create("$_.RecordData.IPv4Address")}
        });
ps.AddParameter("Property",
    new Hashtable
    {
        {"Name", "HostName"},
        {"Expression", ScriptBlock.Create("$_.hostname,")},
    });
我还可以通过以下两种方式获取主机名:

ps.AddParameter("Property", "HostName");
或类似于计算表达式:

ps.AddParameter("Property",              
        new Hashtable
        {
            {"Name", "RecordData"},
            {"Expression", ScriptBlock.Create("$_.RecordData.IPv4Address")}
        });
ps.AddParameter("Property",
    new Hashtable
    {
        {"Name", "HostName"},
        {"Expression", ScriptBlock.Create("$_.hostname,")},
    });
我的问题是,我一辈子都搞不清楚如何同时将这两种方法结合起来。我强烈希望不要执行单独的Select Object命令,这样可以确保主机名和IP引用相同的确切DNS记录

此外,我尝试连续执行这些操作,并收到错误:

Cannot bind parameter because parameter 'Property' is specified more than once. To provide multiple values to parameters that can accept multiple values, use the array syntax. For example, "-parameter value1,value2,value3"

接二连三地做这些事就相当于

... |Select-Object -Property {Name="RecordData";Expression={$_.RecordData.IPv4Address)} -Property {Name="HostName";Expression={$_.HostName}}
这就是为什么你会看到你得到的错误

您需要提供一个哈希表数组作为参数值:

ps.AddParameter("Property", new object[] {
    new Hashtable
    {
        {"Name", "RecordData"},
        {"Expression", ScriptBlock.Create("$_.RecordData.IPv4Address")}
    },
    new Hashtable
    {
        {"Name", "HostName"},
        {"Expression", ScriptBlock.Create("$_.HostName")}
    }

});

接二连三地做这些事就相当于

... |Select-Object -Property {Name="RecordData";Expression={$_.RecordData.IPv4Address)} -Property {Name="HostName";Expression={$_.HostName}}
这就是为什么你会看到你得到的错误

您需要提供一个哈希表数组作为参数值:

ps.AddParameter("Property", new object[] {
    new Hashtable
    {
        {"Name", "RecordData"},
        {"Expression", ScriptBlock.Create("$_.RecordData.IPv4Address")}
    },
    new Hashtable
    {
        {"Name", "HostName"},
        {"Expression", ScriptBlock.Create("$_.HostName")}
    }

});