Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    creazione script per avviare batch da remoto

    ciao a tutti!
    mi presento, mi chiamo carmine e sono un novellino del forum..anche di programmazione, se vogliamo, perciò mi sono appena iscritto per richiedere un aiuto da chi ne sa più di me.

    vi spiego il mio problema: ho circa 600 server dai quali vorrei cancellare alcuni profili creati in locale dagli utenti di dominio.
    ho creato un piccolo batch con il comando rmdir per eleminare solo le cartelle che mi interessano, e fin qui tutto ok. Volendo posso fare lo stesso su un server remoto ottenendo lo stesso esito.
    Il mio problema nasce nel momento in cui volessi effettuare questa operazione su un elenco di server di un file txt, e su ognuno di essi lanciare il batch.
    Premesso che non ho alcuna conoscenza in materia, ho subito pensato ad uno script ad hoc che svolgesse tale operazione. Il punto è che credo di aver recuperato un po' di roba utile dalla rete, ma non conosco il comando per far avviare un determinato file sulla lista.. spero di essere stato abbastanza chiaro.

    Grazie a tutti in anticipo!
    Ciao!

  2. #2
    magari può essere utile ciò che ho trovato finora:

    Set fso = CreateObject("Scripting.FileSystemObject")
    SourceFolder = "C:\DirTemp"

    ‘ Apri il file contenente l’elenco dei server
    Set LeggiFile = fso.OpenTextFile("C:\DirTemp\elencoserver2.txt")

    ‘ Apri o crea il file di log per gli eventuali errori
    If (fso.fileexists("C:\\DirTemp\Check.log")) then
    Set LogFile = fso.OpenTextFile("C:\Check.log",8)
    Else
    Set LogFile = fso.CreateTextFile("C:\Check.Log", TRUE)
    End If

    ‘ Leggi il file dei server sino alla fine e per ognuno avvia remdir.bat
    Do while Not LeggiFile.AtEndOfStream

    ServerCorrente = LeggiFile.ReadLine

    ' Se vuoi, mostra a video il server corrente
    ' wscript.echo ServerCorrente

    DestinationFolder = "\\" & ServerCorrente & "\C$\"

    CREDO SIA QUI CHE DOVREI ANDARE A SCRIVERCI IL COMANDO....

    ‘ Se incontriamo degli errori, aggiorniamo il log
    If Err.Number <> 0 then
    LogFile.WriteLine (ServerCorrente & " Errore!")
    Err.clear
    End if

    Loop

    Set fso = Nothing





    fso.CopyFolder SourceFolder, DestinationFolder, true

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Ma che linguaggio di programmazione stai usando?
    In C è facile creare un processo che ti avvia un file batch,ma non ho capito bene cosa vuoi fare.
    Devi avviare lo script batch dal tuo computer o devi interrogare il server prima?

  4. #4
    no, forse mi sono spiegato male.
    ho la necessità di cancellare determinate cartelle da una lista di server.

    Per quanto riguarda la cancellazione della cartella, il comando l'ho racchiuso in un batch.
    Inoltre, mi sono procurato un elenco txt di tutti i server sui quali effettuare questa operazione.

    mi manca la materia prima... ovvero devo trovare un sistema per far sì che il file batch mi svolga il comando per tutti i server elencati nel file..

    forse così è un po' più chiaro?

    Ciao e grazie!

  5. #5
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Per esempio in C è facile leggere da file,ma come accedere al server non saprei proprio.
    In C è possibile leggere da file e avviare un processo.Ovviamente il processo sarà il file .bat,tu hai l' elenco txt di tutti i server sui quali effettuare l' operazione.
    Dovresti leggere il file,ma poi per "effetturare l' operazione" bisognerebbe creare un altro file batch ed avviarlo.Non so se ci sono metodi migliori.
    Aspetto le risposte dei più esperti,comunque se il tuo problema è solo leggere il file,creare il realativo file batch ed avviarlo non c'è problema.

  6. #6
    mi faresti un piccolo esempio, per favore?

    grazie mille!

  7. #7
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Ecco un esempio di comando per avviare un file batch:
    codice:
    #include <windows.h>
    int main(int argc, char **argv)
    {
        STARTUPINFO si={0};
        PROCESS_INFORMATION pi;
        CreateProcess("C:\\cartella\\file.bat", 0, 0, 0, 0, 0, 0, 0,&si,&pi);
        return 0;
    }
    Se non usi windows non saprei come fare.
    Comunque STARTUPINFO e PROCESS_INFORMATION se cambiati dovrebbero influire su come il processo viene creato e trattato,io se avvio un solo processo alla volta non ho problemi,per sicurezza ti conviene farlo uno alla volta per non rischiare di andare in overflow.

  8. #8
    mmh...altre soluzioni?

  9. #9
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Se mi dici come vuoi fare forse una soluzione mi viene in mente,non saprei proprio.
    In questo modo apre il file batch e lo esegue,cos'è che vorresti fare invece?

  10. #10
    eh...na parola

    scusami ma purtroppo non masticando molto la materia non saprei come spiegarmi se non dicendoti materialmente cosa voglio ottenere come risultato finale, come d'altronde ho già fatto.

    praticamente, ho una lista di pc.
    di questi pc voglio cancellare determinati profili locali (non tutti), ed ho specificato l'operazione da eseguire mediante il comando rmdir, da dos. FIN QUI VA BENISSIMO.
    dopodichè, la mia esigenza è quella di fare la stessa identica operazione per tutti i pc inclusi in un elenco.
    Per fare ciò, suppongo sia necessario uno script, per evitare di collegarmi su ogni pc e lanciare il file batch (anche perchè non avrebbe più senso, una volta che mi sono collegato posso fare anche a meno del batch.. )

    spero sia stato un po' più chiaro, ora.

    Ti ringrazio ancora!
    Ciao
    Carmine

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.