Я делаю скрипт в Python 3.7, используя интерпретатор Spyder, который использует модуль подпроцесса для сопоставления удаленного сетевого диска с компьютерами, а затем проверяет, существует ли файл на этом диске. Например, я сопоставляю диск на моем компьютере как «S: \», но он соответствует «C: \» на их. Он проверяет, существует ли файл "nircmd.exe" в их C: \. Когда я запускаю свой код, все, что я получаю, это:
[-] Could not connect to 10.98.80.142
[-] Could not connect to 10.98.80.147
Когда я печатаю: b''
Когда я печатаю ошибку: 'System error 85 has occurred.\r\n\r\nThe local device name is already in use.\r\n\r\n'
Теперь я понимаю, что это должно означать, что у меня уже есть диск подключен, но я нет.
from subprocess import Popen, PIPE
from os import path
def detectNircmd(computers):
NIRCMD = "Windows\\System32\\nircmd.exe"
valids = []
invalids = []
for computer in computers:
try:
p = Popen(['net', 'use', 'S:', '\\\%s\\c$' % computer],stderr=PIPE,stdin=PIPE,stdout=PIPE)
out, err = p.communicate()
if 'success' in out:
if path.isfile("S:\\%s" % NIRCMD):
valids.append(computer)
p = Popen(['net', 'use', 'S:', '/delete'],stderr=PIPE,stdin=PIPE,stdout=PIPE)
else:
invalids.append(computer)
p = Popen(['net', 'use', 'S:', '/delete'],stderr=PIPE,stdin=PIPE,stdout=PIPE)
else:
invalids.append(computer)
p = Popen(['net', 'use', 'S:', '/delete'],stderr=PIPE,stdin=PIPE,stdout=PIPE)
except:
print("[-] Could not connect to %s" % computer)
print(valids, invalids)
tests = ['10.98.80.142', '10.98.80.147']
detectNircmd(tests)