it-swarm.com.de

Ermöglichen Sie dem Standardbenutzer, das Programm als lokaler Administrator ohne Eingabeaufforderung auszuführen

Ich arbeite in einer Umgebung, in der lokale Administratorrechte für Benutzer nicht zulässig sind. Überhaupt. Dies ist sehr schön, kann aber auch schmerzhaft sein, wenn Mitarbeiter, die über lokale Administratorrechte verfügen müssen, um ein Programm auszuführen oder Software zu installieren, für die erhöhte Berechtigungen erforderlich sind, auch wenn sie nur die Installation durchführen. Es gibt einen Benutzer in der Buchhaltung, der eine monatliche DVD von einem unserer Anbieter erhält, die dringend benötigte Berichte enthält. Um die Berichte anzuzeigen und ein Backup zu erstellen, muss sie die ausführbare Datei auf der DVD ausführen. Die ausführbare Datei erfordert Administratorrechte für die Installation. Seit ich hier bin, wird jeden Monat, wenn ich die EXE-Datei ausführe, die Benutzerkontensteuerung angezeigt und ich gebe die dringend benötigten Informationen zum Ausführen des Installationsprogramms an.

Wenn dies ein einmaliges Programm wäre, würde ich das Gimmick des Microsoft Application Compatibility Toolkit verwenden, um die Benutzerkontensteuerung zu umgehen http://www.techrepublic.com/blog/windows-and-office/selectively-disable-uac-for-your) -trusted-Vista-applications / Da dies jedoch eine neue DVD ist, die ihr jeden Monat zugesandt wird, benötige ich ein Tool, das sie selbst für diesen Vorgang verwenden kann.

Ich habe mich bei Server Fault umgesehen und auch Google-Fu ausgeführt, aber nichts Nützliches gefunden. Ich könnte einer von einigen in einer einzigartigen Situation sein.

Ich möchte Poweshell verwenden, um das Werkzeug herzustellen. Idealerweise möchte ich, dass sie die DVD einlegen und dann das Poweshell-Tool (ohne Zweifel über ihre Desktop-Verknüpfung) starten kann, das das DVD-Laufwerk betrachtet und die Datei setup.exe als lokaler Administrator ohne die UAC-Eingabeaufforderung ausführt. ohne dass sie irgendwelche Ausweise vorlegen muss.

Was ich bisher habe, ist im Moment etwas zusammengesetzter Müll. Ich bin kein Powershell Jedi. Ich bin ein Poweshell Padawan. Ich habe die Hälfte von dem, was ich brauche. Ich muss das Passwort noch speichern, damit es nicht jedes Mal definiert und eingegeben werden muss, wenn sie das Skript ausführt. Ich möchte, dass dies so reibungslos und mit möglichst wenigen Klicks erfolgt.

Für die Creds entscheide ich mich für das lokale Administratorkonto, da sich dieses Passwort nicht ändert. Das lokale Administratorkonto erledigt den Job. Ich muss diese Kontoinformationen auf dem Computer speichern, damit Powershell das Konto jedes Mal abrufen kann, wenn sie das Skript ausführt. Dies muss also eine verschlüsselte Datei in einer Pfadvariablen sein.

# define path to store password and input password 
$path = "C:\Users\User\Password folder"
# get the encrypted local admin password from user path
$encpwd = Get-Content $path\admin.bin
# convert admin file to secure string 
$passwd = ConvertTo-SecureString $encpwd
# define local admin credential 
$cred = new-object System.Management.Automation.PSCredential 'computer name\local admin',$passwd
# go to DVD drive launch setup.exe as local admin with no user input required
Set-Location D:\
Start-Process PowerShell -Cred $cred -ArgumentList .\setup.exe

Ich bekomme vielleicht ein paar Abstimmungen dafür, aber ich weiß, dass ich irgendwo einen Text über die Eingabe des Passworts "-AsSecureString" "in eine vorhandene Variable oder eine neue Variable definieren und in" "Read-Host" einfügen muss. Ich muss das Passwort in den Prozess eingeben. Ich habe ein paar Spots ausprobiert. Gedanken? Weisheit? Unmöglich?

Windows 7 Pro Powershell v4

8
Art.Vandelay05

Ich habe einen Weg gefunden, um das Ziel mit Powershell zu erreichen. Zuerst muss ein Skript auf dem Benutzercomputer ausgeführt werden (nur einmal), um ein verschlüsseltes Kennwort zu erstellen und es dann in einer Datei zu speichern. Hinweis: Die gespeicherte Kennwortdatei ist keine txt-Datei, die das lokale Administratorkennwort im Klartext enthält. Dies ist die Ausgabe des Cmdlets ConvertFrom-SecureString.

Zuerst das Skript, um das Passwort einzugeben und in einer Datei zu speichern. Dies muss nur einmal auf dem Zielcomputer ausgeführt werden.

# Enter encrypted password once and store to file; define variables 
$path = "C:\Folder\Folder\"
$passwd = Read-Host "enter desired password" -AsSecureString
$encpwd = ConvertFrom-SecureString $passwd
$encpwd > $path\filename.bin

Nun das Skript, das der Benutzer ausführen wird, um das Programm als lokaler Administrator von der DVD zu starten. Sie führt das Skript über die Desktop-Verknüpfung aus, nachdem sie die DVD in das Laufwerk eingelegt hat. Nach dem Start des Skripts läuft das Programm perfekt und sie kann dies tun, ohne mich oder den anderen Administrator um Hilfe zu bitten (was sie liebt).

# define path to store password and input password 
$path = "C:\folder\folder"
# get the encrypted password from the path
$encpwd = Get-Content $path\filename.bin
# convert file to secure string 
$passwd = ConvertTo-SecureString $encpwd
# define needed credential 
$cred = new-object System.Management.Automation.PSCredential 'computer name\account name',$passwd
# go to DVD drive launch setup.exe as user with privileges to launch the program with no user input required
Set-Location D:\
Start-Process PowerShell -Cred $cred -ArgumentList .\setup.exe

Dieser Powershell.org-Artikel war maßgeblich daran beteiligt, meine Antwort zu erhalten http://powershell.org/wp/2013/11/24/saving-passwords-and-preventing-other-processes-from-decrypting-them/

1
Art.Vandelay05

Als Administrator ausführen, ohne Administrator zu sein

Ermöglichen Sie einem Benutzer ohne Administratorrechte, ein Programm als lokales Administratorkonto auszuführen, jedoch ohne Eingabeaufforderung

Nachfolgend finden Sie Anweisungen zum Einrichten einer Problemumgehung, damit eine Anwendung als ein anderes Konto ausgeführt wird, das ein lokaler Administrator ist. Das Konto, das den Prozess ausführt, muss jedoch kein lokaler Administrator auf dem PC sein.


Die Windows-Problemumgehung (siehe alle folgenden Hinweise)

Beispiele

  1. Benutzernamen erstellen (Domain oder lokal): ProxyRunAsLocalAdmin

  2. Passwort erstellen (Domain oder lokal): <SomeComplexPassword>

Notizen

  • Dieses Konto wird als local admin Auf PCs eingerichtet, auf denen etwas mit Administratorrechten ausgeführt werden muss, ohne dem Endbenutzer, der es ausführt (ausführen), lokale Administratorrechte zu erteilen.

  • Dies ist ein letzter Ausweg für Dinge, die für Nicht-Administratoren auf den lokalen Computern nicht funktionieren, auf denen ihr Konto (der Endbenutzer und/oder eine Gruppe) explizit registry und file system Angegeben wird Objektzugriff funktioniert nicht.

Sicherheit

  • Diese Informationen dürfen nur von Domänenadministratoren bereitgestellt werden, d. H. Nicht mit dem Endbenutzer teilen.

Erstellen einer Verknüpfung mit den RUNAS (dies könnte D:\Setup.exe Sein)

Shortcut Properties Beispiel

TARGET Feldbeispiel (unten):

%systemroot%\system32\runas.exe /user:domain\ProxyRunAsLocalAdmin /savecred "C:\Program Files\BlueStacks\HD-StartLauncher.exe"

START IN Beispiel: "C:\Program Files\BlueStacks"

(enter image description here

WICHTIG : Die doppelten Anführungszeichen um das Start In : Feld kann erforderlich sein, unabhängig davon, ob der Pfad Leerzeichen enthält oder nicht.


Zusätzliche Setup-Hinweise

  • Zu diesem Zweck können Sie ein Domänenbenutzerkonto oder ein lokales PC-Benutzerkonto erstellen und dem lokalen Computer lokale Administratorberechtigungen erteilen, wenn eine solche Lösung benötigt wird.
  • Sie müssen die Verknüpfung mit " RUNAS usw. " ausführen, wenn Sie als Benutzer am PC angemeldet sind, der diesen Prozess ohne ausführen muss selbst ein lokaler Administrator sein. Wenn Sie dies tun, müssen Sie den Berechtigungsnachweis eingeben und ihn EINMAL zwischenspeichern. Er wird jedoch nicht bei jeder nachfolgenden Ausführung des Prozesses mit [~ # ~] benötigt. runas [~ # ~] und /SAVECRED erneut von diesem GLEICHEN Benutzerkontoprofil aus.
  • Dieses Kennwort für dieses Konto wird NICHT an Dritte weitergegeben. Nur die Administratoren von domain\systems verfügen über diese Informationen und schließen sie an, wo immer dies pro Benutzer und Computer erforderlich ist. Es handelt sich auch um ein Profilprofil vom Typ Windows-Benutzerkonto. Wenn Sie also ein neues Profil für einen Benutzer erstellen und diese Lösung benötigt wird, muss die Verknüpfung erneut ausgeführt werden, damit der Berechtigungsnachweis auch für sein Profil zwischengespeichert wird (von einem Administrator).

Sicherheitshinweise

  1. Sie können den lokalen Anmeldezugriff für das Konto nicht über Gruppenrichtlinien einschränken, da das Konto sonst nicht interaktiv ausgeführt werden kann. Ich habe dies aus Sicherheitsgründen bereits versucht, konnte es jedoch nicht ordnungsgemäß ausführen.
  2. Da es sich um einen zwischengespeicherten Berechtigungsnachweis mit lokalen Administratorrechten handelt, kann ein Endbenutzer, in dem dies gespeichert ist, dieselbe RUNAS-Technik auf eine andere EXE-Datei oder über die Befehlszeile anwenden, sofern dies zulässig ist. Dies bedeutet, dass Sie als Administrator die Vor- und Nachteile dieser Lösung einschließlich der Risiken abwägen müssen. Möglicherweise ist es in Ordnung, dies für Ihre vertrauenswürdigen Personen oder Elemente zuzulassen, die ständig ausgeführt werden oder immer wieder benötigt werden, ohne dem lokalen Endbenutzer-Administrator tatsächlich zu gewähren.

Steuerelemente

Für diese Lösung sind jedoch einige Steuerelemente vorhanden, z. . .

  • Wählen Sie aus, auf welchen Maschinen Runas ausgeführt werden sollen
  • Wählen Sie auf jedem Computer aus, von welchem ​​Benutzer dies ausgeführt werden soll
  • Sie müssen zum Benutzerprofil auf diesem Computer gehen und die Berechtigungsnachricht unabhängig davon beim ersten Mal eingeben
  • Die Gefährdung erfolgt auf lokaler Ebene auf PC-Ebene, nicht auf Domänenebene, da das lokale oder AD-Konto Mitglied der IP-Adresse des lokalen Computers ist
  • Geben Sie diesem Konto keinen Zugriff auf Netzwerkressourcen für irgendetwas (nur lokaler PC-Administrator pro einzelnem PC nach Bedarf).
  • Wenn Sie diese Funktion jemals massiv deaktivieren möchten (vorausgesetzt, Sie verwenden ein Domänenkonto), deaktivieren Sie einfach das Konto oder ändern Sie das Kennwort
  • Stellen Sie sicher, dass andere über einige dieser Auswirkungen usw. informiert sind, und lassen Sie sie genehmigen, damit Sie nicht die Person sind, die die Entscheidung trifft, diese zu verwenden oder nicht
4
Pimp Juice IT

Zum Glück ist die CMD-Leitung die einzige echte Option, die Sie noch haben, wenn Sie den lokalen Administrator eliminieren. Powershell ist gut, aber ich würde denken, dass Sie auch damit eine Charge ausführen können.

Der einzige Nachteil bei jedem dieser Probleme ist, dass der Benutzer, wenn er weiß, wie die Skripte geöffnet werden, sehen kann, was Sie in sie eingefügt haben. Dies ist ein großes Nein Nein. Die einzige Möglichkeit, dies zu umgehen, besteht darin, einen Befehl in den Code zu schreiben, um das Skript beim Öffnen zu sperren und nicht auszuführen, um nach einem Kennwort zu fragen.

Vielleicht ein Batch oder eine Powershell, die speziell für die Benutzerkontensteuerung geschrieben wurden?

0
Jonas Lear

Bei einer anderen Option zum Umgehen der Benutzerkontensteuerung wird das Programm unter dem Systemkonto ausgeführt, da dieses Konto keine Benutzerkontensteuerung auf einem Benutzerkontosystem hat. Es gibt einige Quellcodes im Internet. Eine vollständige Lösung finden Sie unter robotronic.de/runasadminen.html. Diese Lösung kann auch für ein Konto ohne Administratorrechte verwendet werden.

0
Helenri