é possibile creare ed utilizzare oggetti tipo .NET

sintassi:

carica libreria

si carica la libreria using in memoria e si creano gli oggetti
[reflection.assembly]::LoadWithPartialName("libreria using")
New-Object oggetto.NET


diretto

si usa direttamente la libreria e si esegue il metodo asssociato
[libreria using]::metodo(argomenti)


esempio: script crea una form con un bottone per chiudere il form
[reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
$form = New-Object Windows.Forms.Form
$form.Text = "La mia prima form"
$button = New-Object Windows.Forms.Button
$button.text="Clicca qui!"
$button.Dock="fill"
$button.add_click({$form.close()})
$form.controls.add($button)
$form.Add_Shown({$form.Activate()})
$form.ShowDialog()



esempio: uso di System.IO.File per utilizzare il metodo Exists e vericficare se c'é un file
if ([System.IO.File]::Exists("C:\test\file.txt"))
{

[System.Console]::WriteLine("exists");
}
else
{
[System.Console]::WriteLine("does not exist");
}