gpt4 book ai didi

c# - 应该关闭远程 Powershell session 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:49 25 4
gpt4 key购买 nike

我正在编写一个 C# 服务器应用程序,其中包括调用 Exchange 服务器上的多个远程 Powershell cmdlet。这不是我的应用程序的主要事件,但偶尔会调用这些功能。当他们这样做时,我会执行以下操作:

  1. 根据我的配置初始化 WSManConnectionInfo 对象。
  2. 使用 RunspaceFactory.CreateRunspace 创建一个新的运行空间。
  3. 打开运行空间。
  4. 将运行空间分配给新的 PowerShell 对象。
  5. 调用我的命令。
  6. 处理 PowerShellRunspace 对象。

现在,真的需要为每个电话都执行所有这些步骤吗?假设可能每分钟、每小时甚至每天一次调用,我并不担心性能。但我正在寻找一个整洁的解决方案,想知道创建一个 Runspace 对象并一次又一次地调用它是否会更优雅。

重用 Runspace 对象并保持打开状态是否存在问题?我是否应该让该对象保持事件状态,但在需要时对其调用 Close()Open()?或者我不应该依赖它随着时间的推移保持稳定(这里的“随着时间的推移”是服务器应用程序的生命周期,可能(并且应该)是几个月。

最佳答案

我注意到远程 session ,如果您让它们保持打开状态并且不打算再次使用它们,可能会导致问题。一次可以在服务器上打开的远程 shell 的数量通常是有限制的。如果你自己不费心清理,你很容易达到这个限制,你将无法打开另一个远程 shell。

我还要提到,根据远程 shell 的最大大小(默认为 50MB,但可以增加,当我运行安装程序时,我通常需要显着增加),您可能会不必要地占用内存。你提到你并不担心性能,所以这对你来说可能不是问题。

话虽如此,我会尽量保持整洁。没有理由不正确清理自己。

关于c# - 应该关闭远程 Powershell session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com