Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- import subprocess
- PS_PATH = 'C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe'
- def demo_ps_comm_that_works():
- pipe = subprocess.Popen(
- [PS_PATH, 'Write-Host "Hello World!";'],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE
- )
- stdout_data, stderr_data = pipe.communicate()
- rc = pipe.returncode
- if rc != 0:
- logging.warning(f'Unexpected return code!: {rc}')
- if stderr_data:
- logging.error(f'Error is {stderr_data}')
- try:
- result = stdout_data.decode('cp866')
- except Exception as e:
- logging.critical(f'Couldn\'t decode message!:\n{stdout_data}')
- else:
- return result.strip().split('\n')
- def demo_ps_comm_that_doesnt_work():
- pipe = subprocess.Popen(
- [
- PS_PATH,
- 'Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;',
- 'Write-Host "Hello!";',
- ],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE
- )
- stdout_data, stderr_data = pipe.communicate()
- rc = pipe.returncode
- if rc != 0:
- logging.warning(f'Unexpected return code!: {rc}')
- if stderr_data:
- logging.error(f'Error is {stderr_data}')
- try:
- result = stdout_data.decode('cp866')
- except Exception as e:
- logging.critical(f'Couldn\'t decode message!:\n{stdout_data}')
- else:
- return result.strip().split('\n')
- ####
- # Doesnt work too
- PS_GET_MAILBOXES_CMD = '''Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
- Get-Mailbox -DomainController "{DC}" | ForEach-Object {{
- Write-Host ($_.Name, $_.ForwardingAddress, $_.DeliverToMailboxAndForward, $_.PrimarySmtpAddress) -Separator "{sep}"
- }}
- '''
- ###
- print(demo_ps_comm_that_works())
- print(demo_ps_comm_that_doesnt_work())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement