Ho l'esigenza di fare un programma per effettuare la deframmentazione del disco. però devo passargli le credenziali prima una sorta di runas come posso fare?
Ho l'esigenza di fare un programma per effettuare la deframmentazione del disco. però devo passargli le credenziali prima una sorta di runas come posso fare?
La programmazione è una scelta di vita....
La deframmentazione in VB6?
Non mi pare lo strumento adatto ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
e come posso fa?
ho provato questo
funziona...solo se lo provo su un'altra macchina non va...mi da errore 80040154...codice:On Error Resume Next dim WshShell,FSO wscript.echo "Sta per partire il programma per la deframmentazione del disco. Attendere che la deframmentazione sia completata, non utilizzare il PC. Per eventuali problema rivolgersi all'heldpesk." sUser="Administrator" sPass="dsdsdsd"&VBCRLF sCmd="defrag.exe C: -f -v" set WshShell = CreateObject("WScript.Shell") set WshEnv = WshShell.Environment("Process") WinPath = WshEnv("SystemRoot")&"\System32\runas.exe" set FSO = CreateObject("Scripting.FileSystemObject") if FSO.FileExists(winpath) then 'wscript.echo winpath & " " & "verified" else wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " & winpath &"." & VBCRLF & "You must be running Windows 2000 for this script to work." set WshShell=Nothing set WshEnv=Nothing set FSO=Nothing wscript.quit end if rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE) Wscript.Sleep 30 'need to give time for window to open. WshShell.AppActivate(WinPath) 'make sure we grab the right window to send password to WshShell.SendKeys sPass 'send the password to the waiting window. set WshShell=Nothing set WshEnv=Nothing set FSO=Nothing wscript.quit '************************ '* Usage Subroutine * '************************ Sub Usage() On Error Resume Next msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" & VBCRLF & VBCRLF & "You should use the full path where necessary and put long file names or commands" & VBCRLF & "with parameters in quotes" & VBCRLF & VBCRLF &"For example:" & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog " & CHR(34) &"e:\program files\scripts\admin.vbs 1stParameter 2ndParameter" & CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript vbrunas.vbs /?|-? will display this message." wscript.echo msg wscript.quit end sub
La programmazione è una scelta di vita....
Scusa ... secondo me non ha senso scrivere un programma (o uno script, come quello che mostri) per fare partire la deframmentazione di un disco! Questa e' una operazione piu' "sistemistica" da farsi in particolari condizioni da parte dell'amministratore di sistema direttamente al PC ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
purtroppo ho l'esigenze di far deframmentare il disco agli utenti di dominio.....che non hanno questo privilegioOriginariamente inviato da Pietro84
e come posso fa?
ho provato questo
funziona...solo se lo provo su un'altra macchina non va...mi da errore 80040154...codice:On Error Resume Next dim WshShell,FSO wscript.echo "Sta per partire il programma per la deframmentazione del disco. Attendere che la deframmentazione sia completata, non utilizzare il PC. Per eventuali problema rivolgersi all'heldpesk." sUser="Administrator" sPass="dsdsdsd"&VBCRLF sCmd="defrag.exe C: -f -v" set WshShell = CreateObject("WScript.Shell") set WshEnv = WshShell.Environment("Process") WinPath = WshEnv("SystemRoot")&"\System32\runas.exe" set FSO = CreateObject("Scripting.FileSystemObject") if FSO.FileExists(winpath) then 'wscript.echo winpath & " " & "verified" else wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " & winpath &"." & VBCRLF & "You must be running Windows 2000 for this script to work." set WshShell=Nothing set WshEnv=Nothing set FSO=Nothing wscript.quit end if rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE) Wscript.Sleep 30 'need to give time for window to open. WshShell.AppActivate(WinPath) 'make sure we grab the right window to send password to WshShell.SendKeys sPass 'send the password to the waiting window. set WshShell=Nothing set WshEnv=Nothing set FSO=Nothing wscript.quit '************************ '* Usage Subroutine * '************************ Sub Usage() On Error Resume Next msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" & VBCRLF & VBCRLF & "You should use the full path where necessary and put long file names or commands" & VBCRLF & "with parameters in quotes" & VBCRLF & VBCRLF &"For example:" & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog " & CHR(34) &"e:\program files\scripts\admin.vbs 1stParameter 2ndParameter" & CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript vbrunas.vbs /?|-? will display this message." wscript.echo msg wscript.quit end sub
La programmazione è una scelta di vita....
C'e' qualcosa di sbagliato in questo ragionamento ...Originariamente inviato da Pietro84
purtroppo ho l'esigenze di far deframmentare il disco agli utenti di dominio.....che non hanno questo privilegio
Intanto, se esiste un dominio Active Directory allora hai il controllo dei PC e puoi operare come amministratore in remoto (con Remote Desktop) per fare la deframmentazione ...
In secondo luogo, la deframmentazione e' una attivita' che va fatta una volta ogni tanto (ogni 6 mesi va bene ... c'e' chi la fa ogni anno ...) e quindi non vedo perche' farla fare addirittura agli utenti ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
O.OOriginariamente inviato da oregon
C'e' qualcosa di sbagliato in questo ragionamento ...
Intanto, se esiste un dominio Active Directory allora hai il controllo dei PC e puoi operare come amministratore in remoto (con Remote Desktop) per fare la deframmentazione ...
In secondo luogo, la deframmentazione e' una attivita' che va fatta una volta ogni tanto (ogni 6 mesi va bene ... c'e' chi la fa ogni anno ...) e quindi non vedo perche' farla fare addirittura agli utenti ...
forse non ci siamo capiti lol
non posso andare in remoto su 1500 macchine e fare la deframmentazione!!!!!!!
devo far in modo che gli utenti lo faccino quando vogliono loro!!!
quello script va bene solo che se lo porto su un'altro pc non va e da quell'errore....come posso risolvere quell'errore? c'è qualche dll che devo copiare sui pc etc?
La programmazione è una scelta di vita....
Anch'io gestisco reti con un numero elevato di PC e non mi sognerei mai di dare all'utente il compito di deframmentare i dischi quando vuole lui ...
Tanto meno gli consegnerei degli script con la password di administrator leggibile ...
Quell'errore, probabilmente dipende dal fatto che nei PC non e' installato il componente Windows Scripting Host ... dovrai scaricarlo da MS e installarlo prima di far girare lo script in ogni PC ...
A questo punto, lo potrebbero fare gli stessi tuoi utenti ...
No MP tecnici (non rispondo nemmeno!), usa il forum.
-.-Originariamente inviato da oregon
Anch'io gestisco reti con un numero elevato di PC e non mi sognerei mai di dare all'utente il compito di deframmentare i dischi quando vuole lui ...
Tanto meno gli consegnerei degli script con la password di administrator leggibile ...
Quell'errore, probabilmente dipende dal fatto che nei PC non e' installato il componente Windows Scripting Host ... dovrai scaricarlo da MS e installarlo prima di far girare lo script in ogni PC ...
A questo punto, lo potrebbero fare gli stessi tuoi utenti ...
è il cliente che mi chiesto questa cosa...cosa ci posso fare io?
e cmq naturalmente non gli lascio il vbs no..lo trasformo in exe....
tnx per l'info
edit: cmq è installato quel componente....tantè che se lo lascio vbs funziona senza problemi....mentre le trasformo in exe mi da quell'errore
La programmazione è una scelta di vita....