Daten aus einer anderen Excel-Datei abrufen

0

Ich habe eine Excel-Tabelle mit einer Liste von Benutzernamen

Jeder Benutzer hat den folgenden Code. Ich muss nur einen Weg finden, First.Last durch die Namen in der Excel-Tabelle zu ersetzen. Es gibt über 800 Namen und ich kann dies manuell tun. Es ist einfach sehr langweilig.

echo Y | takeown /F "F:\Users\First.Last" /R
icacls "F:\USERS\First.Last" /reset /T /C /Q
icacls "F:\USERS\First.Last" /inheritance:r /T /C /Q
icacls "F:\USERS\First.Last" /grant:r system:(oi)(ci)f /t /c /Q
icacls "F:\USERS\First.Last" /grant:r "Site admins":(oi)(ci)f /t /c /Q
icacls "F:\USERS\First.Last" /grant:r "Domain admins":(oi)(ci)f /t /c /Q
icacls "F:\USERS\First.Last" /grant:r "CREATOR OWNER":(OI)(CI)F /T /C /Q
icacls "F:\USERS\First.Last" /grant:r First.Last:(oi)(ci)f /t /c /Q
icacls "F:\USERS\First.Last" /remove:g "everyone" /T /C /Q
icacls "F:\USERS\First.Last" /remove:g "administrators" /T /C /Q
icacls "F:\USERS\First.Last" /remove Everyone /T /C /Q
icacls "F:\USERS\First.Last" /remove:g "COURTS\administrator.account" /T /C /Q
icacls "F:\USERS\First.Last" /remove "COURTS\administrator.account" /T /C /Q
icacls "F:\Users\First.Last" /setowner "COURTS\First.Last" /c /t /Q
icacls "F:\USERS\First.Last" /inheritance:e /T /C /Q
net share First.Last$ /delete
icacls "F:\USERS\First.Last" /remove:g "system" /T /C /Q
icacls "F:\USERS\First.Last" /remove "system" /T /C /Q
icacls "F:\USERS\First.Last" /remove:g "Site Admins" /T /C /Q
icacls "F:\USERS\First.Last" /remove "Site Admins" /T /C /Q
icacls "F:\USERS\First.Last" /remove:g "Domain Admins" /T /C /Q
icacls "F:\USERS\First.Last" /remove "Domain Admins" /T /C /Q
icacls "F:\USERS\First.Last" /remove:g "Creator Owner" /T /C /Q
icacls "F:\USERS\First.Last" /remove "Creator Owner" /T /C /Q
Software macht Spaß
quelle
Ich schlage vor, die Daten in eine Textdatei (z. B. CSV oder tabulatorgetrennt) zu schreiben und dann daraus zu arbeiten. PS Da Ihre Frage das Ausführen von Windows-Befehlen umfasst, sollten Sie Ihre Frage wahrscheinlich mit der von Ihnen verwendeten Windows-Version (z. B. [Windows-7]) kennzeichnen. Welche Excel-Version verwenden Sie?
G-Man

Antworten:

1

Wenn Sie eine Namensliste von Excel benötigen, kopieren Sie die Namensliste und fügen Sie sie in den Editor ein. Speichern Sie sie als names.txt ( siehe unten).

tue so als ob der Inhalt von names.txt wäre

tim x
bob y
pete z
joe a

Gehe zum Merkzettel und füge diesen ein: (speichere ihn als doit.bat )

for /f "delims=@" %i in (names.txt) do @echo call perms.bat "%i"

Diese Zeile ruft die perms.bat für jeden in names.txt gefundenen Benutzernamen auf

Wenn Sie alle Benutzer in f: \ users *. * Und forgo excel all together ausführen möchten, gehen Sie wie folgt vor: Anstelle der obigen for-Anweisung. Gehe zum Merkzettel und füge diesen ein in:

for /D %i in ("f:\users\*.*") do call perms.bat "%~ni"

Speichern Sie es und nennen Sie es doit.bat

Öffne den Notizblock und platziere deinen Code leicht verändert. Speichern und benennen Sie es perms.bat

echo Y | takeown /F "F:\Users\%1" /R
icacls "F:\USERS\%1" /reset /T /C /Q
icacls "F:\USERS\%1" /inheritance:r /T /C /Q
icacls "F:\USERS\%1" /grant:r system:(oi)(ci)f /t /c /Q
icacls "F:\USERS\%1" /grant:r "Site admins":(oi)(ci)f /t /c /Q
icacls "F:\USERS\%1" /grant:r "Domain admins":(oi)(ci)f /t /c /Q
icacls "F:\USERS\%1" /grant:r "CREATOR OWNER":(OI)(CI)F /T /C /Q
icacls "F:\USERS\%1" /grant:r %1:(oi)(ci)f /t /c /Q
icacls "F:\USERS\%1" /remove:g "everyone" /T /C /Q
icacls "F:\USERS\%1" /remove:g "administrators" /T /C /Q
icacls "F:\USERS\%1" /remove Everyone /T /C /Q
icacls "F:\USERS\%1" /remove:g "COURTS\administrator.account" /T /C /Q
icacls "F:\USERS\%1" /remove "COURTS\administrator.account" /T /C /Q
icacls "F:\Users\%1" /setowner "COURTS\%1" /c /t /Q
icacls "F:\USERS\%1" /inheritance:e /T /C /Q
net share %1$ /delete
icacls "F:\USERS\%1" /remove:g "system" /T /C /Q
icacls "F:\USERS\%1" /remove "system" /T /C /Q
icacls "F:\USERS\%1" /remove:g "Site Admins" /T /C /Q
icacls "F:\USERS\%1" /remove "Site Admins" /T /C /Q
icacls "F:\USERS\%1" /remove:g "Domain Admins" /T /C /Q
icacls "F:\USERS\%1" /remove "Domain Admins" /T /C /Q
icacls "F:\USERS\%1" /remove:g "Creator Owner" /T /C /Q
icacls "F:\USERS\%1" /remove "Creator Owner" /T /C /Q

gehe zur administrativen Eingabeaufforderung.

Wenn Sie dies in Echtzeit ausführen möchten, gehen Sie wie folgt vor:

Typ doit.bat

Wenn Sie die Befehle in einer Datei speichern möchten:

for /f "delims=@" %i in (perms.bat) do echo echo %i ^>^>all.txt  >>txt.bat

Backup perms.bat sonst wo. Benennen Sie dann txt.bat in perms.bat um und führen Sie doit.bat aus. Wenn Sie dann doit.bat ausführen, erscheinen alle Befehle im Klartext in all.txt . Sie können die Ergebnisse dann kopieren und bei Bedarf in Excel einfügen.

kybernard
quelle