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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.