Ich habe ein vbs-Skript, das Endbenutzern bereitgestellt werden muss, aber es erfordert mehr Rechte als auf ihren gesperrten Arbeitsstationen - insbesondere das Aktualisieren einiger HKLM-Registrierungswerte und das Stoppen / Starten eines Windows-Dienstes. Gibt es eine Möglichkeit, wie ich ihnen die Möglichkeit geben kann, das Skript auszuführen, damit es funktioniert? zB Als anderes Benutzerkonto ausführen, ohne dass Benutzer ein anderes Konto haben müssen, um sich als anzumelden?
Das Skript ist nicht Teil eines Anmeldevorgangs. Benutzer, die ein Softwareprodukt testen, können ihre Computer auf eine andere "Umgebung" richten, damit sie zwischen Test- und Live-Umgebungen wechseln können.
UPDATE: Ich bin in Ordnung, wenn die einzige Lösung darin besteht, etwas außerhalb von VBS zu tun, wäre es gut, nur einige Optionen zu haben.
Antworten:
Nicht ohne das Passwort zu verschlüsseln und in das VBS-Skript aufzunehmen.
Es gibt andere Optionen wie Remote-Scripting, diese Einstellungen sind jedoch möglicherweise deaktiviert, je nachdem, ob Sie Teil einer Domain sind.
Ist das Skript Teil eines Anmeldevorgangs?
bearbeiten:
Ohne weitere Details besteht die mit Abstand beste Lösung, die ich empfehlen kann, darin, ein separates Benutzerkonto zu erstellen und die ACLs der Registrierungsschlüssel zu ändern, damit dieses Konto diese Schlüssel explizit ändern kann. Führen Sie dann das Skript unter diesem Konto aus. Versuch das.
quelle
Eine Möglichkeit, dies zu tun, besteht darin, NSSM oder ein ähnliches Tool zu verwenden, um das Skript als Systemdienst auszuführen. Sie können dann die Sicherheit für den Dienst so konfigurieren, dass der Benutzer ihn starten kann, und möglicherweise ein Skript schreiben, das dies für ihn erledigt.
quelle
Eine programmierorientierte Antwort, aber ich würde einen kleinen .NET Windows-Dienst und eine Clientanwendung schreiben, die sicher über WCF / Remoting kommunizieren können . Der Dienst hört nur die Anforderungen des Clients ab und führt das Skript aus, wenn der Client autorisiert wurde. Der Dienst wird als Konto mit den richtigen Berechtigungen ausgeführt.
BEARBEITEN
In einer ähnlichen Strategie können Sie das Skript als geplante Aufgabe einrichten, die als Benutzer mit der Berechtigung ausgeführt wird, das zu tun, was Sie benötigen. Gewähren Sie Ihren Benutzern dann die Berechtigung zum Ausführen der geplanten Aufgabe. Dazu müssen Sie
%SYSTEMROOT%\System32\Tasks
die NTFS-Berechtigungen für die entsprechende Aufgabendatei festlegen.quelle
Wenn Sie eine geplante Aufgabe einrichten und Zugriff auf den Befehl "schtasks" haben, um die Aufgabe auszuführen, können Sie sie so einrichten, dass sie als beliebiger Benutzer oder sogar als Systemzugriffsrechte ausgeführt wird, ohne Kennwörter offenzulegen oder erhöhte Zugriffsrechte für eine beliebige Aufgabe zuzulassen Befehl außer dem, den Sie eingerichtet haben. Da es etwas komplizierter ist, ist hier ein Link zu meiner Antwort auf eine andere ähnliche Frage / ein ähnliches Problem: superuser.com/a/903881/229612
quelle
So erteilen Sie Berechtigungen zum Ausführen von Skripten auf dem lokalen Computer
Aktivieren Sie im Dialogfeld Eigenschaften von cmd.exe auf der Registerkarte Sicherheit im Feld Berechtigungen für Administratoren das Kontrollkästchen Zulassen für Lesen und Ausführen, und klicken Sie dann auf OK.
quelle
cmd.exe
nur eine Möglichkeit, den Befehlszeilenzugriff zu sperren, und (wahrscheinlich) nicht einmal die häufigste.