我想编写一个代码来使用“ 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();
}
}