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

Get-Credential?