import datetime
from subprocess import PIPE
def abccompanycloudcmdrun(abccompanycloudcmd):
abccompanycloudcmdrun_output = subprocess.run(["powershell", "-Command", abccompanycloudcmd], stdout=PIPE, stderr=PIPE,shell=True)
return abccompanycloudcmdrun_output
if __name__ == '__main__':
abccompanycloudcmd_success = r"abccompanycloudcmd_success_" + datetime.datetime.today().strftime('%Y-%m-%d') + ".log"
abccompanycloudcmd_error = r"abccompanycloudcmd_error_" + datetime.datetime.today().strftime('%Y-%m-%d') + ".log"
abccompanycloudcmd = r**'Get-ADDomainController -Filter * -Server $((Get-ADDomainController -DomainName abccompanycloud.com -Discover).hostname) ` | ft ComputerObjectDN'**
abccompanycloudcmdrun_output = abccompanycloudcmdrun(abccompanycloudcmd)
if abccompanycloudcmdrun_output.returncode != 0:
print("abccompanycloudcmdrun - An error occured: %s", abccompanycloudcmdrun_output.stderr.decode("utf-8"), file = open(abccompanycloudcmd_error, 'a', encoding='utf-8', errors='ignore'))
else:
print("abccompanycloudcmdrun generated successfully!", file = open(abccompanycloudcmd_success, 'a', encoding='utf-8', errors='ignore'))
print(abccompanycloudcmdrun_output.stdout.decode("utf-8"), file = open(abccompanycloudcmd_success, 'a', encoding='utf-8', errors='ignore'))
The above works fine without generating any errors in Windows. But doesnt work in Linux. It throws a message : An error occured: %s b'-Command: powershell: command not found\n'
Question is How to pass the below powershell command in python script? Get-ADDomainController -Filter * -Server $((Get-ADDomainController -DomainName abccompanycloud.com -Discover).hostname) ` | ft ComputerObjectDN