在PowerShell中可以使用多种方式来创建自定义类型,在很少之前我有写过一些以最通用的方式来创建PowerShell类型。
今天我们要说下如何用C#代码的方式来创建对象,虽然以这种方式创建对象很少会被用到,但是如果对于设置一些对象类型来说,这种方式或许能更加深入以及灵活些,让我们一起来看下,下面的例子:
$CScode = @"
public class MyCustomObject
{
public string OSVersion{get; set;}
public string Model {get; set;}
}
"@
Add-Type -TypeDefinition $CScode -Language CSharpVersion3
$OperatingSystem = Get-WmiObject -Class win32_OperatingSystem -ComputerName localhost
$ComputerSystem = Get-WmiObject -Class win32_ComputerName -ComputerName localhost
$props = @{OSVersion = $OperatingSystem.version
Model = $ComputerSystem.model }
$Objs = New-Object -TypeName MyCustomObject -Property $props
$Objs
其实很简单,我们使用here string内部定义了一个以C#代码为基础的类,名为MyCustomObject,这个类型里面包含了一些我们自己定义的属性,全都是以string字符串为主。
然后我们使用add-type cmdlet来加载