gpt4 book ai didi

powershell - 两个单独的 Powershell 进程之间的流水线

转载 作者:行者123 更新时间:2023-12-02 22:17:49 37 4
gpt4 key购买 nike

假设我有两个 PowerShell 程序正在运行:Producer.ps1Consumer.ps1 .

有什么办法可以在两者之间建立客户端-服务器关系.ps1我有文件?

具体来说,Producer.ps1输出 PSObject包含登录信息。有什么办法可以建立一个监听器和命名管道 在两个对象之间传递这个 PSObject来自 Producer.ps1直接进入Consumer.ps1 ?

( 注意 : 这两个文件不能合并,因为它们每个都需要以不同的 Windows 用户身份运行。我知道一种可能的通信解决方案是将 PSObject 写入一个 text/xml 文件,然后有客户端读取并删除文件,但我宁愿不这样做,因为它会公开凭据。我愿意接受您提出的任何建议)

最佳答案

我发现此链接描述了如何执行您的请求:
https://gbegerow.wordpress.com/2012/04/09/interprocess-communication-in-powershell/

我对其进行了测试,并且能够在两个单独的 Powershell session 之间传递数据。

服务器端:

$pipe=new-object System.IO.Pipes.NamedPipeServerStream("\\.\pipe\Wulf");
'Created server side of "\\.\pipe\Wulf"'
$pipe.WaitForConnection();

$sr = new-object System.IO.StreamReader($pipe);
while (($cmd= $sr.ReadLine()) -ne 'exit')
{
$cmd
};

$sr.Dispose();
$pipe.Dispose();

客户端:
$pipe = new-object System.IO.Pipes.NamedPipeClientStream("\\.\pipe\Wulf");
$pipe.Connect();

$sw = new-object System.IO.StreamWriter($pipe);
$sw.WriteLine("Go");
$sw.WriteLine("start abc 123");
$sw.WriteLine('exit');

$sw.Dispose();
$pipe.Dispose();

关于powershell - 两个单独的 Powershell 进程之间的流水线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056955/

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