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 stelle die dringend benötigten Informationen zum Ausführen des Installationsprogramms bereit.
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 -Anwendungen / Da dies jedoch eine neue DVD ist, die ihr jeden Monat zugesandt wird, benötige ich ein Tool, das sie selbst für diese Operation 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 starten kann (ohne Zweifel über ihre Desktop-Verknüpfung), das das DVD-Laufwerk betrachtet und die Datei setup.exe als lokaler Administrator ohne 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
quelle
Get-Credential
?Antworten:
Als Administrator ausführen, ohne Administrator zu sein
Im Folgenden finden Sie Anweisungen zum Einrichten einer Problemumgehung, damit eine Anwendung als ein anderes Konto ausgeführt werden kann, 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
Anmerkungen
Dieses Konto wird wie
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, bei denen es nicht funktioniert, ihrem Konto (dem Endbenutzer und / oder einer Gruppe) einen expliziten
registry
undfile system
ebenen Objektzugriff zu gewähren.Sicherheit
Erstellen einer Verknüpfung mit den RUNAS (dies könnte sein
D:\Setup.exe
)Properties
Beispiel für eine VerknüpfungWICHTIG: Die doppelten Anführungszeichen um das Feld Start In: können erforderlich sein, unabhängig davon, ob der Pfad Leerzeichen enthält oder nicht.
Zusätzliche Setup-Hinweise
Sicherheitshinweise
Kontrollen
Für diese Lösung sind jedoch einige Steuerelemente vorhanden, z. . .
quelle
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.
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).
Dieser Artikel von Powershell.org 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/
quelle
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 zur Eingabe eines Kennworts aufzufordern.
Vielleicht ein Stapel oder eine PowerShell, die speziell für die Benutzerkontensteuerung geschrieben wurde?
quelle
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.
quelle