Please run the script as System User
The procedure does the following for you,
by the following parameters -
ps_content=r'''
PLEASE PASTE YOUR POWERSHELL SCRIPT HERE
'''
Also Define file_name i.e
file_name='last_boot_time.ps1'
By the way, you can change the content and file name if you want to run another PowerShell script.
ps_content=r'''function Get-Uptime { Param( $ComputerName = $env:COMPUTERNAME ) if ($lastBootUpTime = (Get-WmiObject win32_operatingsystem -ComputerName $ComputerName| select @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}).LastBootUpTime) { (Get-Date) - $lastBootUpTime } else { Write-Error "Unable to retrieve WMI Object win32_operatingsystem from $ComputerName" } } Get-Uptime''' file_name='last_boot_time.ps1'
ps_content=r'''
function Get-Uptime {
Param(
$ComputerName = $env:COMPUTERNAME)
if ($lastBootUpTime = (Get-WmiObject win32_operatingsystem -ComputerName $ComputerName| select @{LABEL='LastBootUpTime';EXPRESSION={$_.ConverttoDateTime($_.lastbootuptime)}}).LastBootUpTime) {
(Get-Date) - $lastBootUpTime
} else {
Write-Error "Unable to retrieve WMI Object win32_operatingsystem from $ComputerName"}}
Get-Uptime
'''
import os
def ecmd(command):
import ctypes
from subprocess import PIPE, Popen
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
with disable_file_system_redirection():
obj = Popen(command, shell = True, stdout = PIPE, stderr = PIPE)
out, err = obj.communicate()
ret=obj.returncode
if ret==0:
if out:
return out.strip()
else:
return ret
else:
if err:
return err.strip()
else:
return ret
file_name='powershell_file.ps1'
file_path=os.path.join(os.environ['TEMP'], file_name)
with open(file_path, 'wb') as wr:
wr.write(ps_content)
ecmd('powershell "Set-ExecutionPolicy RemoteSigned"')
print ecmd('powershell "%s"'%file_path)
os.remove(file_path)
Comments