不幸的是,Python脚本旨在使用提升的凭据运行
这是script1,它使用提升的凭据调用script2
import os
import sys, subprocess, socket, string
import wmi, win32api, win32con
import win32com.shell.shell as sh
ASADMIN = '/user:DOMAIN\username'
os.system('"runas /user:DOMAIN\username "D:/Python27/python.exe script2.py sender-ip=10.10.10.10 < password.txt""')
sys.exit(0)
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ''.join([ASADMIN] + ['D:\Python27\python.exe',script] + sys.argv[1:])
sh.ShellExecuteEx(lpVerb='runas',lpFile=sys.executable,lpParameters=params)
sys.exit(0)
这是script2
导入sys,subprocess,socket,string import wmi,win32api,win32con
对于[item.strip(&#39; sender-ip =&#39;)中的args,对于sys.argv [1:]中的项目:
userIP = args
userloggedon = ""
# perform system lookup of IP address
userIP = "\\\\" + userIP
pst = subprocess.Popen(
["D:\pstools\psloggedon.exe", "-l", "-x", userIP],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE
)
out, error = pst.communicate()
userLoggedOn = out.split('\n')[1].strip()
print 'userId={}'.format(userLoggedOn)
f = open('D:\SymantecDLP\Protect\plugins\output.txt', 'w')
f.write('userId={}'.format(userLoggedOn))
未创建output.txt
有什么想法吗?
修改
我也读过这个帖子,How to supply password to runas command when executing it from java
但无论我尝试什么,我都会收到错误
Attempting to start c:\test.bat as user "DOMAIN\username" ...
RUNAS ERROR: Unable to run - c:\test.bat
1326: Logon failure: unknown user name or bad password.
答案 0 :(得分:1)
让我们当时谈谈你的问题。
<强> 1。它仍然提示我输入密码
在第
行os.system('"runas /user:DOMAIN\username "D:/Python27/python.exe script2.py sender-ip=10.10.10.10 < password.txt""')
您正在为script2
提供密码。 runas
命令仍然需要密码,因为它试图以另一个用户身份运行程序。
<强> 2。当我输入正确的密码时,它无法正常工作
嗯......代码确实清楚了。但是,在提问时你必须更加具体。现在看一下您的代码,我可以看到您正在尝试在远程计算机上执行ping
。
远程机器可能有防火墙吗?
您是否尝试过手动执行ping
?
编辑:未创建output.txt文件,并且运行脚本不会告诉您有关写入文件的错误,显然您的代码正在点击其中一个{{1行。
答案 1 :(得分:0)
您可以使用PsExec https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
您可以提供用户名和密码,执行不需要提升为admin:
psexec [\ computer [,computer2 [,...] | @file]] \ [ - u user [-p psswd] [-ns] [ - r servicename] [ - h] [ - l] [ - s | -e] [ - x] [ -i [session]] [ - c [-f | -v]] [ - w directory] [ - d] [ - ] [ - an,n,...] cmd [arguments]
使用-e开关提供与Runas / netonly相同的结果:
-e不加载指定帐户的个人资料。