Como implementar o uso da declaração em powershell?

Como posso escrever usando o escudo de poder ?

Este é um exemplo de trabalho em C#

using (var conn = new SqlConnection(connString))
{
    Console.WriteLine("InUsing");
}

preciso do mesmo em Powershell (não funciona):

Using-Object ($conn = New-Object System.Data.SqlClient.SqlConnection($connString)) {

    Write-Warning -Message 'In Using';          
}

funciona sem utilizar:

$conn = New-Object System.Data.SqlClient.SqlConnection($connString)
Obrigado pela ajuda.

Author: Raskolnikov, 2017-02-08

1 answers

Aqui está uma solução:

function Using-Object
{
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [AllowEmptyString()]
        [AllowEmptyCollection()]
        [AllowNull()]
        [Object]
        $InputObject,

        [Parameter(Mandatory = $true)]
        [scriptblock]
        $ScriptBlock
    )

    try
    {
        . $ScriptBlock
    }
    finally
    {
        if ($null -ne $InputObject -and $InputObject -is [System.IDisposable])
        {
            $InputObject.Dispose()
        }
    }
}
Encontrei esta solução aqui e para mim funcionou. Mas é basicamente uma implementação de uma disposição num bloco final.
 16
Author: Bert Levrau, 2017-02-08 09:36:06