'PSDataStreams'对象没有属性'decode'



我想使用python在远程windows服务器上执行powershell命令。我使用pypsrp连接到远程windows服务器,然后执行client.execute_ps(f'Set-ExecutionPolicy RemoteSigned')

得到错误-'PSDataStreams' object has no attribute 'decode'

我能够连接和复制文件从本地机器到远程窗口服务器客户端。复制(source_path dest_path)

我正在使用pypsrp模块连接到远程windows服务器-

try:
with Client(server=self.ip, username=self.username, password=psw, auth='ntlm') as client:
stdout, stderr, rc = client.execute_ps(f'Set-ExecutionPolicy RemoteSigned') 
error = stderr.decode('utf-8').strip("n")
output = stdout.decode('utf-8').strip("n")
except Exception as e:
print(e)

得到错误-'PSDataStreams' object has no attribute 'decode'

当我打印strout时,它是空的。Stderr是-stderr ---- <pypsrp.powershell.PSDataStreams object at 0x0000014170402AF0>

如何解码stderr的值,或者在远程窗口服务器上执行powershell命令的正确代码是什么

execute_ps不支持传统的命令行,请使用execute_cmd代替。这是在execute_ps注释中写的。

因为这在运行空间中运行,传统的概念,如标准输出,现在,rc已经不再重要了。而是有一个输出,错误/详细/调试流,以及一个布尔值,指示是否脚本执行遇到错误。如果你想要传统的Stdout/stderr/rc,使用execute_cmd代替。

你可以得到像这样的传统字符串

stdout, stderr, rc = client.execute_cmd('powershell Set-ExecutionPolicy RemoteSigned')

相关内容

  • 没有找到相关文章

最新更新