0

我想编写一个代码来使用“ Powershell ”并通过“ CredSSP ”身份验证创建一个新会话,

但是当我监控这个控制台的内存使用情况时,我发现有些东西没有处理......所以内存使用量增长缓慢。

在我使用ANTS检查内存泄漏后,我发现关键点是“ credssp ”,但我找不到处理它或清理这个对象的方法。

有人有好主意吗?多谢。

PS。我的环境是:.Net 3.5、PowerShell 2.0、VS 2010、Windows 7 sp1

class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i < 10000; i++)
        {
            using (PowerShell powershell = PowerShell.Create())
            {
                powershell.AddScript("$account = \"xxx\"");
                powershell.AddScript("$pwd = \"xxx\"");
                powershell.AddScript("$credential = New-Object System.Management.Automation.PsCredential($account, (ConvertTo-SecureString $pwd -AsPlainText -Force))");
                powershell.AddScript("$sessions = New-PSSession -ComputerName localhost -Credential $credential -Authentication Credssp");
                powershell.AddScript("Remove-PSSession -session $sessions");
                ICollection<PSObject> results = powershell.Invoke();
                Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().WorkingSet64);
            }
        }
        Console.Read();
    }
}
4

0 回答 0