Powershell脚本和Windows服务之间通信的最佳方式是什么?

时间:2016-12-07 12:19:34

标签: c# .net wcf powershell

有一个用c#编写的Windows服务。我喜欢在同一台机器上运行Powershell脚本,并能够在这个Windows服务和PS脚本之间交换信息。所以我想知道什么是最好,最简单,最有效的方法? WCF?

2 个答案:

答案 0 :(得分:2)

我建议采用以下方式:

  1. 文件系统
    如果我需要进行简单的读/写操作,我会使用文件系统。通常我写了一些文件。然后从时间附加到文件时间。这种方法最大的问题是锁定机制。
  2. 剪贴板
    如果我需要向剪贴板发送一小部分信息,并且定期间隔的Windows服务读取它,这大多适合于案例。文本的大片段工作缓慢,但是一小段文本都很好。剪贴板的负面方面是与干扰用户将某些内容复制到剪贴板相关的问题。为了解决这个问题,我使用了分离帐户进行服务
  3. WCF
    主要是我已经将此选项用于分布式系统。就个人而言,如果PS和Windows服务在同一台机器上运行,我看不出它的好处。但如果在同一台机器上同时使用它们并没有错。
  4. 插座
    如果我需要快速通过内存快速传递信息,我喜欢这个选项。
  5. Windows事件日志(丑陋的想法,但在某些情况下有用)。
    通常这对于有关错误或某些信息活动的通知很有用。
  6. 数据库(有时它也可以使用)
    如果传递信息有很多格式化,复杂的阅读规则,那么我更喜欢制作一些类,PS可以作为.Net对象重用,并在windows服务中读/写/修改它们。

答案 1 :(得分:0)

从技术上讲,如果两个互通进程都在同一台机器上运行,我会考虑使用命名管道进行通信。