IOError:[Errno 13]从Python NamedPipe读取时权限被拒绝

时间:2014-01-22 11:46:28

标签: python named-pipes psexec

我有一个用Powershell编写的NamedPipe服务器和一个用Python编写的NamedPipe客户端。以下是我的NamedPipe客户端:

def namedpipeClient():
    print "Inside NamedPipeClient"
    time.sleep(2)
    f = open(r'\\x.x.x.x\pipe\testpipe', 'r+b', 0)
    i = 1
    n = struct.unpack('I', f.read(4))[0]    # Read str length
    s = f.read(n)                           # Read str
    f.seek(0)                               # Important!!!
    f.close()
    print 'Read:', s
    if (s is None):
        return True
    else:
        return False

我在一台机器上启动C#中的NamedPipeServer,而在另一台机器上,我将通过批处理文件运行NamedPipeClient。以下是我的批处理文件runTest.bat

c:
cd \Python27
.\python D:\LoadTesting\SikuliNPClient.py

因此,以这种方式运行可以毫无问题地执行所有操作。

现在,如果我尝试在同一台计算机上执行相同的批处理文件,但是从我通过psexec启动NamedPipeServer的计算机远程执行,psexec \\$remoteMachine -i 0 -d Powershell D:\LoadTesting\runTest.bat批处理文件将被执行,但是{{1}它会抛出以下错误。

f = open(r'\\x.x.x.x\pipe\testpipe', 'r+b', 0)

我已登录两台计算机,只有具有管理员权限的相同用户。 请帮我弄清楚我的问题。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,从模式中移除+就像魅力一样。在您的情况下,而不是r+b尝试rb。 希望它有所帮助。