我想使用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')