Frage

OK hier ist mein Problem:

Ich versuche, ein Skript remote auf einem Server ausgeführt werden.

Ich bin ein Administrator auf beiden Boxen sind Firewall-Ausnahmen vorhanden, ist remote admin aktiviert ist, und alles, was sieht gut aus, dass ich sehen kann.

invoke-command -ComputerName $ComputerName -ScriptBlock `
{
    cd C:\Windows\System32\inetsrv\; 
    ./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files>
}

Ich erhalte die folgenden Fehler im Gegenzug

ERROR ( hresult:80070005, message:Failed to commit configuration changes. Access is denied.

Der Server versucht es auf laufen ist ein Server 2k8 R2-Box und ich das Problem denke ist ein UAC Problem. Gibt es trotzdem, dies als Administrator ausführen zu erhalten, ohne dass ja auf einer UAC-Box klicken?

Dieses Stück Code wird schließlich ein Skript werden, die vollständig automatisiert werden muß.

Jede Hilfe würde sehr geschätzt werden.

War es hilfreich?

Lösung

OK. Nach einigen Recherchen und Tests dachte ich, das Problem aus. Nach dem Deaktivieren UAC und die Firewall und das Skript noch nicht funktioniert grub ich ein wenig tiefer und entdeckte, dass das Hauptproblem war die Art und Weise invoke-Befehl, um die Befehle ausführt. es verwendet die Anmeldeinformationen der Person, um das Skript zu beglaubigen zu dem Server ausgeführt werden dann versucht, ein anderes Konto zu verwenden, um die Berechtigungen oder senkt die Rechten des Benutzers ausgeführt werden, so dass bestimmte Befehle nicht ausgeführt werden können.

Ich habe die -Credentials wechseln Sie in die INVOKEBefehl und alles super funktioniert jetzt. Korrigierte Codebeispiel unten:

$user = New-Object Management.Automation.PSCredential("$UserName", $securePassword)
invoke-command -ComputerName $ComputerName -Credential $user -ScriptBlock ` 
{ 
    cd C:\Windows\System32\inetsrv\;  
    ./appcmd.exe ADD vdir /app.name:<SiteName>/ /path:/<VDir Name> /physicalPath:<Path to files> 
} 

Andere Tipps

Diese scheint, dass, um anzuzeigen, Sie müssen sicherstellen, dass Sie ein lokaler Administrator auf dem entfernten Rechner sind (obwohl zugegebenermaßen dies für WMI ist speziell). Nach dieser können Sie einen Registrierungsschlüssel ändern UAC Anwendung zu stoppen Remote-Anmeldungen für Administratoren (Suche nach LocalAccountTokenFilterPolicy). Das sollte nicht deaktivieren UAC einfach nicht das Token auswählen, wenn Sie Powershell / WMI remote mit einem Administrator-Konto verwenden.

Stellen Sie die Option "EnableLUA" (DWORD-Wert) in HKLM \ SOFTWARE \ Microsoft \ Windows \ Currentversion \ Policies \ System auf 0 und reboot gefunden.

Dies wird UAC deaktivieren, ohne ein Problem, würde ich es tun, für alle Benutzer, egal ob mit oder ohne Genehmigung ist bis zu Ihnen, weil der Vista UAC ist so abscheulichen, dass ich die weniger Menschen glauben, dass es auf dem besser haben (zumindest in vista) sie sind. Thsi Trick funktioniert auch zu in Win7.

Haben Sie Spaß mit meiner Registrierung Trick:)

P. S .: Wie sie SO heraus Kommentare zu zensieren, die zeigen, wie man deaktivieren UAC so weit meine Post / Thread mit der obigen Antwort ist besorgt darüber (eine sorgfältige Antwort entfernt wurde).

  

Gibt es trotzdem, dies als Administrator ausführen zu erhalten, ohne dass ja auf einer UAC-Box klicken?

Wenn dies möglich wäre, würde es ganz den Punkt der UAC besiegen.

So wäre es Ihre erscheinen einzige wirkliche Lösung zu deaktivieren UAC ist auf dem Feld.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top