Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

"Esegui come" su cartelle ed oggetti della shell

Questo articolino viene partorito alle 22:30 di una giornata buia e tempestosa, ahh ahh. Una settimana f mi sono messo in testa di voler estendere il concetto di "esegui come", che ci consente di eseguire programmi con credenziali superiori all' utenza loggata, a tutte le cartelle di disco ed a tutti gli oggetti della shell ("Risorse del computer", "Risorse di rete, "Stampanti e fax", etc...). Mi sono detto: sarebbe bello all'interno di una sessione aperta con una utenza limitata, aprire ad esempio la cartella di sistema (c:\windows\system32) come amministratore; oppure viceversa, supponiamo che dobbiamo settare i diritti di accesso su una cartella e sulle sottocartelle da parte di un utente: posso aprire una cartella di base come amministratore, settare le ACL e quindi verificare subito se l' impostazione valida aprendo la cartella di base con l' utenza in questione; analogamente voglio poter aprire "Risorse del computer" e "Risorse di rete" con qualsiasi altra utenza all' interno della mia sessione di lavoro; stesso discorso per le "Stampanti e fax". Ho creato un file in vbscript ed un file .reg di registro. Ho testato il tutto su Windows XP (Home e Professional) e funziona, dovrebbe funzionare anche sul 2003 server dove i vantaggi sarebbero superiori, fatemi sapere al riguardo; su Windows 2000 non ci sono riuscito (forse dipende da come implementato explorer.exe). Ed ora passiamo alle dediche, ahh ahh:

A Cosimo del newsgroup Microsoft su Windows server per la ventiquattrore di analisi a Pasqua e dintorni

Ed ora diventiamo un p seri:

Salva il codice qui sotto come "apri_come.vbs" e copia il file in C:\windows\system32

Dim StdIn, StdOut, WshShell
Set StdIn = WScript.StdIn
Set StdOut = WScript.StdOut
Set WshShell = CreateObject("WScript.Shell")

'StdOut.WriteLine WScript.Arguments(0)
'StdOut.WriteLine WScript.Arguments(1)

StdOut.WriteLine "Utenza:"
str = StdIn.ReadLine
'StdOut.WriteLine "runas /profile /user:" & str & " " & chr(34) & "explorer /root, " & WScript.Arguments(0) & ", " & WScript.Arguments(1) & chr(34)

if WScript.Arguments.Count = 1 then
if Left(WScript.Arguments(0), 3) = "::{" then
WshShell.Run "runas /profile /user:" & str & " " & chr(34) & "explorer /root, " & WScript.Arguments(0) & chr(34), 1, TRUE
else
WshShell.Run "runas /profile /user:" & str & " " & WScript.Arguments(0), 1, TRUE
end if
else
WshShell.Run "runas /profile /user:" & str & " " & chr(34) & "explorer /root, " & WScript.Arguments(0) & ", " & WScript.Arguments(1) & chr(34), 1, TRUE
end if

Set StdIn = Nothing
Set StdOut = Nothing
Set WshShell = Nothing

Salva il testo qui sotto come "apri_come.reg" e fai doppio click sul file per applicare al registro

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Apri come]

[HKEY_CLASSES_ROOT\Directory\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs \"%I\" \"%L\""

[HKEY_CLASSES_ROOT\Drive\shell\Apri come]

[HKEY_CLASSES_ROOT\Drive\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs \"%I\" \"%L\""

;Risorse del computer
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Apri come]

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"

;Stampanti e fax
[HKEY_CLASSES_ROOT\CLSID\{2227A280-3AEA-1069-A2DE-08002B30309D}\shell\Apri come]

[HKEY_CLASSES_ROOT\CLSID\{2227A280-3AEA-1069-A2DE-08002B30309D}\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs ::{2227A280-3AEA-1069-A2DE-08002B30309D}"

;Risorse di rete
[HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\Apri come]

[HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs ::{208D2C60-3AEA-1069-A2D7-08002B30309D}"

;Connessioni di rete
[HKEY_CLASSES_ROOT\CLSID\{7007ACC7-3202-11D1-AAD2-00805FC1270E}\shell\Apri come]

[HKEY_CLASSES_ROOT\CLSID\{7007ACC7-3202-11D1-AAD2-00805FC1270E}\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs ::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"

;Pannello di controllo
[HKEY_CLASSES_ROOT\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}\shell\Apri come]

[HKEY_CLASSES_ROOT\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}\shell\Apri come\command]
@="cscript c:\\windows\\system32\\apri_come.vbs control.exe"
 

A questo punto il men contestuale di cartelle, drive ed oggetti della shell (quelli specificati nel .reg) avr una voce in pi: "Apri come"; con questa voce si aprono gli oggetti in questione con credenziali alternative. E' importante osservare che se si volesse cambiare il nome del .vbs oppure la cartella in cui viene salvato, basta cambiare il nome nel .reg.


 

 

 
 
 
Your Ad Here