Win32_Process.Create -- not starting process
EShames
NethanO at SPdogdiniAM.com
Fri Feb 17 12:12:22 EST 2006
On 2/14/2006 11:25 AM, abcd wrote:
> I am using Python to create a process on another computer. Both
> computers are on the same domain with admin privileges.
>
> On computer B I have a batch script which starts a python script. From
> computer A I am doing the following:
>
> import wmi
> w = wmi.WMI("1.2.3.4")
> p = w.new("Win32_Process")
> pid, retVal = p.Create(CommandLine="C:\\a_script.bat")
> print pid, retVal
>
> The output I get is, 1218 0 ....0 = "Successful Completion"
> .....however the python script that is called from the batch script
> never seems to run or at least only for a split second. Sometimes I
> see python.exe appear in the task manager on computer B for a split
> second then it goes away. So I went to computer B and double clicked
> on the batch script, and sure enough a command opened up and the python
> script was running...and stayed running...no problem. I should
> mention, that sometimes it will execute the batch script and the Python
> script will run and stay running. That has only happened after trying
> to do "p.Create(CommandLine....)" more than once, but not every time I
> try.
>
> Any ideas why its not working for me remotely....or why its random?
> These are win xp machines with no firewalls running.
>
Troubleshooting context issues seems the right track. Consider:
-Start a_script.bat using %windir%\system32\runas.exe ([/noprofile |
/profile] [/env] [/netonly] Play with parameters to set and explore
context issues.
-Use the (well respected) psexec.exe from Sysinternals to confirm
remote execution using another means.
-Also from Sysinternals get and use ProcessExplorer, FileMon, TDIMon
and TCPMon
Other (possibly insulting to mention, please forgive) win batch
troubleshooting steps:
-REM out "@echo off" if any.
-Place a strategic "pause" in the batch to hold the command window open.
-Direct output from commands in the bat to a file "set >
c:\temp\bat_out1.txt" then look at the creator, owner, etc.
Prophylactic measures & things that effect the user context behavior:
-Check "launch folder windows in a seperate process" in
Explorer/Tools/Folder Options/View or you will not be able to run
explorer.exe as an alternate user.
-Uncheck "use simple file sharing" in same as above.
FWIW Getting runas to to fire cmd.exe, then a .bat can be tricky, I use
this to wrap runas, maybe it will help:
<rnas.bat>
:: Wrapper for runas.exe
:: If called with a parameter use it as target, otherwise start cmd.exe
:: !Note: /savecred is is convenient, but not very secure!
:: LAST EDIT EBS 2006-02-10
::@echo off
:: !Change _USER to domain and user to run as!
set _USER=domain\user
if %1! == ! (
%SYSTEMROOT%/system32/runas.exe /savecred /noprofile /user:%_USER%
"cmd.exe cd /D c:\\\_utils\"
goto END
) else (
%SYSTEMROOT%/system32/runas.exe /savecred /user:%_USER% "%~f1"
)
:END
::DIAGNOSTIC
pause
exit
</rnas.bat>
More information about the Python-list
mailing list