Нет ошибок при выполнении кода vbs на удаленном компьютере [закрыто]

Я надеялся, что этот код vbs выполнит oShell.запустите методы на удаленном компьютере. Это, кажется, не так, но нет никакой ошибки показано, когда этот сценарий выполняется.

on error resume next

dim oShell, strComputer, intProcessID

strComputer = InputBox("IP or Host Name:", "DELETER - serdaruzun@outlook.com")

set oShell = WScript.CreateObject("Wscript.shell") & strComputer

oShell.run "cmd.exe /C rd %PC%Users*.* /s /q", null, null, intProcessID
oShell.run "cmd.exe /C rd %PC%Users*.* /s /q", null, null, intProcessID
oShell.run "cmd.exe /C rd %PC%Users*.* /s /q", null, null, intProcessID
set oShell = nothing

Как правильно выполнять эти команды на удаленном компьютере?

30
задан rene
14.03.2023 18:38 Количество просмотров материала 3538
Распечатать страницу

1 ответ

прежде всего-если бы вы удалили "on error resume next", вы бы сразу увидели эту ошибку.

далее, я бы рекомендовал вам попробовать использовать метод удаления папки на удаленном компьютере вместо запуска cmd.

после этого нельзя запустить cmd.exe против C:\ и как-то сделать его работать против удаленного компьютера без использования вы запускаете VBS с psexec или аналогичный и целевой удаленный компьютер.

Я думаю, что это ближе к тому, что вы после:

'First, we get the host name
strComputerName = InputBox ("Enter Hostname or IP to delete from")

'Next, we check the user actually entered a name or IP - you missed this!
if len(strComputerName) < 1 then
    WScript.Echo "No Computer Name Entered - Quitting"
    WScript.Quit
end if

'next, we check it exists - you missed this bit too!  no point in trying to remove folders from a non existant PC
If Reachable(strComputerName) Then
    DeleteAFolder("\" & strComputerName & "\c$\users\me\desktop\test")
    DeleteAFolder("\" & strComputerName & "\C$\folder\folder2")
Else 
    WScript.Echo "Computer is Unreachable! - Quitting!"
End If


'This function is the one called to check if the computer is reachable in line 11!
Function Reachable(strComputerName)
    Dim wmiQuery, objWMIService, objPing, objStatus
    wmiQuery = "Select * From Win32_PingStatus Where Address = '" & strComputerName & "'"
    Set objWMIService = GetObject("winmgmts:\.\root\cimv2")
    Set objPing = objWMIService.ExecQuery(wmiQuery)
    For Each objStatus in objPing
        If IsNull(objStatus.StatusCode) Or objStatus.Statuscode<>0 Then
            Reachable = False 'if computer is unreacable, return false
        Else
            Reachable = True 'if computer is reachable, return true
        End If
    Next
End Function

'This function takes the name of the folders (lines 12 and 13) and deletes them
Sub DeleteAFolder(filespec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   'True in the line below includes read only folders
   fso.DeleteFolder(filespec, true)
End Sub

просто короткая заметка.. если это не работает - его, вероятно, разрешения вещь, но у меня нет намерения расширять этот сценарий - так что вы по своему усмотрению отсюда.

7
отвечен Fazer87 2023-03-16 02:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх