DE112016004896T5 - Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung - Google Patents

Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung Download PDF

Info

Publication number
DE112016004896T5
DE112016004896T5 DE112016004896.3T DE112016004896T DE112016004896T5 DE 112016004896 T5 DE112016004896 T5 DE 112016004896T5 DE 112016004896 T DE112016004896 T DE 112016004896T DE 112016004896 T5 DE112016004896 T5 DE 112016004896T5
Authority
DE
Germany
Prior art keywords
command
document
resource
instructions
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016004896.3T
Other languages
English (en)
Inventor
Amjad Hussain
Manivannan Sundaram
Sivaprasad Venkata Padisetty
Nikolaos Pamboukas
Alan Hadley Goodman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112016004896T5 publication Critical patent/DE112016004896T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Eine Auswahl eines Dokuments, das einen Befehl und einen Parameter beinhaltet, wird empfangen und es wird veranlasst, dass ein Benutzer mit einer Richtlinie assoziiert wird, die eine Genehmigung erteilt, das Dokument auszuführen. Es wird von einem Aufforderer eine Aufforderung empfangen, das Dokument auszuführen, wobei die Aufforderung einen Parameterwert beinhaltet und für den Aufforderer bestimmt wird, dass dieser der mit der Richtlinie assoziiert Benutzer ist. Der Benutzer wird dahingehend validiert, dass er Zugriff auf eine Ressource hat, die durch den Parameterwert angegeben ist, und es wird veranlasst, dass der Befehl gegenüber der Ressource ausgeführt wird.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 14/975,376 , eingereicht am 18. Dezember 2015, mit dem Titel „PROVIDING FINE-GRAINED ACCESS REMOTE COMMAND EXECUTION FOR VIRTUAL MACHINE INSTANCES IN A DISTRIBUTED COMPUTING ENVIRONMENT“ und der vorläufigen US-Anmeldung Nr. 62/246,537 , eingereicht am 26. Oktober 2015, mit dem Titel „PROVIDING FINE-GRAINED ACCESS REMOTE COMMAND EXECUTION FOR VIRTUAL MACHINE INSTANCES IN A DISTRIBUTED COMPUTING ENVIRONMENT“, deren Inhalte hierin vollständig durch Bezugnahme aufgenommen sind.
  • HINTERGRUND
  • Unternehmen und Einzelpersonen, die danach bestrebt sind, die mit den eigenen Datenverarbeitungsressourcen in Verbindung stehenden Ausgaben und Gemeinkosten zu reduzieren, haben sich stattdessen dem Erwerb von Remote-Datenverarbeitungsdiensten zugewandt, wie etwa Remote-Programmausführung über mehrere Instanzen von virtuellen Maschinen und Remote-Datenspeicherung, was von Datenverarbeitungsressourcendienstanbietern für Kunden angeboten wird. Diese Remote-Datenverarbeitungsdienste sind häufig konfigurierbar und skalierbar, um die verschiedenen Datenverarbeitungsanforderungen der Kunden des Datenverarbeitungsressourcendienstanbieters zu erfüllen. Diese Kunden können jedoch häufige Änderungen und Aktualisierungen an ihren Instanzen von virtuellen Maschinen vornehmen und insbesondere bei Unternehmen, die eine große Anzahl von Instanzen von virtuellen Maschinen mit beschränkter Belegschaft für Informationstechnologie betreiben, kann es für die Kunden herausfordernd sein, für jede Serverinstanz Änderungen vorzunehmen und einmalige Befehle umzusetzen. Ferner ist es schwierig, fein abgestimmte Steuerung dafür bereitzustellen, welche Operationen von verschiedenen Benutzern der Instanzen von virtuellen Maschinen ausgeführt werden können.
  • Figurenliste
  • Verschiedene Techniken werden unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
    • 1 ein Beispiel eines Befehl-Ausführen-Dienstes gemäß einer Ausführungsform ist;
    • 2 ein Beispiel einer Befehl-Ausführen-Dienstarchitektur gemäß einer Ausrührungsform veranschaulicht;
    • 3 ein Beispiel einer Konsoleninstanzenliste gemäß einer Ausführungsform veranschaulicht;
    • 4 ein Beispiel für Ausfüllen von Domänenbeitrittsfeldern gemäß einer Ausrührungsform veranschaulicht;
    • 5 ein Beispiel des Ausführens eines Remote-Befehls gemäß einer Ausrührungsform veranschaulicht;
    • 6 ein Beispiel einer Anzeige gemäß einer Ausführungsform veranschaulicht, die angibt, dass sich ein Teil von Instanzen nicht in einem Zustand befindet, um einen Befehl anzunehmen;
    • 7 ein Beispiel des Änderns von Filtern gemäß einer Ausführungsform veranschaulicht;
    • 8 ein Beispiel von Plug-In-Output gemäß einer Ausführungsform veranschaulicht;
    • 9 ein Beispiel von Ergebnissen eines Dokumentenbeschreibungsbefehls gemäß einer Ausführungsform veranschaulicht;
    • 10 ein Beispiel von Ergebnissen eines Dokumentenbeschreibungsbefehls mit der Option Eigenschaftsparameter erweitern gemäß einer Ausführungsform veranschaulicht;
    • 11 ein Beispiel des Anzeigens des Befehlsstatus, um Windows automatisches Aktualisieren zu ermöglichen, gemäß einer Ausführungsform veranschaulicht;
    • 12 ein Beispiel des Verwendens eines Befehlsdokuments für das Downgrade einer Konfiguration einer virtuellen Maschine auf eine ältere Version gemäß einer Ausführungsform veranschaulicht;
    • 13 ein Beispiel von Befehlsantworten gemäß einer Ausführungsform veranschaulicht;
    • 14 ein Blockdiagramm ist, das ein Beispiel von Zuweisen einer Richtlinie für ausgewählte Benutzer gemäß einer Ausführungsform veranschaulicht;
    • 15 ein Ablaufdiagramm ist, das ein Beispiel von Zugriffsverifizierung gemäß einer Ausführungsform veranschaulicht; und
    • 16 ein Ablaufdiagramm ist, das ein Beispiel von Befehlsdokumentenausführung gemäß einer Ausführungsform veranschaulicht; und
    • 17 eine Umgebung veranschaulicht, in der verschiedene Ausführungsformen implementiert werden können.
  • DETAILLIERTE BESCHREIBUNG
  • In einem Beispiel wird eine Auswahl von einem Befehlsdokument durch ein System eines Datenverarbeitungsressourcendienstanbieters empfangen. Das Befehlsdokument kann ein Skript oder eine Reihe von einem oder mehreren Befehlen zum Durchführen von einer oder mehreren Operationen auf oder gegenüber einer festgelegten Ressource sein. Das Befehlsdokument kann eine Reihe von Parametern beinhalten, die festgelegt sein kann, wobei zumindest ein Parameter der Reihe von Parametern die festgelegte Ressource angibt. Die Auswahl des Befehlsdokuments kann eine Auswahl, die durch einen Administrator eines Kontos bei dem Datenverarbeitungsressourcendienstanbieter oder eine andere, mit dem Konto assoziierte autorisierte Einheit getroffen wird, eines vordefinierten Befehlsdokuments sein oder kann der Inhalt des Befehlsdokuments selbst sein.
  • Die Auswahl des Befehlsdokuments kann einer Aufforderung entsprechen, einer festgelegten Einheit, wie etwa einen Benutzer, der mit dem Konto assoziiert ist, eine Genehmigung zu erteilen, das Befehlsdokument gemäß einer festgelegten Sicherheitsrichtlinie auszuführen. Dementsprechend kann das System der vorliegenden Offenbarung als ein Ergebnis des Empfangens der Auswahl des Befehlsdokuments und einer Identität des festgelegten Benutzers die festgelegte Einheit mit der festgelegten Sicherheitsrichtlinie, die eine Genehmigung zum Ausführen des Befehlsdokuments erteilt, assoziieren.
  • In einem anderen Beispiel kann das System von einer auffordernden Einheit eine Ausführungsaufforderung zum Ausführen des Befehlsdokuments gegenüber einer oder mehreren festgelegten Ressourcen empfangen. Die Aufforderung kann eine Reihe von Parameterwerten entsprechend der Reihe von Parametern des Befehlsdokuments beinhalten. Als ein Ergebnis der Ausführungsaufforderung kann das System verifizieren, ob die auffordernde Einheit mit einer ersten Richtlinie, die eine Genehmigung zum Ausführen des Befehlsdokuments erteilt, assoziiert ist. Wenn die Verifizierung angibt, dass die auffordernde Einheit über keine ausreichende Genehmigung zum Ausführen des Befehlsdokuments verfügt, kann die Ausführungsaufforderung abgelehnt werden.
  • Als ein Ergebnis des Empfangens der Ausführungsaufforderung kann das System auch verifizieren, ob die anfragende Einheit mit einer zweiten Richtlinie assoziiert ist, die der auffordernden Einheit Zugriff gewährt, um die eine oder die mehreren Operationen des Befehlsdokuments gegenüber der einen oder den mehreren festgelegten Ressourcen durchzuführen. Wenn die Verifizierung angibt, dass die auffordernde Einheit nicht über ausreichende Genehmigung zum Durchführen der einen oder mehreren Operationen gegenüber der einen oder dem mehreren festgelegten Ressourcen verfügt, kann die Ausführungsaufforderung abgelehnt werden. Als ein Ergebnis der erfolgreichen Verifizierung, dass die auffordernde Einheit über eine Genehmigung verfügt, das Befehlsdokument auszuführen, und dass die auffordernde Einheit über eine Genehmigung verfügt, die eine oder die mehreren Operationen gegenüber der einen oder den mehreren festgelegten Ressourcen durchzuführen, kann das System der vorliegenden Offenbarung veranlassen, dass der eine oder die mehreren Befehle des Befehlsdokuments gegenüber den festgelegten Ressourcen ausgeführt werden. In einigen Ausführungsformen kann das System veranlassen, dass der eine oder die mehreren Befehle durch Senden des einen oder der mehreren Befehle an eine Agentensoftware durchgeführt werden, die auf einer Datenverarbeitungsvorrichtung ausgeführt wird, die eine festgelegte Ressource hostet.
  • In der vorstehenden und nachfolgenden Beschreibung werden verschiedene Techniken beschrieben. Zum Zwecke der Erklärung werden spezifische Konfigurationen und Details dargelegt, um ein umfassendes Verständnis von möglichen Wegen zur Umsetzung der Techniken bereitzustellen. Es ist allerdings auch offensichtlich, dass die nachfolgend beschriebenen Techniken in unterschiedlichen Konfigurationen ohne die spezifischen Details praktiziert werden können. Ferner können gut bekannte Funktionen ausgelassen oder vereinfacht werden, um die beschriebenen Techniken nicht zu verschleiern.
  • Techniken, die in der vorliegenden Offenbarung beschrieben und vorgeschlagen werden, verbessern den Bereich der Datenverarbeitung, insbesondere den Bereich von Systemadministration, indem es einem Systemadministrator ermöglicht wird, angepasst administrative Aufgaben an Benutzer zu delegieren, die mit spezifischen Verantwortlichkeiten beauftragt sind (Delegierte), und die Ausführung der angepassten administrativen Aufgaben durch die Delegierten zu überwachen. Zusätzlich verbessern Techniken, die in der vorliegenden Offenbarung beschrieben und vorgeschlagen werden, die Effizienz des Verwaltens von großen Computerflotten, indem es erlaubt wird, administrative Aufgaben gegenüber mehreren Datenverarbeitungsvorrichtungen asynchron durchzuführen. Ferner sind Techniken, die in der vorliegenden Offenbarung beschrieben und vorgeschlagen werden, notwendigerweise in Computertechnologie verwurzelt, um Probleme in Verbindung mit einem Risiko dafür, dass Benutzern versehentlich Genehmigungen erteilt werden, Operationen durchzuführen, die über den Umfang der Verantwortlichkeiten der Benutzer hinausgehen, und Probleme in Verbindung mit dem Verwalten von bestimmten Genehmigungen auf einer Pro-Benutzer-Basis zu beheben.
  • 1 veranschaulicht einen Aspekt einer Umgebung 100, in der eine Ausrührungsform praktiziert werden kann. Wie in 1 veranschaulicht, kann die Umgebung 100 einen Administrator 102 umfassen, der ein Befehlsdokument 104, das eine oder mehrere durchzuführende Operationen festlegt, oder eine Auswahl des Befehlsdokuments 104 an einen Richtlinienverwaltungsdienst 106 übermitteln kann. Der Administrator 102 kann mit einem oder mehreren Benutzern 108 eine Richtlinie 110, die eine Genehmigung für den einen oder die mehreren Benutzer 108 zum Ausführen des Befehlsdokuments 104 erteilt, assoziieren. Die einzelnen Benutzer des einen oder der mehreren Benutzer 108 können Ausführungsaufforderungen für einen Befehl-Ausführen-Dienst 112 der vorliegenden Offenbarung vornehmen, um das Ausführungsdokument 104 auszuführen. Wie in 1 veranschaulicht, kann der Befehl-Ausführen-Dienst 112 bei Verifizierung, dass die Richtlinie 110 eine Erfüllung der Ausführungsaufforderung ermöglicht, veranlassen, dass die eine oder die mehreren Operationen, die durch das Befehlsdokument 104 festgelegt sind, gegenüber der einen oder den mehreren Ressourcen 116A-16N ausgeführt werden.
  • Die Rolle des Administrators kann vollständigen Zugriff auf alle Ressourcen 116A-16N des Kontos bereitstellen und der Administrator 102 kann einer von einem oder mehreren Benutzern des Kontos, das die Rolle des Administrators innehält, sein. In einigen Beispielen kann sich ein „Konto“ auf ein Kundenkonto von mehreren Kundenkonten, die durch den Datenverarbeitungsressourcendienstanbieter verwaltet werden, der die eine oder die mehreren Ressourcen 116A-16N anbietet, beziehen.
  • Die Richtlinie 110 kann Informationen darstellen, die Genehmigungen und Beschränkungen für den einen oder die mehreren Benutzer 108, Anwendungen und andere Einheiten, die auf die eine oder die mehreren Ressourcen 116A-16N zugreifen, definieren, wie etwa in einem Dokument einer Zugriffskontrollsprache (z. B. eXtensible Access Control Markup Language etc.) definiert. Der Richtlinienverwaltungsdienst 106 kann ein System sein, das dazu konfiguriert ist, Richtlinien wie etwa die Richtlinie 110 im Namen des Administrators 102 des Kontos zu verwalten. Der Richtlinienverwaltungsdienst 106 kann eine Schnittstelle beinhalten, die es dem Administrator 102 ermöglicht, Aufforderungen in Bezug auf die Verwaltung von Richtlinien zu übertragen. Diese Aufforderungen können zum Beispiel Aufforderungen sein, um eine Richtlinie für das Konto hinzuzufügen, zu löschen oder zu modifizieren, oder für andere administrative Handlungen wie etwa Betrachten eines Bestands von bestehenden Richtlinien.
  • Der eine oder die mehreren Benutzer 108 können ein(e) oder mehrere Einzelpersonen, Datenverarbeitungssysteme, Anwendungen, Dienste, Ressourcen oder sonstige Einheiten, denen Zugriff auf das Konto in Verbindung mit der einen oder den mehreren Ressourcen 116-16N gewährt wurde, sein. Jeder Benutzer kann einen einmaligen Namen (z. B. Benutzername) innerhalb des Kontos haben und kann den Besitz von Sicherheitsinformationen darlegen oder anderweitig nachweisen, wie etwa durch Eingeben eines Passworts, eines Zugangsschlüssels und/oder einer digitalen Signatur, um Zugriff auf Datenverarbeitungsressourcen des Kontos zu erhalten. In einigen Fällen kann ein Konto mit nur einem Benutzer (z. B. dem Administrator 102) bestehen; es können jedoch nach Bedarf zusätzliche Benutzer hinzugefügt oder von dem Konto entfernt werden.
  • Der Befehl-Ausführen-Dienst 112 kann ein Dienst eines Datenverarbeitungsressourcendienstanbieters sein, der in einem Dienst eines virtuellen Computersystems des Datenverarbeitungsressourcendienstanbieters enthalten ist oder zusätzlich zu diesem verfügbar ist. Der Befehl-Ausführen-Dienst 112 kann es dem Administrator 102 erlauben, Genehmigungen zum Ausführen von spezifischen Befehlen gegenüber der einen oder den mehreren Ressourcen 116A-16N an autorisierte Benutzer wie etwa den einen oder die mehreren Benutzer 108 zu delegieren. Die eine oder die mehreren Ressourcen können Instanzen von virtuellen Maschinen sein und der Befehl-Ausführen-Dienst kann ein Dienst sein, der Benutzern die Fähigkeit bereitstellt, Befehle, die in dem Befehlsdokument 104 festgelegt sind, gegenüber mehreren Instanzen von virtuellen Maschinen auszuführen. Auf diese Weise kann der Befehl-Ausführen-Dienst 112 anstelle davon, dass die Benutzer 108 sich mit jeder der einen oder der mehreren Ressourcen 116A-16N verbinden müssen, um Serveradministration durchzuführen, oder dass spezieller ausführbarer Code verwendet werden muss, um diese Administrationsaufgaben auszuführen, die Administration vereinfachen, indem es Kunden ermöglicht wird, zuvor erstellte Skripte oder Befehle gegenüber deren Instanzen sicher und im großen Maßstab über deren Flotte auszuführen, wodurch die erforderliche Zeitmenge zum Durchführen dieser Administrationsaufgaben und das Potential für menschliche Fehler reduziert werden.
  • Durch Bereitstellen von delegierter Administration ermöglicht es der Befehl-Ausführen-Dienst 112 dem Administrator 102, Rollen einzurichten, die über definierte Genehmigungen verfügen, um bestimmte Handlungen durchzuführen. Der Administrator 102 kann Zugriff für bestimmte Benutzer des einen oder der mehreren Benutzer 108 gewähren und deren Handlungsmöglichkeiten beschränken. Zum Beispiel kann der Administrator 102 an das Help-Desk-Personal des einen oder der mehreren Benutzer 108 eine Genehmigung erteilen, um ein Befehlsdokument auszuführen, das Benutzerpasswörter auf der einen oder den mehreren Ressourcen 116A-16N zurücksetzt, ohne vollständige administrative Kontrolle an das Help-Desk-Personal bereitstellen zu müssen. Auf diese Weise kann der Administrator 102 auf eine einheitliche und sichere Weise spezifische administrative Verantwortlichkeiten an spezifische Benutzer delegieren. Ferner kann der Befehl-Ausführen-Dienst 112 einige selbstadministrative Aufgaben ermöglichen. Zum Beispiel kann das Befehlsdokument 104 so geschrieben sein, dass bei Ausführung ein Passwort für einen Benutzer auf einer oder mehreren festgelegten Instanzen von virtuellen Maschinen, auf die der Benutzer Zugriff hat, zurückgesetzt werden; durch Erteilen einer Genehmigung an den Benutzer, das Befehlsdokument 104 auszuführen, kann der Benutzer, wenn er sein Passwort vergisst, das Befehlsdokument 104 ausführen, um sein Passwort zurückzusetzen, ohne den Administrator 102 oder das Help-Desk-Personal kontaktieren zu müssen.
  • Durch Ermöglichen des einen oder der mehreren Benutzer 108 oder des Administrators 102, einen Befehl über des Befehlsdokument 104 gegenüber der einen oder der mehreren Ressourcen 116A-16N auszuführen, können der eine oder die mehreren Benutzer 108 und der Administrator 102 Befehle im großen Maßstab ausführen, ohne sich einzeln mit jeder der einen oder der mehreren Ressourcen 116A-16N verbinden zu müssen.
  • Der Administrator 102 und der eine oder die mehreren Benutzer 108 können den Befehl-Ausführen-Dienst 112 über ein Netzwerk (z. B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz etc.) über eine Benutzeroberfläche oder eine Anwendungsprogrammierungsschnittstelle nutzen. Der Administrator 102 und der eine oder die mehreren Benutzer 108 können auch über die Benutzeroberfläche oder als eine Antwort auf einen Aufruf einer Anwendungsprogrammierungsschnittstelle die Ergebnisse des Ausführens des Befehlsdokuments 104 anzeigen.
  • Das Befehlsdokument 104 (auch als ein „Ausführungsbefehl“-Dokument oder ein „Simple Systems Manager (SSM)“-Dokument bezeichnet) kann eine Sammlung von einem oder mehreren Befehlen zum Durchführen von einer oder mehreren Operationen sein. In einigen Beispielen kann sich der Begriff „Befehl“ auf eine Anweisung beziehen, eine Operation für eine/gegenüber einer Ressource durchzuführen. Beispiele von Operationen, die in dem Befehlsdokument 104 festgelegt werden können, beinhalten das Zurücksetzen von Benutzer- oder Administratorpasswörtern auf festgelegten Instanzen. In einigen Ausführungsformen kann der Befehl-Ausführen-Dienst 112 nachverfolgen, welche Befehle der eine oder die mehreren Benutzer 108 gegenüber der einen oder den mehreren Ressourcen 116A-16N ausgeführt haben. Es ist jedoch zu beachten, dass der Begriff „Befehl“, typischerweise in einem Kontext mit einer Befehls-ID, sich auch auf ein ausführendes Befehlsdokument und weniger auf einen bestimmten Befehl, der innerhalb des Befehlsdokuments festgelegt ist, bezieht.
  • In einigen Fällen kann das Befehlsdokument 104 eine vordefinierte Reihe von beispielhaften Befehlen sein, so wie durch den Datenverarbeitungsressourcendienstanbieter, der den Befehl-Ausführen-Dienst 112 bereitstellt, bestimmt. Beispiele für vordefinierte Befehlsdokumente können WebServices-RunPowerShellScript (zum Ausführen eines Windows PowerShell-Skripts), WebServices-InstallApplication (zum Installieren einer Anwendung auf einer Maschineninstanz), WebServices-ConfigureTelemetryService (zum Konfigurieren eines Telemetriedienstes des Datenverarbeitungsressourcendienstanbieters für das Kundenkonto) und WebServices-JoinDirectoryServiceDomain (zum Beitreten zu einer Verzeichnisdienstdomäne) beinhalten.
  • Zusätzlich oder alternativ kann das Befehlsdokument 104 ein Dokument sein, das durch den Administrator 102 bereitgestellt wird und eine angepasste Reihe von Befehlen enthält. Das Befehlsdokument 104 kann einige oder beliebige Befehle beinhalten, für die der eine oder die mehreren Benutzer 108 in der Lage wären, diese lokale auf der einen oder den mehreren Ressourcen 116A-16N auszuführen. Das heißt, wenn die eine oder die mehreren Ressourcen 116A-16N Instanzen von virtuellen Maschinen sind, die auf einem Windows-Betriebssystem laufen, kann der Befehl-Ausführen-Dienst 112 es unterstützen, dass veranlasst wird, dass einige oder beliebige Befehle, die über Windows PowerShell ausgeführt werden können, sowie andere vordefinierte Befehle von dem Befehlsdokument 104 auf den Instanzen von virtuellen Maschinen ausgeführt werden. Wenn sich zum Beispiel ein Benutzer normalerweise an einer Instanz anmelden würde, um einen Webserver in einem Befehlsfenster zurückzusetzen, kann der Benutzer nun unter Verwendung eines Befehlsdokuments, das Befehle zum Zurücksetzen des Webservers enthält, dieses Befehlsdokument gegenüber der Instanz ausführen.
  • Auf diese Weise kann der Befehl-Ausführen-Dienst 112 dazu verwendet werden, Remote-Befehle schnell gegenüber der einen oder den mehreren Ressourcen 116A-16N auszuführen, wodurch es dem einen oder den mehreren Benutzern 108 und/oder dem Administrator 102 ermöglicht wird, schnell und einfach Remote-Befehle oder -Skripte gegenüber der einen oder den mehreren Ressourcen 116A-16N auszuführen. Der Befehl-Ausführen-Dienst 112 eliminiert auch das Erfordernis, sich manuelle mit jeder der Ressourcen 116A-16N verbinden zu müssen, um allgemeine administrative Aufgaben (z. B. Installieren von Software oder Zurücksetzen eines Administratorpassworts) für die Ressource durchzuführen.
  • Der Befehl-Ausführen-Dienst 112 führt Befehle aus, die in dem Befehlsdokument 104 festgelegt sind. Wenn das Befehlsdokument 104 ausgeführt wird, veranlasst der Befehl-Ausführen-Dienst 112, dass die Befehle innerhalb des Befehlsdokuments gegenüber der festgelegten Ressource ausgeführt werden. Beispiele für Operationen, die in dem Befehlsdokument festgelegt werden können, können Befehle zum Beitreten einer Instanz einer virtuellen Maschine zu einem Verzeichnisdienstverzeichnis, Installieren/Deinstallieren oder Reparieren einer Softwareinstallation, Ausführen einer Windows PowerShell und/oder Konfigurieren von Telemetriedienstprotokollen zum Überwachen von Anwendungen und Systemen beinhalten.
  • Das Befehlsdokument 104 kann ein „Konfigurationsdokument“ sein, das in einem strukturierten Datenformat wie etwa JavaScript Object Notation (JSON), Extensible Markup Language (XML) oder einem anderen ähnlichen Datenaustauschformat ausgedrückt ist. Ein Datenverarbeitungsressourcendienstanbieter, der den Befehl-Ausführen-Dienst 112 bereitstellt, kann an den Administrator 102 ein oder mehrere dieser vordefinierten Befehlsdokumente für allgemeine Operationen bereitstellen. Wenn der Administrator 102 jedoch das Erfordernis aufweist, sehr spezialisierte oder angepasste Operationen durchzuführen, kann zusätzlich oder alternativ zu dem Befehl-Ausführen-Dienst 112 der Administrator 102 ein Befehlsdokument verfassen/erstellen, das so offen oder spezifisch ist wie vom Administrator 102 beabsichtigt. Sobald der Administrator das Befehlsdokument 104 erstellt, kann der Administrator 102 veranlassen, dass der Befehl-Ausführen-Dienst 112 das Befehlsdokument 104 so oft oder über so viele der einen oder der mehreren Ressourcen 116A-16N ausführt wie vom Administrator 102 gewünscht.
  • Wie angemerkt, kann das Befehlsdokument 104 eine JSON-Datei sein. Das Folgende ist ein Beispiel eines JSON-Schemas für ein Befehl-Ausführen-Dokument:
       { 
             "$schema": „http://json-schema.org/draft-
             04/schema#“,
              "title": „AWS-SSM-Document“,
              "type": „object“,
              "required": [ „schemaVersion“, „runtimeConfig“ ],
              "additionalProperties": false,
              "properties": {
                     "schemaVersion": {
                           "type": „string“
                     },
                     "description": {
                     }, „type“: „string“
                     "parameters": {
                           "type": „object“,
                           "additionalProperties": {
                                  "type": „object“,
                                  "required": [ „type“ ],
                                  "additionalProperties": false,
                                  "properties": {
                                         "type": {
                                               "type": „string“,
                                               "enum": [ „string“,
                                              "number", „boolean“,
                                              "object", „array“ ]
                                         },                                         "default": {
                                               "type": [ „string“,
                                              "number", „boolean“,
                                              "object", „array“ ]
                                         },
                                        "description": {
                                               "type": „string“
                                         }
                                  }
                           }
                     },
                     "runtimeConfig": {
                           "type": „object“,
                           "additionalProperties": {
                                  "type": „object“,
                                  "required": [ „properties“ ],
                                  "additionalProperties": false,
                                  "properties": {
                                        "description": {
                                                „type“: „string“
                                        },
                                        "properties": {
                                               "type": [ „string“,
                                              "number", „boolean“,
                                              "object", „array“ ]
                                        }
                                  } 
                           }
                     }

              }
           }
  • Gültige Parametertypen können String, numerisch, Objekt, Feld und boolesch sein. Ein Dokumentenverfasser kann optional Standardwerte für Parameter bereitstellen. Strings, die mit {{ beginnen und mit }} enden, können als Befehlsdokumentenausdrücke erachtet werden. Ein Befehlsdokumentenausdruck kann entweder eine Funktion oder ein Parameter sein. Eine Funktion kann mehrere Ausdrücke als Argumente haben. Benutzerdefinierte Parameter können in der Eigenschaft „Parameter“ des Befehlsdokuments deklariert werden. Parameternamen können ein alphanumerischer String (z. B. [a-zA-Z0-9]+) sein und der Datenverarbeitungsressourcendienstanbieter kann eine optionale vordefinierte Liste von Parametern zur Verwendung durch den Dokumentenverfasser bereitstellen. Eine Reihe von Funktionen wird durch den Befehl-Ausführen-Dienst 112 bereitgestellt, um eine flexiblere Nutzung der Parameter bereitzustellen, wie etwa:
  •       fn:concate(args...) # verknüpft die Argumente und gibt
          einen String aus
  • Ein Beispiel eines Befehlsdokuments, „Example_Document“ unter Verwendung von JSON ist nachfolgend dargelegt:
  •        {
                 "schemaVersion" : „1.2“,
                 "description": „Dies ist der Demo-Befehl von Person
                 A. In diesem Dokument sind keine Parameter
                 enthalten.“,
                 "parameters": {},
                 "runtimeConfig": {
                        "webservices:runShellScript": {
                              "properties": [
                              { 
                                     "id": „0.webservices:
                                    runShellScript“,
                                     "runCommand": [„ipconfig“, „dir“],
                                     "workingDirectory": "",
                                     "timeoutSeconds": "",
                                     "Source": "",
                                     "SourceHash": "",
                                     "SourceHashType“: ""
                              }
                              ]
                        }
              }
           }
  • Ein Beispiel dafür, wie das vorstehende Befehlsdokument aufzurufen ist, ist nachfolgend gezeigt:
  •       PS C:\> $runShellCommand=Send-SSMCommand -InstanceId
          $instanceid -DocumentName Example_Document -Comment 'A
          demo'
  • Um einen Befehl oder ein Skript von einer Befehlszeilenschnittstelle auszuführen, kann ein Benutzer eine Befehlszeilenschnittstelle öffnen und eine unterstützte Anwendungsprogrammierungsschnittstelle ausführen, indem das Befehlsdokument 104 in erforderlichen oder optionalen Parametern (gemäß dem jeweiligen Befehlsdokument), die zum Ausführen des Befehls oder zum Starten des Skripts erforderlich sind, festzulegen. Das Befehlsdokument 104 kann Parameter beinhalten, die es dem Benutzer ermöglichen, den Befehl gegenüber einer einzelnen Ressource oder mehreren Ressourcen auszuführen. Unterstützte Anwendungsprogrammierungsschnittstellen können auch Anwendungsprogrammierungsschnittstellen zum Prüfen des Status des ausführenden Befehls und Anwendungsprogrammierungsschnittstellen zur Zurückgeben des Verlaufs der Ausführung dieses Befehls auf einer Ressource beinhalten.
  • Der Administrator 102 kann Genehmigungen einstellen, für die es Benutzern erlaubt ist, das Befehlsdokument 104 auszuführen, indem die Richtlinie 110, die eine Genehmigung zum Ausführen des Befehlsdokuments 104 an den einen oder die mehreren Benutzer 108 erteilt, zugewiesen wird (oder erstellt und zugewiesen wird). Zum Beispiel kann der Administrator für ein erstes Befehlsdokument (mit offenen und hoch privilegierten Befehlen) nur an einen ersten Benutzer eine erste Richtlinie zuweisen, die eine Genehmigung zum Ausführen des ersten Dokuments erteilt. Für ein zweites Dokument (mit sehr eingeschränkten Befehlen mit beschränkten Privilegien) kann der Administrator 102 hingegen allen anderen Benutzern Zugriff gewähren, um das zweite Dokument auszuführen.
  • Dementsprechend verfügt der Administrator 104 über fein abgestimmte Kontrolle über die Operationen, die auf der einen oder den mehreren Ressourcen 116A-16N durchgeführt werden können, und über die Benutzer, die über Genehmigungen verfügen, um Operationen durchzuführen, wodurch ein Problem vermieden wird, bei dem ein Benutzer, sobald er mit einer Ressource verbunden ist, die Fähigkeit haben könnte, Operationen außerhalb des Umfangs seiner Befugnisse durchzuführen. Wie angemerkt, kann in einigen Ausführungsformen der Befehl-Ausführen-Dienst die ausgeführten (oder auszuführen versuchte) Operationen und/oder Befehlsdokumente und die zugrunde liegende Anleitung durch die entsprechende Einheit nachverfolgen/protokollieren, und in diesen Ausführungsformen kann der Administrator 102 diese Informationen in Prüfprotokollen anzeigen. Zum Beispiel erstellt der Administrator 102 das Befehlsdokument 104 zum Löschen von Dateien und nennt es „DeleteFiles“. Der Administrator 102 kann Genehmigungen für bestimmte Benutzer erteilen, um das Befehlsdokument 104 „DeleteFiles“ auszuführen. Wenn danach ein Problem mit dem Löschen der Dateien auftritt, kann der Administrator 102 die Prüfberichte prüfen, um das Problem auf das Befehlsdokument 104 und den Benutzer, der das Befehlsdokument 104 ausgeführt hat, welche Operationen durchgeführt wurden und zu welcher Zeit zurückzuverfolgen.
  • Das Befehlsdokument 104 kann sehr spezifisch sein. Zum Beispiel kann der Administrator 102 ein Befehlsdokument erstellen, dass (z. B. „example.exe“ etc.). Alternativ kann das Befehlsdokument 104 offener sein. Zum Beispiel kann der Administrator das Befehlsdokument 104 so verfassen, dass jede Datei gelöscht wird, die durch den Benutzer als ein Parameter an das Befehlsdokument 104 weitergeleitet wird. Das Befehlsdokument 104 kann selbst durch Dienste des Datenverarbeitungsressourcendienstanbieters als eine Ressource angezeigt werden und Zugriffskontrolle für das Befehlsdokument 104 kann durch einen Authentifizierungsdienst des Datenverarbeitungsressourcendienstanbieters verwaltet werden. Zum Beispiel kann der Administrator 102 einem ersten Benutzer Zugriff auf ein DeleteSpecificFile-Befehlsdokument gewähren und der Administrator kann einem zweiten Benutzer Zugriff auf ein DeleteAnyFile-Befehlsdokument gewähren.
  • Dementsprechend kann der Administrator 102 wünschen, einer ersten Untergruppe von Benutzern eine Genehmigung zu erteilen, eine erste Reihe von Operationen durchzuführen, und einer zweiten Untergruppe von Benutzern eine Genehmigung zu erteilen, eine zweite Reihe von Operationen durchzuführen. Der Administrator 102 würde separate Befehlsdokumente für jede der Reihen von Operationen erstellen. Zum Beispiel kann ein erstes Befehlsdokument „RebootMachine“ sein und ein zweites Befehlsdokument kann „CollectLogs“ sein. Der Administrator 102 kann der ersten Untergruppe von Benutzern Zugriff auf RebootMachine gewähren und der zweiten Untergruppe Zugriff auf CollectLogs gewähren. Gleichermaßen kann der Administrator 102 der zweiten Untergruppe von Benutzern Zugriff auf ein drittes Befehlsdokument, das Aktualisierungen des Registry-Keys vornimmt, verweigern.
  • Das Befehlsdokument 104 kann erstellt werden, um verschiedene Parameter zu empfangen. Zum Beispiel kann eine Instanz einer virtuellen Maschine, gegenüber der die Befehle in dem Befehlsdokument durchgeführt werden sollen, durch die aufrufende Einheit durch Weiterleitung einer Liste von Instanzenkennungen (IDs) als Parameter an das Befehlsdokument 104 festgelegt werden. In einigen Ausführungsformen können Ressourcentags einer virtuellen Maschine durch den Befehl-Ausführen-Dienst 112 unterstützt werden. In einigen Beispielen kann sich ein „Tag“ auf eine Beschriftung beziehen, die mit einer oder mehreren Instanzen zum Zweck des Bezeichnens von Instanzen mit einer gemeinsamen Eigenschaft, über die die Instanzen gefiltert oder gruppiert werden können, assoziiert ist. Zum Beispiel kann ein erstes Tag mit der Beschriftung „Webserver“ erstellt werden und Instanzen, die dazu konfiguriert sind, Webseiten an Benutzer bereitzustellen, können mit dem ersten Tag assoziiert sein. Als ein weiteres Beispiel kann ein zweites Tag mit der Beschriftung „Datenserver“ erstellt werden und Instanzen, die dazu konfiguriert sind, Daten dauerhaft zu speichern und abzurufen, können mit dem zweiten Tag assoziiert sein. Tags können sich überlappen; zum Beispiel kann eine Instanz sowohl als „Webserver“ als auch „Datenserver“ getaggt sein.
  • Auf diese Weise kann ein Benutzer ein Tag festlegen, wenn das Befehlsdokument 104 ausgeführt wird, indem der Tagwert als ein Parameter weitergeleitet wird, und als Ergebnis kann das Befehlsdokument 104 asynchron gegenüber allen Instanzen in einer Flotte von Instanzen von virtuellen Maschinen, die das festgelegte Tag aufweisen, ausgeführt werden. Um zum Beispiel das Befehlsdokument 104, das dazu konfiguriert wurde, eine Instanz einer virtuellen Maschine mit der Begründung „Geplante Hotfix-Installation“ herunterzufahren, gegenüber allen Ressourcen der einen oder der mehreren Ressourcen 116A-16N, die als „WebServer“ getaggt wurden, auszuführen, kann der Benutzer aus einer Befehlszeilenschnittstelle einen Befehl wie etwa den folgenden ausführen:
  •       >>Invoke-SSMCommand -Tag ‚WebServer‘ -DocumentName
           'webservices:RunScript' -Parameters @{Script=' shutdown
          /g [p]/d 2:17' }
  • Wie angemerkt, kann, wenn ein Benutzer ein Befehlsdokument ausführt, der Benutzer das Ziel (z. B. Maschineninstanz) festlegen, gegenüber dem das Befehlsdokument ausgeführt werden soll. Der Befehl-Ausführen-Dienst kann eine Autorisierungsentscheidung treffen, um zu bestimmen, ob der Benutzer über die Genehmigung verfügt, das Befehlsdokument gegenüber dem festgelegten Ziel auszuführen (z. B. ob der Benutzer über Zugriff auf das Befehlsdokument verfügt, ober der Benutzer über Zugriff auf das angegebene Ziel/die angegebenen Ziele verfügt etc.). Das heißt, als Reaktion darauf, dass ein Benutzer versucht, ein Dokument auszuführen (z. B. „Ausführen des DeleteSpecificFile-Befehlsdokuments auf diesen festgelegten Instanzen“), kann der Befehl-Ausführen-Dienst 112 zuerst verifizieren, dass dem Benutzer, der das Befehlsdokument ausführt, Zugriff auf das festgelegte Dokument gewährt wurde, und danach verifizieren, dass der Benutzer, der das Befehlsdokument ausführt, über Zugriff auf die festgelegten Instanzen verfügt. Wenn die Antwort auf eine der Verifizierungen Nein ist, wird die Aufforderung abgewiesen. Wenn die Antwort auf beide Verifizierungen Ja lautet, dann kann der Befehl-Ausführen-Dienst 112 veranlassen, dass die Operationen auf den festgelegten Instanzen durchgeführt werden. Somit könnte der Benutzer Zugriff auf ein Befehlsdokument wie „DeleteFiles“ haben, wäre aber nicht dazu in der Lage, auf eine Ressource, für die der Benutzer über keinen Zugriff verfügt, oder auf eine Ressource, für die der Administrator dem Benutzer Löschgenehmigungen nicht gewährt hat, abzuzielen. Weitere Details über den Befehl-Ausführen-Dienst sind in 2 dargelegt.
  • Als ein weiteres Beispiel gewährt der Administrator 102 einem ersten Benutzer Zugriff ein Befehlsdokument, das es nur dem ersten Benutzer ermöglicht, Protokolle für drei spezifische Ressourcen der einen oder der mehreren Ressourcen 116A-16N zu prüfen. Für einen zweiten Benutzer erteilt der Administrator 102 Genehmigungen für ein Befehlsdokument, das es dem zweiten Benutzer erlaubt, privilegierte Operationen auszuführen, wie etwa Neubooten von bestimmten Maschinen. Der Administrator 102 kann danach eine Prüfung durchführen, um die Befehle zu prüfen, die der erste Benutzer und der zweite Benutzer ausgeführt haben.
  • Ein externes Planungswerkzeug oder ein externer Planungsdienst, wie etwa Windows Task Scheduler, kann zum Planen genutzt werden, wenn das Befehlsdokument 104 mit festgelegten Parametern auszuführen ist. In einigen Ausführungsformen können der Administrator 102 oder der eine oder die mehreren Benutzer 108 versuchen, die Ausführung eines Befehlsdokuments 104 zu beenden, wenn die Befehle des Befehlsdokuments 104 in einem ausstehenden oder ausführenedem Zustand sind; in einem solchen Fall wird der Befehl-Ausführen-Dienst 112 versuchen, das aktive Befehlsdokument zu beenden. In einigen Ausführungsformen, wenn das Befehlsdokument gegenüber einer Ressource ausgeführt wird, die nicht reagiert oder die in einem Zustand ist, in dem die Ressource vorübergehend nicht in der Lage ist, die Befehle des Befehlsdokuments 104 auszuführen, wird der Befehl-Ausführen-Dienst 112 für diese Ressource das Befehlsdokument 104 zur Ausführung zu einem solchen Zeitpunkt, zu dem die Ressource in der Lage ist, die Befehle des Befehlsdokuments 104 auszuführen, in eine Warteschlange setzen. Zum Beispiel kann der Befehl-Ausführen-Dienst 112 das Befehlsdokument 104 in eine Warteschlange setzen und versuchen, dies in stündlichen Intervallen für bis zu 31 Tage auszuführen, bevor es abgebrochen wird. In einigen Ausführungsformen kann die Warteschlange gedrosselt sein; das heißt, eine Anzahl von Befehlsdokumenten s in der Warteschlange kann beschränkt sein. In einigen dieser Ausführungsformen kann die Anzahl von Befehlsdokumenten s auf einem Typ des Kontos basieren, für das die eine oder die mehreren Ressourcen 116A-16N zugewiesen sind. Zum Beispiel kann ein Konto, das es dem Kunden des Datenverarbeitungsressourcendienstanbieters ermöglicht, über bis zu 100 virtuelle Maschinen zu verfügen, die Warteschlange so beschränken, dass sie nur 15 Befehlsdokumente enthalten kann. Im Gegensatz dazu kann ein Konto für bis zu 1000 virtuelle Maschine über eine Warteschlange verfügen, die bis zu 200 Befehlsdokumente enthalten kann.
  • Der Befehl-Ausführen-Dienst 112 kann einen Zustandsprüfungsprozess nutzen, um zu bestimmen, ob eine bestimmte Maschineninstanz reagiert. Zum Beispiel wird der letzte bekannte Heartbeat (z. B. periodisches Signal, das von der Maschineninstanz gesendet wird, um normalen Betrieb anzuzeigen) der Maschineninstanz zurückgegeben, sowie ein Status, der anzeigt, ob die Maschineninstanz nicht initialisiert ist (die Maschineninstanz hat niemals reagiert oder es besteht anderweitig keine Aufzeichnung von Heartbeats), aktiv ist (die Maschineninstanz hat kürzlich aktiv nach Aufforderungen gesucht und scheint dies noch zu tun), abgelaufen ist (die Maschineninstanz hat reagiert, seit einiger Zeit wird jedoch kein Heartbeat empfangen und daher kann die Instanz nicht in der Lage sein, Meldungen zu empfangen). Es gibt mehrere Möglichkeiten, um die Zustandsprüfung umzusetzen, darunter eine reaktive Statusprüfung (d. h. eine Einheit kann den Status der Maschineninstanz anfordern) und eine proaktive (d. h. die Statusprüfung der Maschineninstanz kann in Erwartung der Benutzerauswahl erlangt werden).
  • In einer Beispielsituation umfassend die Ressourcen 116A-16N eine bestimmte Anzahl (z. B. 20, 50, 1.000 etc.) von Instanzen von virtuellen oder anderen Maschinen, die verschiedene Aufgaben durchführen (z. B. sind einige Maschinen Dateiserver und andere sind Webserver). Der Befehl-Ausführen-Dienst 112 ermöglicht es dem Administrator 102, das Befehlsdokument 104 auszuführen, um Administration durchzuführen, um so Befehle auf die Instanzen von virtuellen oder anderen Maschinen, die verschiedene Aufgaben durchführen, anzuwenden. Wenn zum Beispiel der Administrator 102 Protokollberichte für 50 der Maschineninstanzen sammeln muss, kann der Administrator 102 über eine Benutzeroberfläche für den Befehl-Ausführen-Dienst 112 ein Befehlsdokument mit Anweisungen zum Sammeln von Protokollberichten, das Parameter zum Bestimmen der 50 Maschineninstanzen weiterleitet, ausführen, und der Befehl-Ausführen-Dienst 112 wird den Befehl zum Sammeln von Protokollberichten über die 50 Instanzen auf eine asynchrone Weise ausführen. In einigen Fällen, zu einem Zeitpunkt, nachdem das Befehlsdokument mit dem Ausführen über die 50 Instanzen abgeschlossen hat, sendet der Befehl-Ausführen-Dienst 112 die konsolidierten Ergebnisse zurück an die Benutzeroberfläche, wonach der Administrator 102 die Option für eine Gesamtansicht der Ausführung und/oder die Option zum Aufschlüsseln und Betrachten, was jede Maschine während der Ausführung getan hat oder welches Protokoll als ein Ergebnis des Ausführen des Befehlsdokuments gegenüber der Maschineninstanz gesammelt wurde, hat. Gleichermaßen, wenn der Administrator 102 einige routinemäßige administrative Aufgaben auf den 50 Maschineninstanzen durchführen muss (z. B. die Maschineninstanzen zurücksetzen, eine spezifische Datei auf den Maschineninstanzen löschen etc.) kann der Administrator 102 ein Befehlsdokument mit Anweisungen zum Durchführen der bestimmten administrativen Aufgabe ausführen (z. B. über eine Benutzeroberfläche oder in einer Befehlszeile) und das Befehlsdokument gegenüber diesen 50 Maschineninstanzen ausführen lassen.
  • Auf diese Weise können Richtlinien- und Zugriffsentscheidungen außerhalb der Maschineninstanz und nicht durch die Maschineninstanz selbst getroffen werden; das heißt, Richtlinienentscheidungen können durch den Befehl-Ausführen-Dienst 112 in Verbindung mit einem Authentifizierungsdienst getroffen werden. Dadurch können Richtlinienentscheidungen unabhängig von dem Betriebssystem, das auf der Maschineninstanz ausgeführt wird, getroffen werden; z. B. kann die Maschineninstanz unter Windows, Linux oder einer anderen Umgebung laufen, ohne die Operationen des Befehlsdokuments zu beeinträchtigen, da die Richtlinienentscheidungen außerhalb der Maschineninstanz getroffen werden. Anders ausgedrückt wird die Entscheidung, ob die Operation des Befehlsdokuments 104 für die Ausführung erlaubt oder nicht erlaubt werden soll, bereits getroffen, bevor der Operationsbefehl die Maschineninstanz erreicht.
  • Aufrufe für die Anwendungsprogrammierungsschnittstellen können über einen Hypertext Transfer Protocol Secure (HTTPS)-Endpunkt erfolgen und die Sicherheit kann durch einen Authentifizierungsdienst umgesetzt werden (z. B. verhindern, dass Aufforderungen für nicht autorisierte Benutzer erfüllt werden). Der Agent, der auf der Maschineninstanz ausgeführt wird, kann Anmeldeinformationen verwenden, die durch den Datenverarbeitungsressourcendienstanbieter oder durch den Administrator 102 bereitgestellt werden, wodurch Authentifizierung auf Kontenebene und Autorisierung für den Agenten sichergestellt werden.
  • Wie angemerkt kann das Befehlsdokument 104, das durch den Administrator 102 erstellt wird, durch Dienste des Datenverarbeitungsressourcendienstanbieters als eine andere Variation einer Standardressource erachtet werden (z. B. ähnlich zu Datenspeicherressource oder Instanz einer virtuellen Maschine). Sobald der Administrator 102 das Befehlsdokument 104 verfasst hat (d. h. definiert hat, was das Befehlsdokument 104 tun kann), kann der Administrator 102 über einen Authentifizierungsdienst eine Richtlinie für das Befehlsdokument 104 festlegen, so wie dies der Administrator 102 auch für jede andere Standardressource vornehmen kann. Zum Beispiel kann der Administrator 102 dem einen oder den mehreren Benutzern 108 Zugriff auf die Ressource gewähren: <DocumentName> (Befehlsdokument 104).
  • Nachdem das Befehlsdokument 104 auf diese Weise eingerichtet wurde, kann eine Reihe von Optionen wie etwa „Run this Command Now“ (Diesen Befehl nun ausführen), „Cancel this Command Now“ (Diesen Befehl nun abbrechen) oder „Give Me the Result of this Command“ (Liefere das Ergebnis dieses Befehls) über eine Schnittstelle für den Befehl-Ausführen-Dienst 112 für den Administrator 102 und/oder den einen oder die mehreren Benutzer 108 dargelegt werden. Auf diese Weise wird, wenn ein Benutzer (z. B. über eine Anwendungsprogrammierungsschnittstelle) „Run this Command Now“ auswählt oder aufruft, der Benutzer für das Befehlsdokument 104 angeben, dass er an einer Ausführung interessiert ist, und die Instanzen festlegen, gegenüber denen er an der Ausführung des Befehlsdokuments 104 interessiert ist. Als Ergebnis davon, dass der Befehl-Ausführen-Dienst 112 den Aufruf/die Aufforderung empfängt, kann der Befehl-Ausführen-Dienst 112 das Befehlsdokument 104 erlangen, verifizieren, dass es die Genehmigungen und die Richtlinien der aufrufenden Einheit erlauben, das Befehlsdokument 104 auszuführen, das Ziel der Operationen des Befehlsdokuments 104 bestimmen und verifizieren, dass die aufrufende Einheit über Zugriff auf das festgelegte Ziel verfügt. Bei erfolgreichen Verifizierungen kann der Befehl-Ausführen-Dienst 112 veranlassen, dass das Befehlsdokument 104 auf oder gegenüber dem festgelegten Ziel ausgeführt wird.
  • In einigen Umsetzungen kann der Befehl-Ausführen-Dienst 112 veranlassen, dass die Operationen auf oder gegenüber dem festgelegten Ziel durch Bereitstellen des Befehlsdokuments 104 an das festgelegte Ziel durchgeführt werden. Das festgelegte Ziel kann das Befehlsdokument 104 prüfen, um die durchzuführende(n) Operation(en) zu bestimmen und die Operation(en) durchzuführen, und sendet dann ein Ergebnis zurück an den Befehl-Ausführen-Dienst 112. In anderen Umsetzungen kann der Befehl-Ausführen-Dienst 112 veranlassen, dass die Operationen auf oder gegenüber dem festgelegten Ziel durch Bereitstellen der einzelnen Operationen, die in dem Befehlsdokument 104 festgelegt sind, an das festgelegte Ziel durchgeführt werden. Das festgelegte Ziel kann jede einzelne Operation durchführen und sendet das Ergebnis zurück an den Befehl-Ausführen-Dienst 112.
  • Die Ergebnisse, die durch dem Befehl-Ausführen-Dienst 112 von dem festgelegten Ziel (oder Zielen, wenn das Befehlsdokument 104 gegenüber mehreren Zielen ausgeführt wird) empfangen werden, können gesammelt/protokolliert werden. Auf diese Weise kann der Administrator 102 die Ergebnisse der durchgeführten Operationen prüfen. Der Befehl-Ausführen-Dienst 112 kann basierend auf den gesammelten Ergebnissen den Gesamtzustand der Operationen gegenüber allen festgelegten Zielen zeigen oder der Befehl-Ausführen-Dienst 112 kann die Ergebnisse für ein festgelegtes Ziel zeigen. Wenn zum Beispiel eine virtuelle Maschine von den 50 virtuellen Maschinen, die festgelegt wurden, das Befehlsdokument 104 nicht vollständig ausführen kann, kann der Administrator 102 unter Verwendung einer Schnittstelle für den Befehl-Ausführen-Dienst 112 die gesammelten Ergebnisse aufschlüsseln, um den Zustand der Maschinen anzuzeigen, wenn die Maschine nicht in der Lage war, die Aufforderung zu diesem Zeitpunkt auszuführen.
  • In einigen Ausführungsformen kann der Administrator 102 sogar eine „Erstelle ein Dokument“-Genehmigung an festgelegte Benutzer delegieren, was es den festgelegten Benutzern ermöglichen würde, deren eigne Befehlsdokumente zu erstellen. Alternativ könnte der Administrator 102 eines bestimmten Kundenkontos, das durch einen Datenverarbeitungsressourcendienstanbieter bereitgestellt wird, festlegen, dass es keinem anderen Benutzer, der mit dem Kundenkonto assoziiert ist, erlaubt ist, Befehlsdokumente zu erstellen. Der Effekt dieses Falls würde darin bestehen, dass all anderen Benutzer des Kontos nur bestehende Dokumente, für die ihnen der Administrator 102 die Genehmigung zum Ausführen erteilt hat, ausführen können. In einem anderen Szenario könnte der Administrator 102 einem bestimmten Benutzer, wie etwa einem Benutzer mit hohen Privilegien, eine Genehmigung zum Erstellen von Befehlsdokumenten erteilen. In einigen Umsetzungen kann der Administrator 102 Beschränkungen für die Arten von Dokumenten, die andere Benutzer erstellen können, einsetzen. Zum Beispiel könnte der Administrator 102 einem Benutzer eine Genehmigung zu Erstellen eines Befehlsdokuments erteilen, aber festlegen, dass das erstelle Befehlsdokument nur bestimmte Arten von Operationen, die durch den Administrator 102 festgelegt werden, beinhalten kann.
  • Befehlsdokumente können mehrere Befehle beinhalten und bei Ausführung des Befehl-Ausführen-Dienstes 112 die Warteschlangenbildung, Ausführung und Berichterstattung für jeden Befehl handhaben. Um zum Beispiel ein Befehlsdokument zu veranlassen, Skript-Dateien auszuführen, die an einem bestimmten Ort existieren, kann ein Befehlsdokument mit Befehlen wie den folgenden konfiguriert werden:
  •       Invoke-SSMCommand -InstanceID ‚i-12345678‘ -DocumentName
          'webservices:RunScript' -Parameters
          @{Script=‚c:/tools/AddUsers.PSl‘ }
          Invoke-SSMCommand -InstanceID ‚i-12345678‘ -DocumentName
          'webservices:RunScript' -Parameters
          @{Script=‚c:/UpdateTask.vbs‘ }
  • In einigen Ausführungsformen kann es der Befehl-Ausführen-Dienst 112 dem Administrator 102 und/oder autorisierten Benutzern erlauben, einen Verlauf von Befehlen über einen bestimmten zurückliegenden Zeitraum (z. B. 90 Tage) unter Verwendung einer Anwendungsprogrammierungsschnittstelle abzurufen. In Ausführungsformen muss die Ausführung eines Befehlsdokuments nicht vor dem Ausführen eines anderen Befehlsdokuments abgeschlossen sein. Zum Beispiel kann der Befehl-Ausführen-Dienst 112 mehrere Aufträge von dem einen oder den mehreren Benutzern 108 empfangen, um das Befehlsdokument 104 auszuführen, und die Befehlsdokumente können in der Reihenfolge ausgeführt werden, in der sie durch den Befehl-Ausführen-Dienst 112 empfangen werden. In einigen Umsetzungen können jedoch Drosselgrenzen vorhanden sein, um nicht mehr als eine vorbestimmte Anzahl von Befehlen gegenüber einer bestimmten Instanz in eine Warteschlange zu setzen. In einigen Umsetzungen können Drosselgrenzen basierend auf der Art von Instanz (z. B. können Instanzen mit größerer Speichermenge und/oder Verarbeitungsleistung höhere Drosselgrenzen aufweisen als Instanzen mit weniger Speicher und weniger Verarbeitungsleistung) oder der Art von Kundenkonto (z. B. kann ein Kunde des Datenverarbeitungsressourcendienstanbieters zusätzlich für eine höhere Drosselgrenze zahlen) variieren.
  • Der Ausführungsstatus (z. B. wo jede Instanz in dem Prozess steht) eines ausgeführten Befehlsdokuments kann durch Aufrufen einer Status()-Anwendungsprogrammierungsschnittstelle und programmgestütztes (z. B. von einer ausführenden Softwareanwendung) Weiterleiten der „Befehls-ID“, die mit dem ausgeführten Befehlsdokument assoziiert ist, über eine Befehlszeile oder über eine Benutzeroberfläche geprüft werden. In einigen Umsetzungen kann der Befehl-Ausführen-Dienst 112 auch dazu konfiguriert sein, sich in andere Dienste des Datenverarbeitungsressourcendienstanbieters zu integrieren, wie etwa die Fähigkeit zum Empfangen von Telemetriemetriken als Parameter, von einem Telemetriedienst des Datenverarbeitungsressourcendienstanbieters.
  • Die Umgebung 100 kann mit verschiedenen Sicherheitsmaßnahmen konfiguriert sein. Zum Beispiel kann der Befehl-Ausführen-Dienst 112 validieren, dass der Benutzer, der das Befehlsdokument 104 ausführt, über Zugriff auf das Befehlsdokument 104 verfügt, ohne Anmeldeinformationen über das Netzwerk in Klartext zu senden. Wie angemerkt, kann der Befehl-Ausführen-Dienst 112 einen Verlauf bereitstellen, der nachverfolgt werden kann, wodurch es dem Administrator 1022 ermöglicht wird, zu prüfen, welche Befehle gegenüber einer beliebigen Ressource ausgeführt wurden. In einigen Umsetzungen kann ein Protokoll von Befehlen, die gegenüber der Instanz umgesetzt wurden, durch eine Agentensoftware erzeugt werden, die auf der Instanz ausgeführt wird, und die Agentensoftware kann das Protokoll periodisch, auf Abruf oder als Reaktion auf ein anderes Ereignis an den Befehl-Ausführen-Dienst bereitstellen. Auf diese Weise kann der Administrator 102 dazu in der Lage sein, einen Verlauf von allen Befehlen und unterstützenden Details für diese Befehle gegenüber jeder Instanz anzuzeigen.
  • In verschiedenen Ausführungsformen und Umsetzungen können eine oder mehrere Ressourcen 116A-16N Instanzen von virtuellen Maschinen sein, die auf physischen Hosts des Datenverarbeitungsressourcendienstanbieters gehostet werden. In einigen Beispielen kann sich „virtuelle Maschine“ auf eine Emulation auf Software und/oder Hardware eines physischen Computersystems beziehen, sodass sich die Software, die in der Umgebung der virtuellen Maschine ausgeführt wird, so verhält als ob die virtuelle Maschine ein physischer Computer wäre. Da es jedoch vorgesehen ist, dass Ausführungsformen der vorliegenden Offenbarung auch für nicht-virtuelle Datenverarbeitungsvorrichtungen umgesetzt werden können, kann sich „Maschineninstanz“, so wie hierin verwendet, auf virtuelle und nicht-virtuelle Datenverarbeitungsvorrichtungen beziehen. Obwohl sich die vorliegende Offenbarung in vielen Ausführungsformen auf „Instanzen“ bezieht, ist es auch vorgesehen, dass die Ressourcen 116A-16N andere Ressourcen als virtuelle und nicht-virtuelle Maschinen beinhalten können, darunter Netzwerke, Datenbanken und nicht-virtuelle Speichervorrichtungen.
  • Der Befehl-Ausführen-Dienst 112 kann eine Reihe von Befehlen bereitstellen, die allgemein verwendeten administrative und verwaltungsbezogene Handlungen darlegen. Die Fähigkeit, das Befehlsdokument 104 zu definieren und es dem einen oder den mehreren Benutzern 108 zu ermöglichen, Handlungen wie Zurücksetzen von Passwörtern und Durchführen von verschiedenen anderen Verwaltungsaufgaben zu ermöglichen, bietet dem Administrator 102 die Fähigkeit, die eine oder die mehreren Ressourcen 116A-16N über delegierte Administration zu verwalten.
  • Eine Liste von beispielhaften
  • Dokumentenanwendungsprogrammierungsschnittstellen für Erstellung und Verwaltung von Befehlsdokumenten kann CreateDocument(), GetDocument(), DeleteDocument(), DescribeDocument() und ListDocument() (liefert eine Liste aller Dokumente; kann nur öffentliche Dokumente liefern, wenn -public festgelegt ist) umfassen.
  • Eine Beispielantwort für das Aufrufen von DescribeDocument() kann wie folgt sein:
  •       DocumentDescription
           {
                 CreatedDate
                 Name
                 Sha1
                 Status
                 Description
                 List <Parameters>
           }
  • Parameter für DescribeDocument können Folgendes beinhalten:
  •        Parameters
           {
                 Name
                 Type
                 Description
                 DefaultValue
           }
  • Eine Liste von beispielhaften Dokumentenanwendungsprogrammierungsschnittstellen zum Verwalten von Beziehungen zwischen Befehlsdokumenten und Ressourcen kann CreateAssociation(), CreateAssociationBatch(), DeleteAssociation(), DescribeAssociation(), DescribeCommand() (erlangt einen Befehlsdokumentennamen und Parameter für eine gegebene Befehls-ID, IDs/Tags für abgezielte Instanzen), GetCommandStatus() (erlangt den Zustand und eine Antwort eines ausführenden Befehlsdokuments für jede Instanz, an die das Befehlsdokument gesendet wurde), ListAssociations() und UpdateAssociationStatus() umfassen. Eine Liste von beispielhaften Anwendungsprogrammierungsschnittstellen zum Verwalten der Interaktion zwischen Dokumenten und Ressourcen (z. B. Instanzen von virtuellen Maschinen) kann SendCommand() (führt das festgelegte Befehlsdokument aus und liefert eine Befehls-ID), ListCommands() (Liste von angeforderten Befehlsdokumenten), ListCommandInvocations() (Liste von Befehlsaufrufen), ListRecentCommands() (erlangt eine Liste von kürzlich aufgerufenen Befehlsdokumenten für eine Instanz oder für das Konto) und CancelCommand() (versucht, ein ausführendes Befehlsdokument für eine festgelegte Befehls-ID für eine Ressource oder alle Ressourcen, an die die Befehle des Befehlsdokuments gesendet wurden, abzubrechen) umfassen.
  • Die SendCommand()-Anwendungsprogrammierungsschnittstelle sendet das festgelegte Befehlsdokument an eine oder mehrere Maschineninstanzen. Dieser Aufruf ist asynchron und liefert eine Befehls-ID, die dazu verwendet werden kann, den Status des Befehlsdokuments abzufragen. Parameter für SendCommand() können Folgendes beinhalten:
    Figure DE112016004896T5_0001
    Figure DE112016004896T5_0002
  • Eine Beispielantwort für das Aufrufen von SendCommand() kann wie folgt sein:
  •       Command
           {
                 CommandId
                 DocumentName
                 Comment
                 Parameters
                 Timeout
                 List<InstanceId>
                 RequestedDateTime
                 Status {Pending, Invalid Request, In Progress,
                 Completed, Failed, Cancel Requested, Cancelled}
           }
  • Parameter für DescribeCommand() können Folgendes beinhalten:
    Figure DE112016004896T5_0003
  • Eine Beispielantwort für das Aufrufen von DescribeCommand() kann wie folgt sein:
  •       {
                  Name: „WebServices:PowerShell“,
                  Created: „2015-03-49-23-34“,
                  State: „Invoked“,
                  instanceIds: „i-12345678, i-12345679“,
                  Tags: "",
                  Parameters @{Script=‚ipconfig /all‘}
            }
  • GetCommandStatus()-Parameter können Folgendes beinhalten:
    Figure DE112016004896T5_0004
  • Eine Antwort auf den Aufruf von GetCommandStatus kann eine Antwort für jede Instanzen-ID beinhalten, was eine Instanzen-ID, einen Zustand (z. B. „Pending“ (Ausstehend), „Invalid Request“ (Ungültige Aufforderung), „In Progress“ (In Bearbeitung), „Completed“ (Abgeschlossen), „Failed“ (Fehlgeschlagen), „Cancel Requested“ (Abbrechen angefragt), „Cancelled“ (Abgebrochen) etc.) und Antworten von jedem Plug-In innerhalb des Befehlsdokuments, das aufgerufen wurde, enthalten kann. Eine Antwort von einem Plug-In kann einen Plug-In-Namen (Name des Plug-Ins), einen Antwortcode (durch Plug-In berichteten Antwortcode), eine Antwortzeit (Zeit für Antwort), einen Antwortstatus (z. B. „Pending“, „In Progress“, „Completed“, „Failed“ etc.), Antwortausgabe (Inhalt durch Plug-In zu bestimmen) und Ausgabeverknüpfung (Verknüpfung, wo erweiterte Ausgabeprotokolle zu finden sind) umfassen. Ein Plug-In kann eine Softwarekomponente sein, die an Benutzer und Administratoren des Befehl-Ausführen-Dienstes 112 bereitgestellt wird, um spezielle Operationen durchzuführen. Beispiele für Plug-Ins, die durch den Befehl-Ausführen-Dienst 112 unterstützt werden können, umfassen Plug-Ins für Telemetriedatensammlung, Plug-Ins zum Beitreten zu einer Domäne, Windows PowerShell-Plug-In, verschiedene Plug-Ins zum Ausführen von Skript-Dateien, Messaging-Handler-Plug-Ins und so weiter.
  • Eine Beispielantwort für das Aufrufen von ListCommands() kann wie folgt sein:
  •       List<Command>
  • Parameter für ListCommands() können CommandId und InstanceId umfassen. Eine Beispielantwort für das Aufrufen von ListCommandInvocations() kann Folgendes beinhalten:
  • List<CommandInvocation>
          CommandInvocation
           {
                 CommandId
                 InstanceId
                 DocumentName
                 Comment
                 Timeout
                 RequestedDateTime
                 Status {Pending, Invalid Request, In Progress,
                 Completed, Failed, Cancel Requested, Cancelled}
                 List <CommandPlugin>
           }
          CommandPlugin
           {
                  Name
                  Status {Pending, In Progress, Completed, Failed}
                  ResponseCode
                  ResponseStartDateTime
                  ResponseFinishDateTime
                  Output [5K max]
                  TraceOutput [5K max]
                  OutputFolder
           }
  • Parameter für ListCommandInvocations() können CommandId und InstanceId umfassen. Details, CommandId und InstanceIds. Parameters für CancelCommand() können CommandId und InstanceId (IDs für die Instanzen, auf denen das ausführende Befehlsdokument entsprechend der Befehls-ID abgebrochen werden soll) umfassen. Parameter für ListRecentCommands können Folgendes beinhalten:
    Figure DE112016004896T5_0005
  • Eine Antwort auf den Aufruf von ListRecentCommands() kann eine Liste von kürzlich aufgerufenen Befehls-IDs in chronologischer Reihenfolge (zuletzt aufgerufen zuerst) umfassen.
  • Eine Liste von beispielhaften Agentenanwendungsprogrammierungsschnittstellen kann DescribeInstanceInformation() (liefert Instanzeninformationen (z. B. letzter Heartbeat) für Maschineninstanzen, die im Befehl-Ausführen-Dienst 112 registriert sind) und UpdateInstanceInformation() (von Agent verwendet, um Maschineninstanzinformation und Ping-Status zu aktualisieren) umfassen. Eine Beispielantwort für das Aufrufen von DescribeInstanceInformation() kann Folgendes beinhalten:
  •       List <InstanceInformation>
          InstanceInformation
          {
                 InstanceId,
                 PingStatus {Online, LostConnection}
                 LastPingDateTime
                 AgentVersion
                 IsLatestVersion
                 NextToken
          }
  • Parameter für Describelnstancelnformation() können Folgendes beinhalten:
  •        {
                 InstanceInformationFilterList,
                 Filter keys {InstanceIds, PingStatus,
                 IsLatestVersion, AgentVersion},
                 MaxResult,
                 NextToken
           }
  • Beispielparameter für UpdateInstanceInformation() können Folgendes beinhalten:
  •        {
                 "InstanceInformationList": [
                 {
                        "Key": „Instanceld“,
                        "Value": „i-12345678“ 
                 },
                 {
                        "Key": „AgentVersion“,
                        "Value": „3.1.2.3“
                 },
                 {
                        "Key": „Agentstatus“,
                        "Value": „Online“
                 }
                 }
                 ]
           {
  • Der Befehl-Ausführen-Dienst 112 kann vordefinierte Vorlagen für Befehlsdokumente bereitstellen. Der Administrator 102 kann über eine Anwendungsprogrammierungsschnittstelle oder Benutzeroberfläche sein eigenes Befehlsdokument basierend auf den vordefinierten Vorlagen gestalten, sodass dieses den spezifischen Befehl enthält, der in dem Befehlsdokument 104 zur Ausführung enthalten sein soll.
  • Indem es dem Administrator erlaubt wird, über Zugriffsverwaltungsgenehmigungen und -richtlinien festzulegen, welche Benutzer auf Befehlsressourcen zugreifen können und welche Handlungen von Benutzern auf Kundeninstanzen durchgeführt werden können, stellt der Befehl-Ausführen-Dienst eine delegierte Administration bereit. Der Befehl-Ausführen-Dienst sammelt einen detaillierten Verlauf der Befehle, die Benutzer gegenüber deren Maschineninstanzen ausführen, einschließlich einer Prüfung der Befehlsausgabe, wodurch die Fähigkeit bereitgestellt wird, die Nutzung von Befehlsdokumenten zu prüfen und zu berichten. Ein Befehl-Ausführen-Agent kann auf einem Remote-Host, der die Maschineninstanzen hostet, ausgeführt werden, wobei der Agent für das Ausführen von Befehlen an Remote-Instanzen verantwortlich ist. Der Befehl-Ausführen-Agent kann eine Reihe von innerhalb der Maschineninstanz ausgeführten Anweisungen sein, die als Antwort auf Aufforderungen von dem Befehl-Ausführen-Dienst die Instanzkonfiguration interpretieren und Operationen durchführen, wie etwa Operationen, die in einem Befehlsdokument festgelegt sind.
  • Wenn eine abgezielte Ressource nicht ausgeführt wird oder nicht reagiert, wenn ein Befehlsdokument ausgeführt wird, kann der Befehl-Ausführen-Dienst das Befehlsdokument in eine Warteschlange setzen, um zu einem Zeitpunkt, zu den die Ressource wieder reagiert, ausgeführt zu werden. Der Befehl-Ausführen-Dienst kann das Befehlsdokument in eine Warteschlange setzen und versuchen, es bis zu einem Schwellenwert für die Zeitmenge (z. B. 31 Tage) nach dem erstmaligen Platzieren in der Warteschlange auszuführen. Benutzer können mehrere Befehlsdokumente gleichzeitig ausführen und der Befehl-Ausführen-Dienst wird das Setzen in eine Warteschlange, die Ausführung und die Berichterstattung von jedem Befehlsdokument handhaben. In einigen Ausführungsformen können Drosselgrenzen die Anzahl von Befehlsdokumenten, die innerhalb eines gegebenen Zeitrahmens ausgeführt werden können, beschränken, z. B. nicht mehr als 60 ausgeführte Befehlsdokumente pro Minute pro Instanz etc.). Ein Benutzer kann versuchen, ein Befehlsdokument zu beenden oder abzubrechen, wenn das Befehlsdokument in einem ausstehenden oder ausführenden Zustand ist, und der Dienst wird versuchen, die Ausführung des Befehlsdokuments zu stoppen. Wenn zum Beispiel die Befehle des Befehlsdokuments bereits an einen oder mehrere Agenten, die auf der einen oder den mehreren Ressourcen 116A-16N ausgeführt werden, zur Ausführung gesendet wurden, kann der Befehl-Ausführen-Dienst 112 versuchen, die Ausführung des Befehlsdokuments zu stoppen, indem eine Aufforderung an den oder die Agenten gesendet wird, die Ausführung der Befehle abzubrechen. In Abhängigkeit von einer Antwort von dem oder den Agenten, ob der Agent oder die Agenten in der Lage waren, die Ausführung der Befehle zu beenden (oder zurückzusetzen), kann ein Status des Befehlsdokuments auf „cancelled“ (abgebrochen) oder „failed to cancel“ (Abbrechen fehlgeschlagen) aktualisiert werden. Als ein anderes Beispiel kann in einem Fall, in dem der Status des Befehlsdokuments „pending“ (ausstehend) ist (z. B. die Befehle wurden nicht an den oder die Agenten zur Ausführung gesendet) ist, der Befehl-Ausführen-Dienst 112 das Befehlsdokument oder Befehle von einer Liste von Befehlen in einer Warteschlange entfernen (oder das Befehlsdokument oder Befehle als Reaktion aus deren Freigabe aus der Warteschlange ignorieren) und den Status des Befehlsdokuments auf „cancelled“ aktualisieren.
  • In einigen Ausführungsformen kann der Befehl-Ausführen-Dienst 112 eine Löschanwendung nutzen. Die Löschanwendung kann ein Dienst oder eine Anwendung sein, der/die periodisch ausgeführt wird, um alten (d. h. einen Schwellenwert für die Altersgrenze übersteigenden) Verlauf von Ausführung von Befehlsdokumenten und von Antworten aus dem dauerhaften Speicher zu entfernen (z. B. Löschen und Komprimieren von Datensätzen im Datenbankdienst 248 von 2). Wie angemerkt, kann der Datenverarbeitungsressourcendienstanbieter, der den Befehl-Ausführen-Dienst anbietet, an die Benutzer vordefinierte Befehlsdokumente bereitstellen. Ein Benutzer kann in der Lage sein, eine Liste von verfügbaren Befehlsdokumenten über einen Befehl, der in einer Befehlszeilenschnittstelle vorgenommen wird, zu erlangen, wie etwa:
  •       > Get-SSMDocumentList -Public
  • Daraufhin kann der Benutzer Informationen empfangen, wie etwa die folgenden:
    WebServices Provided Command document Templates
    WebServices:DomainJoin
    WebServices:PowerShellScript
  • Weitere Informationen über einzelne Befehlsdokumente können über einen Befehl, der in einer Befehlszeilenschnittstelle vorgenommen wird, erlangt werden, wie etwa:
  •       > Get-SSMDocumentDescription -Name
          "WebServices:PowerShellScript"
  • Daraufhin kann der Benutzer Informationen empfangen, wie etwa die folgenden:
    Property Values
    Name WebServices:PowerShellScript
    Description Run Command Template for executing a PowerShell script
    Parameters @[script]
    Sha1 1D13B793702E79F106BEA9E4CD611C865236B60C
  • Damit der Benutzer ein Befehlsdokument ausführen kann, kann der Benutzer das Befehlsdokument mit Namen festlegen und Parameterwerte angeben. Zum Beispiel:
  •       > Invoke-SSMCommand -InstanceId „i-12345678“ -Name
          "WebServices:PowerShell" -Parameters @{Script=‚ipconfig
          /all‘}
  • Erstellen der Befehlsdokumente, Zuweisen von Genehmigungen und Ausführen von Dokumenten kann über eine Benutzeroberfläche durchgeführt werden, wie etwa die Benutzeroberfläche, die in 3 veranschaulicht ist.
  • 2 veranschaulicht einen Aspekt einer Umgebung 200, in der eine Ausrührungsform praktiziert werden kann. Insbesondere stellt die Umgebung 200 einen asynchronen Ausführungsfluss eines Befehlsdokuments dar. In der Umgebung 200 übermittelt der Benutzer 208 eine Aufforderung per Schnittstelle 254 über ein Netzwerk 262A an eine Steuerebene 252 eines Befehl-Ausführen-Dienstes 212. Der Benutzer 208 kann eine Einheit sein, wie etwa der Administrator 102 oder der eine oder die mehrere Benutzer 108 aus 1, und der Befehl-Ausführen-Dienst 212 kann ähnlich dem Befehl-Ausführen-Dienst 112 aus 1 sein. Die Steuerebene 252 des Befehl-Ausfuhren-Dienstes 212 ist eine Komponente des Befehl-Ausführen-Dienstes, der Anwendungsprogrammierungsschnittstellen an die Schnittstelle 254 bereitstellt. Die Schnittstelle 254 kann eine Schnittstelle sein, die es Einheiten wie etwa Benutzern, Administratoren und Softwareanwendungen ermöglicht, mit dem Befehl-Ausführen-Dienst 212 zu kommunizieren. Beispiele für die Schnittstelle 254 beinhalten eine Befehlszeilenschnittstelle oder eine Konsole, web-basiert oder anderweitig.
  • Die Netzwerke 262A-62B können Kommunikationspfade zwischen zumindest zwei Einheiten darstellen (z. B. zwischen dem Benutzer 208 und dem Befehl-Ausführen-Dienst 212, zwischen dem Agent 264 und dem Messaging-Dienst 250 etc.). Beispiele für die Netzwerke umfassen das Internet, ein lokales Netzwerk, ein Weitbereichsnetzwerk und Wi-Fi. Der übermittelte Befehl kann in dem Datenbankdienst 248 in Verbindung mit einer Reihe von festgelegten Instanzen 216 protokolliert werden. Der Datenbankdienst 248 kann ein Dienst des Datenverarbeitungsressourcendienstanbieters, der eine organisierte Sammlung von Daten, wie etwa Tabellen, Abfragen, Berichte, Ansichten und andere Objekte, an Kunden des Datenverarbeitungsressourcendienstanbieters bereitstellt, oder andere Ressourcen oder Dienste des Datenverarbeitungsressourcendienstanbieters sein. Die Befehle innerhalb des Befehlsdokuments, das durch den Benutzer 208 bereitgestellt wird, kann als eine Reihe von Meldungen innerhalb der Warteschlange 246 gespeichert werden.
  • Die Warteschlange 246 kann eine Sammlung von Datenverarbeitungsressourcen sein, die dazu konfiguriert sind, als ein Meldungsspeicher betrieben zu werden, der es verschiedenen Datenverarbeitungsressourcen des Datenverarbeitungsressourcendienstanbieters ermöglicht, eine oder mehrere Meldungen, die durch andere Datenverarbeitungsressourcen des Datenverarbeitungsressourcendienstanbieters zu lesen sind, zu speichern. Die Warteschlange 246 kann durch einen Warteschlangendienst wie etwa RabbitMQ, Java Message Service und Microsoft Message Queuing bereitgestellt werden. Ein solcher Warteschlangendienst kann ein Warteschlangendienst sein, der Advanced Message Queuing Protocol (AMQP) nutzt. In anderen Umsetzungen können die Warteschlangen 246 ein oder mehrere Datensätze in einer Datenbanktabelle, ein oder mehrere Felder, ein oder mehrere zirkuläre Puffer, eine oder mehrere verknüpfte Listen, ein oder mehrere Stapel oder eine oder mehrere ähnliche Datenstrukturen sein. Jede Meldung, die an die Warteschlange 246 bereitgestellt wird, kann eine beliebige Variation von Text umfassen, wie etwa Programmiercode, einheitliche Ressourcenkennungen für Datenobjekte und andere Anweisungen. In einigen Ausführungsformen ist die Warteschlange 246 als eine Warteschlange von „unverarbeiteter Arbeit“ implementiert, wobei Meldungen, die unverarbeitete Befehlsdokumente darstellen, für eine Zeitdauer (z. B. 31 Tage) beibehalten werden können.
  • Eine erste Meldung kann dann bei dem Befehl-Ausführen-Dienst 212 von einer Warteschlange 246 empfangen werden. Der Befehl-Ausführen-Dienst 212 kann durch Bezugnahme auf einen Dateneintrag bei dem Datenbankdienst 248 verifizieren, dass der Status des Befehls angibt, dass das Befehlsdokument noch nicht an die Reihe von festgelegten Instanzen 216 zur Ausführung gesendet wurde (z. B. nicht „Sent“ (Gesendet)). Der Befehl-Ausführen-Dienst 212 kann den Status in dem Datenbankdienst aktualisieren, um anzugeben, dass die Ausführung des Befehls beginnt (z. B. „Work in Progress“ (In Bearbeitung)). Der Befehl-Ausführen-Dienst 212 kann eine Reihe von Instanzen-IDs (z. B. Instanzen-IDs, die durch den Benutzer 208 festgelegt werden; IDs für Instanzen, die einem Tag entsprechen, das durch den Benutzer 208 festgelegt wird, die über eine Aufforderung an einen virtuellen Datenverarbeitungssystemdienst des Datenverarbeitungsressourcendienstanbieters für die Instanzen-IDs von Instanzen, die mit dem festgelegten Tag assoziiert sind, erlangt werden können etc.). Wenn die Ausführung für einzelne Instanzen in der Reihe von festgelegten Instanzen abgeschlossen ist, können diese verarbeiteten Instanzen-IDs aus der Reihe von Instanzen-IDs entfernt werden, wodurch nur IDs für Instanzen verbleiben, die noch bearbeitet werden.
  • Der Messaging-Dienst 250 kann ein Datenverarbeitungssystem (z. B. Computervorrichtung oder Sammlung von verteilten Datenverarbeitungsvorrichtungen) sein, das als Reaktion auf eine Aufforderung von einer anderen Einheit (z. B. dem Befehl-Ausführen-Dienst 212, der Reihe von festgelegten Instanzen 216 etc.) Meldungen an eine oder mehrere andere Einheiten (z. B. die Warteschlange 246 etc.) herausgibt. Der Messaging-Dienst kann Meldungen unter Verwendung von einer oder mehreren Technologien übertragen, die für die Übertragung von Informationen von dem Meldungsdienst an eine andere Einheit nutzbar sind. Die Messaging-Dienst-Steuerebene 258 kann dazu verwendet werden, Befehle und/oder Befehlsdokumente an die Reihe von festgelegten Instanzen 216 zu senden. Die Steuerebene 252 kann eine Komponente des Messaging-Dienstes 250 sein, die Befehle an Agenten 264 sendet, die auf der Reihe von festgelegten Instanzen 216 ausgeführt werden, und Antworten/Ergebnisse der Ausführung der Befehle gegenüber der Reihe von festgelegten Instanzen 216 von den Agenten 264 empfängt. Die Reihe von festgelegten Instanzen 216 kann eine Reihe von einer oder mehreren Instanzen von virtuellen Maschinen oder eine Art von Ressource, die in Bezug auf die eine oder mehreren Ressourcen 116A-16N aus 1 beschrieben ist, sein.
  • Für jede Instanz der Reihe von festgelegten Instanzen 216 kann eine Autorisierung zum Ausführen des Befehlsdokuments gegenüber der Instanz durch den Benutzer 208 verifiziert werden. Bei Verifizierung kann der Befehl-Ausführen-Dienst 212 den aus der Warteschlange 246 empfangenen Befehl an den Messaging-Dienst 250 senden, damit dieser an einen Agenten zur Ausführung gegenüber der Instanz gesendet wird. Die Agenten 264 können Softwareanwendungen sein, die lokal innerhalb einer Instanz oder lokal für den physischen Host, der die Instanz hostet, ausgeführt werden. Die Agenten 264 können als Vermittler (z. B. Proxys) zwischen einer externen Einheit und der Instanz fungieren (z. B. zwischen dem Messaging-Dienst 250 und der Instanz). Bei Abschluss oder Beendigung des Befehls bei ihrer entsprechenden Instanz können die Agenten 264 Ergebnisse (z. B. „Completed“ (Abgeschlossen), „Error“ (Fehler), „Cancelled“ (Abgebrochen) etc.) der Befehlsausführung zurück an den Messaging-Dienst 250 senden. Der Messaging-Dienst 250 kann die Ergebnisse als Meldungen in die Warteschlange 246 schieben. Der Befehl-Ausführen-Dienst 212 kann die Ergebnisse von der Warteschlange 246 empfangen und veranlassen, dass der Status der Befehle beim Datenbankdienst 248 aktualisiert wird.
  • In Verbindung mit dem Senden der Meldung an den Messaging-Dienst 250 kann der Befehl-Ausführen-Dienst 212 den Status des Befehlsdokuments für diese bestimmte Instanz mit dem Datenbankdienst 248 auf „Sent“ (Gesendet) aktualisieren und veranlassen, dass die erste Meldung aus der Warteschlange 246 entfernt wird. Wenn Meldungen aus der Warteschlange 246 entfernt werden, kann der Befehl-Ausführen-Dienst 212 veranlassen, dass der Status des Befehls beim Datenbankdienst 248 aktualisiert wird (z. B. „Completed“ (Abgeschlossen)). Der Benutzer 208 kann die Schnittstelle 254 dazu verwenden, die Status der Befehle von dem Datenbankdienst 248 über den Befehl-Ausführen-Dienst 212 zum Anzeigen abzurufen.
  • 3 veranschaulicht ein Beispiel einer Benutzeroberfläche 300 einer Ausführungsform der vorliegenden Offenbarung. Die Benutzeroberfläche 300 kann eine Liste von Ressourcen umfassen, wie etwa eine Liste von Instanzen in einem Instanzenbereich 316, gegenüber denen das Befehlsdokument ausgeführt wird. Die Liste von Instanzen in dem Instanzenbereich 316 kann auf den Ergebnissen davon abhängen, wie eine Benutzeroberfläche einen Befehl-Ausführen-Dienst mit einem DecribeInstanceInformation()-Anwendungsprogrammierungsschnittstellenaufruf aufruft, was eine Reihe von Instanzenkennungen umfassen kann, die mit einem Kundenkonto bei dem Datenverarbeitungsressourcendienstanbieter assoziiert sind. In Antwort darauf kann die Benutzeroberfläche Informationen empfangen, die angeben, welche der Instanzen dazu in der Lage sind, Befehle auszuführen.
  • Um ein Befehlsdokument auszuführen, kann ein Benutzer wie etwa der eine oder die mehreren Benutzer 108 oder der Administrator 102 aus 1, damit beginnen, eine Reihe von einer oder mehreren Maschineninstanzen aus der Liste von Instanzen auszuwählen. Wie in der Benutzeroberfläche 300 ersichtlich wurde „Webserver 02“ auf diese Weise ausgewählt. Nach der Auswahl der einen oder der mehreren Maschineninstanzen kann der „Run Command“ (Befehl ausführen) aus einem Kontextmenü 318 auswählen. Durch Auswählen von „Run Command“ kann die Benutzeroberfläche reagieren, indem ein Fenster geöffnet wird, wie etwa der Pop-Up-Dialog 420 aus 4 und das Fenster 620 aus 6, was es dem Benutzer ermöglicht, ein auszuführendes Befehlsdokument oder Skript einzugeben. Als Reaktion darauf, dass der Benutzer nach dem Eingeben des auszuführenden Befehlsdokuments oder Skripts auf eine Übermittlungsschaltfläche klickt, kann das Befehlsdokument oder Skript gegenüber der ausgewählten Reihe von Instanzen ausgeführt werden. Die Ausgabe von der Ausführung des Befehlsdokuments kann in einem Statusbereich verfügbar sein, wie etwa dem Ausgabebereich 822 aus 8.
  • Der Beschreibungsbereich 336 kann einen aktuellen Status der ausgewählten Instanz anzeigen. Klicken auf „Command History“ (Befehlsverlauf) kann dem Benutzer einen Bildschirm anzeigen, in dem die Befehlsdokumente, die gegenüber der Instanz ausgeführt wurden, detailliert dargelegt werden, einschließlich der Zeit, zu der sie ausgeführt wurden, dem Ergebnis der Ausführung und so weiter. Klicken auf eine Befehlsverknüpfung 366 kann dem Benutzer einen Bildschirm (nicht dargestellt= anzeigen, der alle Befehlsdokumente auflistet, die unter dem Konto ausgeführt wurden oder werden, einschließlich solcher Daten wie Befehls-ID, Status (z. B. „Completed“, „Pending“, „Failed“ etc.), Maschineninstanz-ID und/oder Kommentare. Wenn der Benutzer es nicht wünscht, alle Befehlsdokumente anzuzeigen, die ausgeführt wurden oder werden, kann der Bildschirm die Fähigkeit bereitstellen, die Laste nach verschiedenen Kriterien zu filtern, wie etwa zum Anzeigen nur von abgeschlossenen Aufgaben, Befehlsdokumenten innerhalb eines spezifischen Zeitrahmens und so weiter. In einigen Umsetzungen kann der Befehlsverlauf Befehle über einen beschränkten Zeitraum (z. B. 90 Tage) in der Liste beibehalten.
  • 4 veranschaulicht ein anderes Beispiel einer Benutzeroberfläche 400 einer Ausrührungsform der vorliegenden Offenbarung. Die Benutzeroberfläche 400 kann einen Pop-Up-Dialog 420 beinhalten, der dargelegt wird, um es dem Benutzer zu ermöglichen, das Befehlsdokument auszuwählen, um den Befehls-Workflow zu starten. Hilfstext und Beschreibungsfelder/-markierungen 424 (z. B. Tooltips) können, falls möglich, bereitgestellt werden, um die Benutzer anzuleiten und den Kontext für jedes Feld bereitzustellen, und erforderliche und optionale Felder können visuell gekennzeichnet werden. Die „Target Instances“ (Zielinstanzen) können die Reihe von Instanzen darstellen, die aus dem Instanzenbereich 316 von 3 ausgewählt wurden. Der Befehls-Dropdown 428 kann vordefinierte veröffentlichte Befehlsdokumente und/oder zusätzliche, vom Benutzer erzeugte Dokumentation enthalten. Eine Verknüpfung „learn more“ (mehr erfahren) kann für zusätzliche Hilfe und/oder als Erinnerung dafür, was die einzelnen Felder tun, hinzugefügt werden.
  • Beispiele für Befehlsdokumente, die in dem Pop-Up-Dialog 420 ausgewählt werden können, können Befehlsdokumente zum Beitreten zu einer Verzeichnisdienstdomäne (gezeigt), Befehlsdokumente zum Installieren einer Anwendung (nicht gezeigt), Installieren eines Windows PowerShell-Moduls (nicht gezeigt) und so weiter beinhalten.
  • Basierend auf dem ausgewählten Befehlsdokument und den jeweiligen Parametern, die mit dem Befehlsdokument assoziiert sind, kann der Pop-Up-Dialog 420 sich selbst aktualisieren, um Formularfelder 430 zu beinhalten, die mit den Parametern assoziiert sind. Zum Beispiel zeigt die Benutzeroberfläche 400 eine Reihe von Formularfeldern, wie dies für das Befehlsdokument zum Beitreten zu einer Verzeichnisdienstdomäne geeignet wäre. Wenn das ausgewählte Befehlsdokument stattdessen ein Dokument zum Installieren einer Anwendung wäre, kann dem Benutzer eine andere Reihe von Formularfeldern angezeigt werden, wie etwa Anwendungspfad, Markierung und so weiter. Die Formularfelder 430 können mit Standardwerten vorausgefüllt sein. Wenn der Benutzer mit der Auswahl des Befehlsdokuments und der Parameterwerte zufrieden ist, kann der Benutzer auf die Ausführen-Schaltfläche 432 klicken, um das ausgewählte Befehlsdokument gemäß den festgelegten Parametern auszuführen.
  • Es ist zu beachten, dass die Formularelemente in den vorhergehenden und nachfolgenden Figuren nur veranschaulichend sind und dass die jeweils verwendeten Formularelemente in Abhängigkeit von der Umsetzung variieren können. Zum Beispiel kann der Befehls-Dropdown 428 ein Textfeld oder ein Mehrfachauswahlfeld sein, die gezeigten Schaltflächen können grafische Icons sein und so weiter. Die Formularelemente, die in der Benutzeroberfläche verwendet werden, können beliebige Formularelemente sein, die für den Zweck geeignet sind, für den sie umgesetzt sind, einschließlich Markierungsfelder, Imagemaps, Optionsfelder und so weiter. Klicken auf den Befehls-Dropdown 428 kann eine Liste von Namen von verfügbaren Befehlsdokumenten und eine assoziierte Beschreibung von jedem Befehlsdokument hervorbringen. Name und Beschreibung des Befehlsdokuments können als Teil der Erstellung des Befehlsdokuments eingestellt werden.
  • 5 veranschaulicht ein anderes Beispiel einer Benutzeroberfläche 500 einer Ausrührungsform der vorliegenden Offenbarung. Die Benutzeroberfläche 500 kann ein Fenster 520 beinhalten, das Benutzern eine Meldung, dass das Befehlsdokument ausgeführt wird (z. B. eine Erfolgsnachricht, die angibt, dass die Ausführung des Befehlsdokuments erfolgreich war), und einen oder mehrere Instanzenstatusverknüpfungen 532, um den Status eines Befehlsdokuments, das gegenüber einer Instanz ausgeführt wird, anzuzeigen, und/oder eine Befehlsstatusverknüpfung 534 zum Anzeigen des Gesamtstatus des ausführenden Befehlsdokuments anzeigt. Klicken auf eine Instanzenstatusverknüpfung kann dem Benutzer einen Befehlsverlaufsreiter für diese Instanz anzeigen. Im umgekehrten Fall kann, wenn die Ausführung des Befehlsdokuments oder von einem oder mehreren Befehlen in dem Befehlsdokument fehlschlägt, das Fenster 520 entsprechende Fehlschlag-/Fehlernachrichten für den Befehlsausführungsfluss beinhalten, wie in 6 dargestellt.
  • 6 veranschaulicht ein anderes Beispiel einer Benutzeroberfläche 600 einer Ausrührungsform der vorliegenden Offenbarung. Wenn die Ausführung des Befehlsdokuments oder von einem oder mehreren Befehlen in dem Befehlsdokument fehlschlägt oder wenn ein Teil der ausgewählten Instanzen nicht in einem Zustand ist, einen Befehl anzunehmen (z. B. keine Reaktion auf eine Aufforderung eines Internet Control Message Protocol-Echos (d. h. Ping)), kann eine Fehlermeldung 646 angezeigt werden (z. B. „The following instances are not able to run a command. You can skip these instances and continue to run against the other instances by clicking „Proceed“ or you may cancel the process by clicking „Cancel“." (Die folgenden Instanzen sind nicht in der Lage, einen Befehl auszuführen. Sie können diese Instanzen überspringen und mit den anderen Instanzen fortfahren, indem Sie auf „Fortfahren“ klicken, oder Sie können den Prozess abbrechen, indem Sie auf „Abbrechen“ klicken.) Auf diese Weise kann der Benutzer entscheiden, ob die gesamte Ausführung des Befehlsdokuments abgebrochen wird oder ob mit der Ausführung der nicht fehlschlagenden Instanzen fortgefahren werden soll.)
  • Auswählen der Befehlsstatusverknüpfung 534 kann dem Benutzer einen Bildschirm anzeigen, wie etwa der in 7 dargestellte, um den Status eines ausführenden oder ausgeführten Befehlsdokuments anzuzeigen. 7 veranschaulicht ein anderes Beispiel der Benutzeroberfläche 700 einer Ausführungsform der vorliegenden Offenbarung. Die Benutzeroberfläche 700 kann einen Befehlsausgabebereich 722 mit einem oder mehreren Reitern umfassen, wie etwa den Details-Reiter und den Output-Reiter, die in der Benutzeroberfläche 700 abgebildet sind. Der Details-Reiter kann Details zu dem Befehlsverlauf der spezifischen ausgewählten Instanz enthalten, wie etwa Instanzen-ID, Status, Name des Befehlsdokuments, Namen von beliebigen Plug-Ins, Startzeit für die Ausführung des Befehlsdokuments, Endzeit für die Ausführung des Befehlsdokuments und den Antwortcode und/oder die Antwortausgabe.
  • Wie in der Benutzeroberfläche 700 ersichtlich, kann für jeden Befehlsaufruf auf einer bestimmten Instanz ein Status vorhanden sein (z. B. wenn ein Befehlsdokument auf 10 Instanzen aufgerufen wurde, sind dort insgesamt 10 Status). Befehlsstatus (auch bezeichnet als Ausführungsstatus), sowie Details über verschiedene Versuche, Befehle gegenüber der jeweiligen Instanz auszuführen, können in einem Befehlsstatusbereich 760 der Benutzeroberfläche 700 angezeigt werden oder unter Verwendung der GetCommandStatus()-Anwendungsprogrammierungsschnittstelle, die als Eingang eine Befehls-ID verwendet und daraufhin Seiten von Befehlsstatus ausgibt, abgerufen werden. Auf diese Weise kann ein Administrator oder anderer Benutzer, der die Benutzeroberfläche betrachtet, nicht nur das Ergebnis von jedem Ausführungsversuch finden, sondern auch die Befehle/Operationen, die tatsächlich versucht wurden, sowie Informationen wie etwa Start- und/oder Stoppzeit der Ausführung. Wenn zum Beispiel „Benutzer A“ (User A) versucht, einen Befehl auszuführen, einen Partition zu formatieren oder eine Datei von einem Laufwerk einer abgezielten Instanz zu löschen, zeigt die Protokollansicht als Reaktion auf eine Aufforderung von einem Administrator, das Ausführungsprotokoll für die Instanz anzuzeigen, ob der Befehl erfolgreich war, die Identität der Einheit, die die Ausführungsaufforderung übermittelt hat (z. B. „User A“) und welches Befehlsdokument zur Ausführung ausgewählt wurde (z. B. „Denied attempt by User A to delete file 'ABC.'“ (Versuch von Benutzer A, Datei ,ABC' zu löschen, wurde abgelehnt.)). Jeder Befehlsstatus kann einen Aufruf des Befehlsdokuments für eine bestimmte Instanz darstellen. Der Befehlsstatusbereich 760 kann Informationen enthalten, wie etwa Instanzen-ID, Zustand („Pending“ (Ausstehend), „Invalid Request“ (Ungültige Aufforderung), „Queued“ (In Warteschlange), „Executing“ (In Ausführung), „Completed“ (Abgeschlossen), „Failed“ (Fehlgeschlagen), „Cancel Requested“ (Abbruch angefordert), „Cancelled“ (Abgebrochen) etc.), Antworten (Antwort von jedem Plug-In innerhalb des Befehlsdokuments, das ausgerufen wurde). Ein Agent auf der entsprechenden Maschineninstanz kann für das Bereitstellen von Status des Aufrufs und der Plug-In-Antworten verantwortlich sein.
  • Auswählen des Output-Reiters kann den Befehlsausgabebereich 722 zu einem Ausgabebereich 822 zum Anzeigen der Ausgabe des ausführenden oder ausgeführten Befehlsdokuments ändern, wie in 8 gezeigt. 8 veranschaulicht ein anderes Beispiel einer Benutzeroberfläche 800 einer Ausführungsform der vorliegenden Offenbarung. Der Ausgabebereich 822 der Benutzeroberfläche 800 kann erweiterbare/einklappbare Unterbereiche umfassen, die spezifischen Aufgaben entsprechen, die aus vorstehenden Aufgaben 840 ausgewählt wurden, und jede Befehlsausgabe kann innerhalb eines erweiterbaren/einklappbaren Unterbereichs angezeigt werden. Eine Actions-Schaltfläche 870 kann dazu verwendet werden, bestimmte Handlungen zu veranlassen, die für die ausgewählten Aufgaben durchzuführen sind. Wenn zum Beispiel einige der Aufgaben in einem Zustand „Failed“ (Fehlgeschlagen) sind, kann der Benutzer diese Aufgaben aus den Aufgaben 840 auswählen und eine Option „Re-Run Command“ (Befehl erneut ausführen) aus dem Actions-Dropdown auswählen. Eine weitere mögliche Handlung in dem Actions-Dropdown kann „Cancel Pending“ (Ausstehende abbrechen) zum Abbrechen der Aufgaben in einem Zustand „Pending“ (Ausstehend) beinhalten. Auswählen der Option „Re-Run Command“ aus dem Actions-Dropdown kann erneut die Befehl-Ausführen-Funktion aufrufen, was den Benutzer zu einer Oberfläche ähnlich der Benutzeroberfläche 400 aus FIG. 4 führen kann und es dem Benutzer ermöglichen kann, Parameterwerte vor dem Ausführen des Befehlsdokuments zu ändern.
  • Einige Beispiele für Richtlinien, die von den Administratoren verwendet werden können, um Benutzern Zugriff zu gewähren, um Befehlsdokumente auszuführen, sind nachfolgend dargelegt:
    Wirkung Richtlinie
    Ausführen von allen Befehlsdokumenten auf allen Instanzen in allen Regionen „Action“: [ „ssm:CreateCommandRequest“ ],
    „Effect“: „Allow“,
    „Resource“: [
    „urn:webservices:ssm:*: :document/*“,
    „urn:webservices:vm:*:*:instance/*“
    ]
    Ausführen von Windows PowerShell auf allen Instanzen, die mit stage=prod gekennzeichnet sind, überall, außer in Region us-west-1 „Action“: [ „ssm: CreateCommandRequest“ ],
    „Effect“: „Allow“,
    „Resource“: [
    „urn: webservices : ssm: * : : document/WebServices-RunScript“,
    „urn:webservices:vm:*:*:instance/*“
    ] ,
    „Condition“: {
    „StringEquals“: { „vm:ResourceTag/stage“:
    „prod“ },
    „StringNotEquals“: { „vm:Region“: „us-west-1“ }
    }
  • Mit dem Befehl-Ausführen-Dienst kann ein Benutzer ein beliebiges Befehlsdokument oder Skript auf einer Remote-Maschineninstanz ausführen, das der Benutzer lokal von der Instanz ausführen könnte. Der Benutzer kann Befehle ausgeben oder einen Pfad für ein lokales Skript eingeben, um den Befehl auszuführen.
  • Aufrufen von Get-SSMDocumentDescription kann eine Beschreibung eines festgelegten Befehlsdokuments und von dessen verfügbaren Parametern liefern. 9 veranschaulicht eine Beschreibung, die geliefert wird, wenn der folgende Befehl von einer Befehlszeilenschnittstelle 900 ausgegeben wird:
  •       Get-SSMDocumentDescription -Name "WebServices-
          RunPowerShellScript"
  • Der Benutzer kann Details über jeden Parameter anzeigen, darunter den Standardwert und den Parametertyp durch Verwendung einer Option -ExpandProperty Parameters. 10 veranschaulicht eine Beschreibung, die geliefert wird, wenn der folgende Befehl mit einer Option -ExpandProperty Parameters von einer Befehlszeilenschnittstelle 900 ausgegeben wird:
  •       Get-SSMDocumentDescription -Name „WebServices-
          RunPowerShellScript“ | select -ExpandProperty Parameters
  • Der Benutzer kann Befehlsinformationen mit Antwortdaten für eine Instanz erlangen.
  • 12 veranschaulicht die Details, die nach dem Ausführen des folgenden Befehls zum Herabstufen der Konfiguration einer virtuellen Maschine auf eine ältere Version über eine Befehlszeilenschnittstelle 1200 geliefert werden:
  •       Send-SSMCommand -InstanceId i-bacadb68 -DocumentName
          "WebServices-UpdateVMConfig" -Parameter
          @{‚version‘=‚3.8.354‘; ‚allowDowngrade‘=‚true‘ }
  • 11 veranschaulicht einen Befehlsstatus für einen Befehl, der Windows Automatic Update von einer Befehlszeilenschnittstelle 1100 aus aktiviert:
  •       Get-SSMCommandInvocation -Details $true -CommandId
          $configureWindowsUpdateCommand.CommandId | select -
          ExpandProperty CommandPlugins
  • 13 veranschaulicht einen Ausführungsfluss 1300 eines Befehlsdokuments einer Ausrührungsform der vorliegenden Offenbarung. Wie in 13 veranschaulicht, wird ein Befehl 1304 des Befehlsdokuments gegenüber einer oder mehreren Instanzen 1316A-16N ausgeführt. Als ein Ergebnis der Ausführung für jede der einen oder mehreren Instanzen 1316A-16N kann eine Agentensoftware einen Status 1342 der Ausführung ausgeben. Beispiele für Status sind in 7, 8, 11 und 12 dargelegt. Wenn beliebige Plug-Ins ausgeführt werden, kann jedes der ausführenden Plug-Ins zusätzliche Antworten 1344A-44N bereitstellen. 11 veranschaulicht eine Plug-In-Antwort.
  • 14 ist ein Blockdiagramm, das ein Beispiel eines Prozesses 1400 zum Zuweisen einer Richtlinie veranschaulicht, die eine Genehmigung für einen Benutzer erteilt, ein Befehlsdokument gemäß verschiedenen Ausführungsformen auszuführen. Ein Teil oder die Gesamtheit des Prozesses 1400 (oder beliebige andere beschriebene Prozesse oder Variationen und/oder Kombinationen dieser Prozesse) können unter der Kontrolle von einem oder mehreren Computersystemen, die mit ausführbaren Anweisungen und/oder anderen Daten konfiguriert sind, durchgeführt werden und können als ausführbare Anweisungen, die gemeinsam auf einem oder mehreren Prozessoren ausgeführt werden, umgesetzt werden. Die ausführbaren Anweisungen und/oder anderen Daten können auf einem nichtflüchtigen, computerlesbaren Speichermedium gespeichert werden (z. B. ein Computerprogramm, das dauerhaft auf einem magnetischen, optischen oder Flash-Speicher gespeichert ist).
  • Zum Beispiel können ein Teil oder die Gesamtheit von Prozess 1400 durch ein beliebiges geeignetes System, wie etwa einen Server in einem Datenzentrum, durch verschiedene Komponenten der Umgebung 1700, die in Verbindung mit 17 beschrieben sind, wie etwa den Webserver 1706 oder den Anwendungsserver 1708, durch mehrere Datenverarbeitungsvorrichtungen in einem verteilten System eines Datenverarbeitungsressourcendienstanbieters oder durch eine beliebige elektronische Client-Vorrichtung, wie etwa die elektronische Client-Vorrichtung 1702, durchgeführt werden. Der Prozess 1400 beinhaltet eine Reihe von Operationen, wobei das System, das den Prozess 1400 durchführt, eine Aufforderung empfängt, die ein Befehlsdokument angibt, eine Richtlinie erlangt, die eine Genehmigung zum Ausführen des Dokuments erteilt, eine Auswahl von Benutzern zum Assoziieren mit der Richtlinie empfängt und die Richtlinie den ausgewählten Benutzern zuweist.
  • In 1402 empfängt das System, das den Prozess 1400 durchführt, von einer auffordernden Einheit eine Aufforderung, die das Befehlsdokument angibt. Die auffordernde Einheit kann ein Administrator, wie etwa der Administrator 102 aus 1, oder eine andere Einheit, die dazu autorisiert ist, Befehlsdokumente zu administrieren, sein. Wie angemerkt, kann das Befehlsdokument eine Reihe von Befehlen und eine Reihe von erforderlichen und optionalen Parametern zum Durchführen dieser Befehle gegenüber Ressourcen, die mit einem durch einen Datenverarbeitungsressourcendienstanbieter bereitgestellten Konto assoziiert sind, beinhalten. Der Kontext des Angebens des Befehlsdokuments beinhaltet jede Art von Identifizieren der Reihe von Befehlen und Parametern des Befehlsdokuments gegenüber dem System, wie etwa durch Bereitstellen der Inhalte des Befehlsdokuments selbst, Bereitstellen einer Auswahl eines vordefinierten Befehlsdokuments über eine Befehlszeile, über eine Konsolenschnittstelle oder programmgestützt, Bereitstellen einer Kennung, die mit einem bestehenden Befehlsdokument assoziiert ist, Auswählen eines Befehlsdokuments aus einer Reihe von Befehlsdokumenten und so weiter. Es ist zu beachten, dass mehr als ein Befehlsdokument durch die Aufforderung von 1402 angegeben werden kann.
  • In 1404 kann das System, das den Prozess 1400 durchführt, eine Richtlinie erlangen, die eine Genehmigung zum Ausführen des Befehlsdokuments erteilt. Die Richtlinie kann während des Betriebs durch das System erzeugt werden oder kann durch einen Administrator des Kundenkontos oder eine andere autorisierte Einheit zu einem Zeitpunkt vor, nach oder während der Operationen von 1402 erstellt werden. Die Richtlinie kann für das angegebene Befehlsdokument von 1402 spezifisch sein oder kann so entworfen werden, dass sie für mehr als ein Befehlsdokument gilt. Die Richtlinie kann in einem Richtlinienverwaltungsdienst des Datenverarbeitungsressourcendienstanbieters gespeichert und gepflegt werden. Es ist zu beachten, dass, wenn mehrere Aufforderungen durch die Aufforderung von 1402 angegeben sind, mehrere Richtlinien in 1404 erlangt werden können.
  • In 1406 kann das System, das den Prozess 1400 durchführt, eine Auswahl einer Reihe von Benutzern empfangen, auf die die Richtlinie, die Zugriff auf das Befehlsdokument von 1402 gewährt, angewendet werden soll. Die Auswahl der Reihe von Benutzern kann von einer programmgestützten Auswahl (z. B. durch eine ausführende Softwareanwendung) oder Auswahl über eine Befehlszeilen- oder Konsolenschnittstelle durch einen Administrator des Kontos oder eine andere Einheit, die dazu autorisiert ist, Benutzer mit einer Richtlinie zu assoziieren, die eine Genehmigung zum Ausführen von Befehlsdokumenten erteilt, erlangt werden. Die Auswahl kann Kennungen beinhalten, die eindeutig mit jedem Benutzer der Reihe von Benutzern assoziiert sind, kann eine Kennung für eine Gruppe, zu der die Reihe von Benutzern gehört, beinhalten, kann eine Auswahl einer Rolle, die mit der Reihe von Benutzern assoziiert ist, beinhalten, oder eine andere Art zum Identifizieren des ausgewählten Benutzers.
  • Zuletzt kann das System, das den Prozess 1400 durchführt, in 1408 die Richtlinie oder Richtlinien von 1404, die eine Genehmigung zum Ausführen des Befehlsdokuments oder der Befehlsdokumente von 1402 erteilt, zu der Reihe von Benutzern, die in 1406 ausgewählt werden, zuweisen. Das System kann die Richtlinie durch Übermitteln einer Aufforderung zum Assoziieren der Richtlinie oder Richtlinien mit der ausgewählten Reihe von Benutzern zu einem Richtlinienverwaltungsdienst des Datenverarbeitungsressourcendienstanbieters zuweisen und daraufhin kann der Richtlinienverwaltungsdienst veranlassen, dass die Richtlinie oder die Richtlinien mit der ausgewählten Reihe von Benutzern assoziiert werden, wodurch der ausgewählten Reihe von Benutzern eine Genehmigung erteilt wird, das Befehlsdokument oder die Befehlsdokumente von 1402 auszuführen. Es ist zu beachten, dass eine oder mehrere der Operationen, die in 1402-08 durchgeführt werden, in verschiedenen Reihenfolgen und Kombinationen, darunter parallel, durchgeführt werden können.
  • 15 ist ein Ablaufdiagramm, das ein Beispiel eines Prozesses 1500 zum Ausführen eines Befehlsdokuments gemäß verschiedenen Ausführungsformen veranschaulicht. Ein Teil oder die Gesamtheit des Prozesses 1500 (oder beliebige andere beschriebene Prozesse oder Variationen und/oder Kombinationen dieser Prozesse) können unter der Kontrolle von einem oder mehreren Computersystemen, die mit ausführbaren Anweisungen und/oder anderen Daten konfiguriert sind, durchgeführt werden und können als ausführbare Anweisungen, die gemeinsam auf einem oder mehreren Prozessoren ausgeführt werden, umgesetzt werden. Die ausführbaren Anweisungen und/oder anderen Daten können auf einem nichtflüchtigen, computerlesbaren Speichermedium gespeichert werden (z. B. ein Computerprogramm, das dauerhaft auf einem magnetischen, optischen oder Flash-Speicher gespeichert ist).
  • Zum Beispiel können ein Teil oder die Gesamtheit von Prozess 1500 durch ein beliebiges geeignetes System, wie etwa einen Server in einem Datenzentrum, durch verschiedene Komponenten der Umgebung 1700, die in Verbindung mit 17 beschrieben sind, wie etwa den Webserver 1706 oder den Anwendungsserver 1708, durch mehrere Datenverarbeitungsvorrichtungen in einem verteilten System eines Datenverarbeitungsressourcendienstanbieters oder durch eine beliebige elektronische Client-Vorrichtung, wie etwa die elektronische Client-Vorrichtung 1702, durchgeführt werden. Der Prozess 1500 beinhaltet eine Reihe von Operationen, wobei eine Aufforderung empfangen wird, um ein Befehlsdokument gegenüber einer Ressource auszuführen, Zugriffsgenehmigungen des Aufforderers werden verifiziert und Befehle des Befehlsdokuments werden gesendet, um gegenüber der Ressource ausgeführt zu werden.
  • In 1502 empfängt das System, das den Prozess 1500 durchführt, eine Aufforderung, das Befehlsdokument auszuführen. Die Aufforderung muss eine Angabe des Befehlsdokuments, das ausgeführt werden soll, beinhalten und kann auch eine Auswahl für eine Reihe von Ressourcen, für die die Befehle des Befehlsdokuments ausgeführt werden sollen, beinhalten. Die Aufforderung kann teilweise empfangen werden; das heißt, eine Aufforderung, ein Befehlsdokument auszuführen, kann zuerst empfangen werden, gefolgt von einer Aufforderung, die eine Reihe von Ressourcen angibt, oder umgekehrt. Wie angemerkt, können die Ressourcen eine beliebige geeignete Art von physischen oder virtuellen Datenverarbeitungsvorrichtungen sein, so wie diese durch einen Datenverarbeitungsdienstanbieter an dessen Kunden bereitgestellt werden kann, einschließlich Instanzen von virtuellen Maschinen, Datenspeicherungsressourcen, Netzwerkressourcen und so weiter.
  • In 1504 kann das System, das den Prozess 1500 durchführt, bestimmen, ober der Aufforderer über ausreichende Genehmigungen verfügt, um zu veranlassen, dass das Befehlsdokument ausgeführt wird. Zum Beispiel kann das System einen Richtlinienverwaltungsdienst eines Datenverarbeitungsressourcendienstanbieters, der den Befehl-Ausführen-Dienst der vorliegenden Offenbarung bereitstellt, abfragen, um zu bestimmen, ob der Aufforderer mit einer Richtlinie (wie etwa der Richtlinie von 1404 aus 14) assoziiert ist, die dem Aufforderer eine Genehmigung zum Ausführen der Richtlinie erteilt. Wenn das System nicht in der Lage ist, zu verifizieren, dass der Aufforderer über ausreichende Genehmigungen verfügt, um zu veranlassen, dass das Befehlsdokument ausgeführt wird, kann das System mit 1506 fortfahren, woraufhin die Aufforderung abgelehnt wird. In einigen Fällen kann das Ablehnen der Aufforderung eine Fehlermeldung beinhalten, die als Reaktion auf die Aufforderung bereitgestellt wird.
  • Andernfalls, wenn das System, das den Prozess 1500 durchführt, bestätigt, dass der Aufforderer über ausreichende Genehmigungen verfügt, um das Befehlsdokument in seinem Namen ausführen zu lassen, kann das System mit 1508 fortfahren, woraufhin das System bestimmen kann, ob der Aufforderer über Zugriffsgenehmigungen für die ausgewählte Reihe von Ressourcen verfügt. In einigen Umsetzungen kann das System, wenn der Aufforderer über Zugriffsgenehmigungen für einige der ausgewählten Reihe von Ressourcen, aber nicht für andere der ausgewählten Reihe von Ressourcen verfügt, Ressourcen, für die der Aufforderer nicht über Zugriff verfügt, aus der Reihe von Ressourcen, für die das Befehlsdokument auszuführen ist, auslassen. In anderen Umsetzungen kann das System, wenn der Aufforderer nicht über Zugriff auf beliebige der ausgewählten Reihe von Ressourcen verfügt, die Aufforderung ablehnen und eine Ausführung des Befehlsdokuments gegenüber einer beliebigen der ausgewählten Reihe von Ressourcen unterbinden.
  • In einigen Umsetzungen kann das System einen Richtlinienverwaltungsdienst des Datenverarbeitungsressourcendienstanbieters abfragen, um zu bestimmen, ob der Aufforderer über eine Art von Genehmigungen zum Zugreifen auf die ausgewählte Reihe von Ressourcen verfügt. Zum Beispiel kann das Verfügen über Lesezugriff für die ausgewählte Reihe von Ressourcen ausreichend sein, um zu bestimmen, dass der Aufforderer Zugriff auf die ausgewählte Reihe von Ressourcen hat; wenn jedoch Befehle des Befehlsdokuments gegenüber bestimmten Ressourcen ausgeführt werden, für die andere Genehmigungen als „Lesen“ erforderlich sind, kann die Ausführung unter der Befugnis des Aufforderer versucht werden und dementsprechend fehlschlagen, das der Aufforderer über unzureichende Genehmigungen zum Durchführen der Operation verfügt. In anderen Umsetzungen kann das System für jeden Befehl, der in dem Befehlsdokument festgelegt ist, bestimmen (z. B. über einen Richtlinienverwaltungsdienst), ob der Aufforderer über ausreichende Genehmigungen verfügt, um den festgelegten Befehl durchzuführen. In noch anderen Umsetzungen kann das System zusätzlich bestimmen, ob der Aufforderer über ausreichende Genehmigungen verfügt, um den festgelegten Befehl unter Verwendung von festgelegten Parametern durchzuführen (z. B. kann es nicht ausreichend sein, dass der Aufforderer einfach über einigen „Löschgenehmigungen“ für die Ressource verfügt, sondern er muss über „Löschgenehmigungen“ für die Dateien der Ressource verfügen, die der Aufforderer zu löschen versucht). Wenn der Aufforderer nicht über ausreichende Zugriffsberechtigungen für die festgelegte Reihe von Ressourcen verfügt, kann das System mit 1506 fortfahren, um die Aufforderung abzulehnen. Andernfalls, wenn der Aufforderer über ausreichende Zugriffsberechtigungen für die festgelegte Reihe von Ressourcen verfügt, kann das System in 1510 veranlassen, dass die Befehle des Befehlsdokuments gegenüber der festgelegten Reihe von Ressourcen ausgeführt werden. Weitere Details in Bezug auf die Operationen von 1510 sind in der Beschreibung des Prozesses 1600 aus 16 enthalten.
  • Es ist zu beachten, dass eine oder mehrere der Operationen, die in 1502-10 durchgeführt werden, in verschiedenen Reihenfolgen und Kombinationen, darunter parallel, durchgeführt werden können. Als ein anderes Beispiel können die Operationen von 1508 vor oder parallel zu den Operationen von 1504 durchgeführt werden. Es ist auch zu beachten, dass, wenn nicht anderweitig festgelegt, in dem Kontext des Beschreibens von offenbarten Ausführungsformen die Verwendung von Ausdrücken in Bezug auf ausführbare Anweisungen (auch bezeichnet als Code, Anwendungen, Agenten etc.), die Operationen durchführen, die „Anweisungen“ normalerweise nicht ohne Hilfe durchführen (z. B. Übertragung von Daten, Berechnungen etc.) bedeuten, dass die Anweisungen durch eine Maschine ausgeführt werden, wobei die Maschine veranlasst wird, die festgelegten Operationen durchzuführen.
  • 16 ist ein Ablaufdiagramm, das ein Beispiel eines Prozesses 1600 zum Ausführen eines Befehlsdokuments gemäß verschiedenen Ausführungsformen veranschaulicht. Ein Teil oder die Gesamtheit des Prozesses 1600 (oder beliebige andere beschriebene Prozesse oder Variationen und/oder Kombinationen dieser Prozesse) können unter der Kontrolle von einem oder mehreren Computersystemen, die mit ausführbaren Anweisungen und/oder anderen Daten konfiguriert sind, durchgeführt werden und können als ausführbare Anweisungen, die gemeinsam auf einem oder mehreren Prozessoren ausgeführt werden, umgesetzt werden. Die ausführbaren Anweisungen und/oder anderen Daten können auf einem nichtflüchtigen, computerlesbaren Speichermedium gespeichert werden (z. B. ein Computerprogramm, das dauerhaft auf einem magnetischen, optischen oder Flash-Speicher gespeichert ist).
  • Zum Beispiel können ein Teil oder die Gesamtheit von Prozess 1600 durch ein beliebiges geeignetes System, wie etwa einen Server in einem Datenzentrum, durch verschiedene Komponenten der Umgebung 1700, die in Verbindung mit 17 beschrieben sind, wie etwa den Webserver 1706 oder den Anwendungsserver 1708, durch mehrere Datenverarbeitungsvorrichtungen in einem verteilten System eines Datenverarbeitungsressourcendienstanbieters oder durch eine beliebige elektronische Client-Vorrichtung, wie etwa die elektronische Client-Vorrichtung 1702, durchgeführt werden. Der Prozess 1600 beinhaltet eine Reihe von Operationen, wobei das System eine Reihe von festgelegten Instanzen und Befehlen des Befehlsdokuments durchlaufen kann, veranlassen kann, dass die Befehle des Befehlsdokuments gegenüber den Instanzen durchgeführt werden und das Ergebnis protokollieren kann.
  • In 1602 kann der Befehl-Ausführen-Dienst damit beginnen, das Befehlsdokument, das in der Aufforderung von 1502 aus 15 angegeben ist, zu verarbeiten. In 1604 kann eine erste Untermenge von Ressourcen der ausgewählten Reihe von Ressourcen ausgewählt werden. In einigen Fällen kann eine Auswahl der Reihe von Ressourcen über Empfangen einer Meldung aus einer Meldungswarteschlange, wie etwa der Warteschlange 246 aus 2, erreicht werden, wobei die Meldung die Untermengenressourcen und das Befehlsdokument, das gegenüber der Untermenge auszuführen ist, angibt. Es ist zu beachten, dass in einigen Fällen die Ausführung es Befehlsdokuments stark parallel erfolgen kann; das heißt, anstatt die Operationen von 1604-14 für jede Ressource der ausgewählten Reihe von Ressourcen zu wiederholen, können die Operationen von 1602-16 separat (unter Auslassung der Operationen von 1614, wodurch diese nur einmal pro Ressource ausgeführt werden) in separaten Threads, die parallel ausgeführt werden, durchgeführt werden. In anderen Fällen können die Operationen des Prozesses 1600 gegenüber Batches (d. h. Untermengen) von Ressourcen parallel ausgeführt werden. Das heißt, die ausgewählte Reihe von Ressourcen kann in Untermengen unterteilt werden (z. B. erste Untermenge, zweite Untermenge, dritte Untermenge etc.) und das Befehlsdokument kann parallel gegenüber jeder Ressource der Untermenge ausgeführt werden. Wenn die Ausführung des Befehlsdokuments für jede Ressource von einer Untermenge endet, kann der Prozess 1600 für die nächste Untermenge wiederholt werden und so weiter. Gleichermaßen können in einigen Fällen die Operationen hintereinander durchgeführt werden; das heißt, für jede Ressource der ausgewählten Reihe können die Operationen von 1602-14 wiederholt werden, bis das Befehlsdokument gegenüber allen Ressourcen der ausgewählten Reihe ausgeführt wurde (oder auszuführen versucht wurde).
  • In 1606 kann das System, das den Prozess 1600 durchführt, bestimmen, ob Ressourcen der ausgewählten Untermenge reagieren oder anderweitig empfänglich sind, um die Befehle des Befehlsdokuments zu empfangen und auszuführen. In einigen Umsetzungen kann die durch Erlangen einer Zeit des letzten empfangenen Heartbeats von der Ressource und, basierend auf dem Heartbeat, Ermitteln, ob die Ressource nicht reagiert (z. B. ob der Unterschied zwischen der aktuellen Zeit und der Zeit des letzten empfangenen Heartbeats den Schwellenwert übersteigt), bestimmt werden. In anderen Umsetzungen kann dies durch Senden einer Aufforderung eines Internet Control Message Protocol-Echos (d. h. Pings) an die Ressourcen bestimmt werden, und wenn keine Antwort empfangen wird oder die Echo-Aufforderung anderweitig ausläuft, können die Ressourcen als nicht reagierend bestimmt werden. In noch anderen Umsetzungen kann eine Meldung an einen oder mehrere Agenten gesendet werden, die auf den Ressourcen vorhanden sind, und die Agenten können antworten, dass, während die Ressourcen reagieren, diese gegenwärtig beschäftigt sind oder anderweitig in einem Zustand sind, der zum Ausführen der Befehle des Befehlsdokuments nicht empfänglich ist. In dem Fall, dass das System, das den Prozess 1600 durchführt, bestimmt, dass die Ressourcen nicht reagieren oder anderweitig nicht empfänglich sind, kann das System mit 1608 fortfahren, woraufhin das System bestimmen kann, ob eine Ausführung auf der Instanz erneut versucht wird.
  • Das heißt, in 1608 kann das System, das den Prozess 1600 durchführt, bestimmen, ob eine Anzahl von Aufrufen von 1604-10 einen Wiederholungsschwellenwert überstiegen hat oder ob die Ressourcen für einen Schwellenzeitraum nicht reagiert haben oder nicht empfänglich waren. Falls nicht, kann das System mit 1610 fortfahren, woraufhin die Instanz und Befehls-ID in einer Meldung am Ende der Meldungswarteschlange platziert werden können und nach Ablauf eines gewissen Zeitraums erreicht werden können. In einigen Umsetzungen kann die die gleiche Meldungswarteschlange wie eine Meldungswarteschlange sein, die die ausgewählte Reihe von Ressourcen von 1604 bereitstellt. In anderen Ausführungsformen kann eine Wiederholungswarteschlange eine separate Warteschlange für nicht regierende und nicht empfängliche Ressourcen sein. Ressourcen können mit einem Zähler assoziiert werden, und auf den Zähler kann in 1608 Bezug genommen werden, um zu bestimmen, ob eine Schwellenanzahl von Wiederholungen für die nicht reagierenden/nicht empfänglichen Ressourcen überschritten wurde. In anderen Umsetzungen können die Ressourcen mit einem Zeitstempel assoziiert sein, der in 1608 verwendet werden kann, um zu bestimmen, ob eine Zeitablaufschwelle überschritten wurde.
  • In dem Fall, dass es bestimmt wird, dass keine weiteren Versuche gemacht werden, um zu bestimmen, ob die Instanz reagiert, oder um anderweitig zu bestimmen, ob die Instanz für Befehle empfänglich ist, kann in 1612 ein Eintrag vorgenommen werden, wie etwa bei dem Datenbankdienst 248 aus 2, wobei der Status der Instanz aktualisiert wird, um anzugeben, dass Befehle nicht auf der jeweiligen Instanz durchgeführt werden konnten (z. B. ein Status von „timed out“ (abgelaufen), der angibt, dass der Befehl abgebrochen wurde und dass keine weiteren versuche unternommen werden), und das System, das den Prozess 1600 durchführt, kann mit 1614 fortfahren. Die Befehle können aus der Warteschlange entfernt werden oder nicht wieder in die Warteschlange zurückgeführt werden, um weitere Versuche, den Befehl auszuführen oder zu bestimmen, ob die Instanz empfänglich ist, abzubrechen. In 1614 kann das System bestimmen, ob beliebige Instanzen der festgelegten Reihe von Instanzen, die eine Ausführung des angegebenen Befehlsdokuments nicht abgeschlossen haben, verblieben sind. Wenn alle Instanzen der festgelegten Reihe von Instanzen gegenüber dem Befehlsdokument verarbeitet wurden, kann das System mit 1616 fortfahren und den Prozess 1600 beenden. Andernfalls, wenn weitere Instanzen der festgelegten Reihe von Instanzen noch zu verarbeiten sind, kann das System, das den Prozess 1600 durchführt, zu 1604 zurückkehren, um Verarbeitung der nächsten unverarbeiteten Instanz der festgelegten Reihe von Instanzen zu beginnen (z. B. die nächste Meldung aus der Meldungswarteschlange zu erlangen).
  • Wenn in 1606 jedoch die Ressourcen als reagierend und empfänglich für die Verarbeitung von Befehlen des Befehlsdokuments bestimmt werden, kann das System, das den Prozess 1600 durchführt, mit 1618 fortfahren, woraufhin das System veranlassen kann, dass der Befehl des Befehlsdokuments an einen Agenten, wie etwa den Agenten 264 aus 2, auf der Instanz zur Verarbeitung gesendet wird. Der Agent kann mit einem Status der Ausführung (z. B. „Running“ (In Ausführung), „Completed“ (Abgeschlossen), „Error“ (Fehler) etc.) antworten, der durch das System in 1620 empfangen werden kann.
  • Als ein Ergebnis des Empfangens der Antwort kann das System, das den Prozess durchführt, in 1622 veranlassen, dass der Status in einem Transaktionsprotokoll gespeichert wird und/oder in einer Datenbank, wie etwa dem Datenbankdienst 268 aus 2, aktualisiert wird, woraufhin das System mit 1614 fortfahren kann, um zu bestimmen, ob noch beliebige Instanzen verbleiben, denen Befehle zur Verarbeitung zu senden sind. Es ist zu beachten, dass das System, wenn der empfangene Status ein anderer Status ist als eine Angabe, das die Ausführung des Befehlsdokuments andauert, weiter Statusaktualisierungen von dem Agenten empfangen kann und weiter die Statusaktualisierung protokollieren kann oder den Status in einer Datenbank aktualisieren kann, bis der Agent angibt, dass die Befehlsverarbeitung abgeschlossen ist. Es ist zu beachten, dass eine oder mehrere der Operationen, die in 1602-22 durchgeführt werden, in verschiedenen Reihenfolgen und Kombinationen, darunter parallel, durchgeführt werden können. Zum Beispiel kann das System, das den Prozess 1600 durchführt, zuerst bestimmen, welche Ressourcen reagieren, bevor es dem Aufforderer erlaubt wird, die Reihe von Ressourcen festzulegen, und in diesem Fall können die Operationen von 1606-12 ausgelassen werden.
  • 17 veranschaulicht Aspekte einer Beispielumgebung 1700 zum Umsetzen von Aspekten gemäß verschiedenen Ausführungsformen. Obwohl eine web-basierte Umgebung zum Zwecke der Erklärung verwendet wird, versteht es sich, dass unterschiedliche Umgebungen verwendet werden können, so wie angemessen, um verschiedene Ausführungsformen umzusetzen. Die Umgebung beinhaltet eine elektronische Client-Vorrichtung 1702, die eine beliebige geeignete Vorrichtung beinhalten kann, die dazu betrieben werden kann, Aufforderungen, Meldungen oder Informationen über ein entsprechendes Netzwerk 1704 zu senden und/oder zu empfangen, und in einigen Ausführungsformen dazu, Informationen zurück an einen Benutzer der Vorrichtung zu befördern. Beispiele für solche Client-Vorrichtungen umfassen Personalcomputer, Mobiltelefone, tragbare Messaging-Vorrichtungen, Laptopcomputer, Tabletcomputer, Set-Top-Boxen, persönlichen Datenassistenten, eingebettete Computersysteme, elektronische Buchlesegeräte und dergleichen. Das Netzwerk 1704 ein beliebiges geeignetes Netzwerk umfassen, einschließlich eines Intranets, das Internet, ein Mobilfunknetz, ein lokales Netzwerk, ein Satellitennetzwerk oder ein beliebiges anderes Netzwerk und/oder eine Kombination davon. Komponenten, die für ein solches System verwendet werden, können zumindest teilweise von der Art des ausgewählten Netzwerks und/oder der ausgewählten Umgebung abhängig sein. Viele Protokolle und Komponenten zum Kommunizieren über ein solches Netzwerk sind gut bekannt und werden nicht im Detail besprochen. Kommunikation über das Netzwerk 1704 kann durch drahtgebundene oder drahtlose Verbindungen und Kombinationen davon ermöglicht werden. In diesem Beispiel beinhaltet das Netzwerk 1704 das Internet und/oder andere öffentlich adressierbare Kommunikationsnetzwerke, da die Umgebung einen Webserver 1706 zum Empfangen von Aufforderungen und Bereitstellen von Inhalt als Antwort darauf umfasst, wobei für andere Netzwerke eine alternative Vorrichtung, die einen ähnlichen Zweck erfüllt, verwendet werden könnte, so wie dies einem Fachmann ersichtlich ist.
  • Die veranschaulichende Umgebung beinhaltet einen Anwendungsserver 1708 und einen Datenspeicher 1710. Es versteht sich, dass mehrere Anwendungsserver, Schichten oder andere Elemente, Prozesse oder Komponenten, die verkettet oder anderweitig konfiguriert sein können, vorhanden sein können, die interagieren können, um Aufgaben wie etwa Erlangen von Daten von einem entsprechenden Datenspeicher durchzuführen. Server, wie verwendet, können auf verschiedene Weisen umgesetzt werden, wie etwa als Hardware-Vorrichtungen oder virtuelle Computersysteme. In einigen Zusammenhängen können Server auf ein Programmierungsmodul Bezug nehmen, das auf einem Computersystem ausgeführt wird. So wie verwendet, außer dies wird anderweitig angegeben oder erschließt sich aus dem Kontext, bezieht sich der Begriff „Datenspeicher“ auf eine beliebige Vorrichtung oder Kombination von Vorrichtungen, die in der Lage ist, Daten zu speichern, darauf zuzugreifen und abzurufen, was eine beliebige Kombination und Anzahl von Datenservern, Datenbänken, Datenspeichervorrichtungen und Datenspeichermedien in einem beliebigen Standard-, verteilten, virtuellen oder geclusterten Umgebung umfassen kann. Der Anwendungsserver 1708 kann eine beliebige geeignete Hardware, Software und Firmware zur Integration mit dem Datenspeicher 1710 umfassen, so wie erforderlich, um Aspekte von einer oder mehreren Anwendungen für die elektronische Client-Vorrichtung 1702 auszuführen, wobei ein Teil oder die Gesamtheit von Datenzugriff und Business-Logik für eine Anwendung gehandhabt wird. Der Anwendungsserver 1708 kann Zugriffskontrolldienste in Zusammenarbeit mit dem Datenspeicher 1710 bereitstellen und ist in der Lage, Inhalte zu erzeugen, einschließlich Text, Grafik, Audio, Video und/oder andere nützliche Inhalte, die an den Benutzer bereitzustellen sind, wobei diese durch den Webserver 1706 in der Form von HyperText Markup Language (HTML), Extensible Markup Language (XML), JavaScript, Cascading Style Sheets (CSS), JavaScript Object Notation (JSON) und/oder einer anderen geeigneten client-seitigen strukturierten Sprache an den Benutzer bereitgestellt werden können. Inhalt, der an eine Client-Vorrichtung übertragen wird, kann durch die elektronische Client-Vorrichtung 1702 verarbeitet werden, um Inhalt in einer oder mehreren Formen bereitzustellen, einschließlich Formen, die durch den Benutzer akustisch, visuell und/oder über andere Sinne wahrgenommen werden. Die Handhabung von allen Aufforderungen und Antworten, sowie die Bereitstellung von Inhalt zwischen der elektronischen Client-Vorrichtung 1702 und dem Anwendungsserver 1708 kann durch den Webserver 1706 unter Verwendung von PHP: Hypertext Preprocessor (PHP), Python, Ruby, Perl, Java, HTML, XML, JSON und/oder eines anderen geeigneten server-seitigen strukturierten Sprache in diesem Beispiel gehandhabt werden. Ferner können Operationen, die als durch eine einzelne Vorrichtung durchgeführt beschrieben sind, gemeinsam durch mehrere Vorrichtungen, die ein verteiltes und/oder virtuelles System bilden können, durchgeführt werden, außer dies erschließt sich anderweitig aus dem Kontext.
  • Der Datenspeicher 1710 kann mehrere separate Datentabellen, Datenbanken, Datendokumente, dynamischen Datenspeicherschemata und/oder andere Datenspeichermechanismen und -medien zum Speichern von Daten in Bezug auf einen bestimmten Aspekt der vorliegenden Offenbarung umfassen. Zum Beispiel kann der Datenspeicher 1710 Mechanismen zum Speichern von Produktionsdaten 1712 und Benutzerinformationen 1716 umfassen, die dazu verwendet werden können, Inhalt für die Produktionsseite bereitzustellen. Der Datenspeicher 1710 wird auch so dargestellt, dass er einen Mechanismus zum Speichern von Protokolldaten 1714 umfasst, die für Berichterstattung, Analyse oder andere Zwecke verwendet werden können. Es versteht sich, dass viel andere Aspekte vorhanden sein können, die in dem Datenspeicher 1710 gespeichert werden müssen, wie etwa Seitenbildinformationen und Zugangsrechteinformationen, die gegebenenfalls in einem beliebigen der vorstehend aufgelisteten Mechanismen oder in zusätzlichen Mechanismen in dem Datenspeicher 1710 gespeichert werden können. Der Datenspeicher 1710 kann über damit assoziierter Logik dazu betrieben werden, Anweisungen von dem Anwendungsserver 1708 zu empfangen und Daten als Reaktion darauf zu erlangen, zu aktualisieren oder anderweitig zu verarbeiten. Der Anwendungsserver 1708 kann statische, dynamische oder eine Kombination von statischen und dynamischen Daten als Reaktion auf die empfangenen Anweisungen bereitstellen. Dynamische Daten, wie etwa Daten, die in Web-Logs (Blogs), Shopping-Anwendungen, Nachrichtendiensten und anderen Anwendungen verwendet werden, können durch server-seitige strukturierte Sprachen, so wie beschrieben, erzeugt werden oder können durch ein Content-Management-System (CMS), das auf dem oder unter Kontrolle des Anwendungsservers 1708 arbeitet, bereitgestellt werden. In einem Beispiel kann ein Benutzer über eine Vorrichtung, die durch den Benutzer betrieben wird, eine Suchaufforderung für einen bestimmten Typ von Objekt übermitteln. In diesem Fall kann der Datenspeicher 1710 auf die Benutzerinformationen 1716 zugreifen, um die Identität des Benutzers zu verifizieren, und er kann auf die Katalogdetailinformationen zugreifen, um Informationen über Objekte dieses Typs zu erlangen. Die Informationen können dann an den Benutzer zurückgegeben werden, wie etwa in einer Ergebnisauflistung auf einer Webseite, die der Benutzer über einen Browser auf der elektronischen Client-Vorrichtung 1702 betrachten kann. Informationen für ein bestimmtes Objekt von Interesse können auf einer dedizierten Seite oder in einem dedizierten Fenster des Browsers betrachtet werden. Es ist jedoch zu beachten, dass Ausführungsformen der vorliegenden Erfindung nicht notwendigerweise auf den Kontext von Webseiten beschränkt sind, sondern allgemeiner auf das verarbeiten von Aufforderungen im Allgemeinen anwendbar sind, wobei die Aufforderungen nicht notwendigerweise Aufforderungen für Inhalt sind.
  • Jeder Server umfasst typischerweise ein Betriebssystem, das ausführbare Programmanweisungen für die allgemeine Administration und den allgemeinen Betrieb dieses Servers bereitstellt, und umfasst typischerweise ein computerlesbares Speichermedium (z. B. eine Festplatte, Direktzugriffsspeicher, Festwertspeicher etc.), das Anweisungen speichert, die bei Ausführung (d. h. als Ergebnis der Ausführung) durch einen Prozessor des Servers es dem Server erlauben, dessen beabsichtigte Funktionen durchzuführen.
  • Die Umgebung ist in einer Ausführungsform eine verteilte und/oder virtuelle Datenverarbeitungsumgebung unter Nutzung von mehreren Computersystemen und Komponenten, die über Kommunikationsverknüpfungen miteinander verbunden sind, unter Verwendung von einem oder mehreren Computernetzwerken oder Direktverbindungen. Es ist einem Fachmann jedoch ersichtlich, dass ein solches System in einem System mit einer geringeren oder größeren Anzahl von Komponenten als in 17 veranschaulicht gleichermaßen gut arbeiten kann. Somit muss die Darstellung der Beispielumgebung 1700 in 17 als veranschaulichend und nicht beschränkend in Bezug auf den Umfang der Offenbarung erachtet werden.
  • Zusätzlich können Ausführungsformen der vorliegenden Offenbarung in Anbetracht der folgenden Sätze beschrieben werden:
    1. 1. Ein computerimplementiertes Verfahren, umfassend:
      • unter der Kontrolle von einem oder mehreren Computersystemen, die Anweisungen ausführen,
      • Empfangen, von einem Administrator eines Kontos, das durch einen Datenverarbeitungsressourcendienstanbieter bereitgestellt wird, einer ersten Auswahl eines Befehlsdokuments, wobei die erste Auswahl über eine erste Anwendungsprogrammierungsschnittstelle empfangen wird, wobei das Befehlsdokument Folgendes umfasst:
        • eine Reihe von Befehlen zum Durchführen von einer oder mehreren Operationen gegenüber einer Instanz einer virtuellen Maschine, bereitgestellt durch den Datenverarbeitungsressourcendienstanbieter; und
        • eine Reihe von Parametern, wobei die Reihe von Parametern einen Parameter beinhaltet, der eine Instanz einer virtuellen Maschine festlegt, für die die eine oder die mehreren Operationen durchzuführen sind;
        • Erlangen einer Richtlinie, die eine Genehmigung erteilt, die Reihe von Befehlen, die in dem Befehlsdokument enthalten sind, auszuführen;
        • als Ergebnis des Empfangen, von dem Administrator, einer Aufforderung, eine Einheit mit der Richtlinie zu assoziieren, Veranlassen eines Richtlinienverwaltungsdienstes des Datenverarbeitungsressourcendienstanbieters, die Einheit mit der Richtlinie zu assoziieren; Empfangen, von der Einheit über eine zweite Anwendungsprogrammierungsschnittstelle, einer zweiten Auswahl des Befehlsdokuments, wobei die zweite Auswahl zumindest einen Wert für die Reihe von Parametern festlegt, wobei der zumindest eine Wert eine Identität der Instanz einer virtuellen Maschine beinhaltet;
        • als ein Ergebnis des Verifizierens, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen in Namen der Einheit gemäß der Richtlinie auszuführen, Veranlassen, dass die Reihe von Befehlen auf der Instanz einer virtuellen Maschine ausgeführt wird, indem die Reihe von Befehlen für eine Agentensoftware bereitgestellt wird, die auf der Instanz einer virtuellen Maschine ausgeführt wird;
        • Empfangen einer Antwort von der Agentensoftware, wobei die Antwort einen Ausführungsstatus der Reihe von Befehlen angibt; und
        • Bereitstellen des Status an eine Schnittstelle der Einheit.
    2. 2. Das computerimplementierte Verfahren nach Satz 1, wobei Verifizieren, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen im Namen der Einheit gemäß der Richtlinie auszuführen, Folgendes beinhaltet:
      • Validieren, mit dem Richtlinienverwaltungsdienst, dass die Einheit mit der Richtlinie assoziiert ist;
      • Validieren, mit dem Richtlinienverwaltungsdienst, dass die Einheit Zugriff auf die Instanz einer virtuellen Maschine, die durch die Identität angegeben ist, hat; und Verifizieren, dass die Instanz einer virtuellen Maschine reagiert.
    3. 3. Das computerimplementierte Verfahren nach Satz 1 oder 2, wobei:
      • das computerimplementierte Verfahren ferner, als ein Ergebnis einer Bestimmung, dass die Instanz einer virtuellen Maschine eine nicht reagierende Instanz einer virtuellen Maschine ist, Speichern der Reihe von Befehlen in einer Warteschlange in einer Form einer Warteschlangenreihe von Befehlen umfasst;
      • Verifizieren, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen auszuführen, Bestimmen, dass die nicht reagierende Instanz einer virtuellen Maschine nun reagiert, beinhaltet; und
      • Veranlassen, dass die Reihe von Befehlen ausgeführt wird, Folgendes beinhaltet: Erlangen der Warteschlangenreihe von Befehlen von der Warteschlange; und
      • Veranlassen, dass die Warteschlangenreihe von Befehlen auf der Instanz einer virtuellen Maschine ausgeführt wird.
    4. 4. Das computerimplementierte Verfahren nach Satz 1-3, ferner umfassend:
      • Aktualisieren, basierend zumindest teilweise auf dem Ausführungsstatus, eines Protokolls von Ausführungsversuchen für die Instanz einer virtuellen Maschine in einer Datenbank;
      • Empfangen, von dem Administrator, einer zweiten Aufforderung, das Protokoll von Ausführungsversuchen für die Instanz einer virtuellen Maschine anzuzeigen; und
      • Bereitstellen, als Reaktion auf die zweite Aufforderung, des Protokolls von Ausführungsversuchen, beinhaltend den Ausführungsstatus und Details zu Versuchen, Befehle auf der Instanz einer virtuellen Maschine auszuführen, an eine Schnittstelle des Administrators.
    5. 5. Ein System, umfassend:
      • einen oder mehrere Prozessoren;
      • Speicher, beinhaltend Anweisungen, die als Ergebnis der Ausführung durch den einen oder die mehreren Prozessoren das System zu Folgendem veranlassen:
        • eine Auswahl eines Befehlsdokuments zu empfangen, wobei das Befehlsdokument eine oder mehrere Operationen und eine Reihe von Parametern festlegt, wobei die Reihe von Parametern zumindest eine Ressource festlegt;
        • einen Benutzer mit einer Richtlinie zu assoziieren, die eine Genehmigung für den Benutzer erteilt, das Befehlsdokument auszuführen;
        • eine Ausführungsaufforderung von dem Benutzer zu empfangen, wobei die Ausführungsaufforderung das Befehlsdokument und eine Reihe von Parameterwerten, die mit der Reihe von Parametern assoziiert ist, angibt;
        • zu verifizieren, dass die zumindest eine Ressource dazu in der Lage ist, die eine oder die mehreren Operationen im Namen des Benutzers durchzuführen; und
        • zu veranlassen, dass für die eine oder die mehreren Operationen des Befehlsdokuments versucht wird, diese auf der zumindest einen Ressource gemäß der Reihe von Parametern durchzuführen.
    6. 6. Das System nach Satz 5, wobei die Anweisungen ferner Anweisungen beinhalten, die das System zu Folgendem veranlassen:
      • eine Beendigungsaufforderung zu empfangen, wobei die Beendigungsaufforderung das Befehlsdokument festlegt;
      • eine Bestimmung vorzunehmen, ob ein Ausführungsstatus von der einen oder den mehreren Operationen angibt, dass das Befehlsdokument auf der zumindest einen Ressource ausgeführt wird;
      • in zumindest teilweiser Abhängigkeit von der Bestimmung, eine Abbruchaufforderung an zumindest eine Agentensoftware für die zumindest eine Ressource zu übermitteln; und
      • den Ausführungsstatus der einen oder der mehreren Operationen zu aktualisieren.
    7. 7. Das System nach Satz 5 oder 6, wobei die Anweisungen, die das System veranlassen zu verifizieren, dass die zumindest eine Ressource dazu in der Lage ist, die eine oder die mehreren Operationen durchzuführen, Anweisungen umfassen, die das System zu Folgendem veranlassen:
      • zu verifizieren, dass die zumindest eine Ressource reagiert; und
      • zu verifizieren, dass der Benutzer Zugriff hat, um die eine oder die mehreren Operationen auf der zumindest eine Ressource durchzuführen.
    8. 8. Das System nach einem der Sätze 5-7, wobei die Anweisungen ferner Anweisungen beinhalten, die das System zu Folgendem veranlassen:
      • in einem Protokoll von Ausführungsversuchen im Dauerspeicher für die zumindest eine Ressource einen Status der Ausführung der einen oder der mehreren Operationen zu speichern;
      • von einem Aufforderer eine Aufforderung zu empfangen, das Protokoll von Ausführungsversuchen für die zumindest eine Ressource anzuzeigen; und
      • als Reaktion auf die Aufforderung an eine Schnittstelle des Aufforderers das Protokoll von Ausführungsversuchen bereitzustellen, beinhaltend des Status der Ausführung und Details zu Versuchen, Operationen auf der zumindest einen Ressource durchzuführen.
    9. 9. Das System nach Satz 8, wobei die Anweisungen ferner Anweisungen beinhalten, die das System dazu veranlassen, eine Löschanwendung zu starten, die aus dem Dauerspeicher Status der Ausführung, die einen Schwellenwert der Altersgrenze übersteigen, löscht.
    10. 10. Ein nichtflüchtiges computerlesbares Speichermedium, auf dem ausführbare Anweisungen gespeichert sind, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems das Computersystem zumindest zu Folgendem veranlassen:
      • eine Auswahl eines Dokuments zu empfangen, wobei das Dokument einen Befehl und einen Parameter beinhaltet;
      • einen Benutzer zu veranlassen, mit einer Richtlinie assoziiert zu sein, die Genehmigung dazu erteilt, das Dokument auszuführen;
      • von einem Aufforderer eine Aufforderung zu erhalten, das Dokument auszuführen, wobei die Aufforderung einen Parameterwert beinhaltet;
      • zu bestimmen, dass der Aufforderer der Benutzer ist, der mit der Richtlinie assoziiert ist;
      • zu validieren, dass der Benutzer Zugriff auf eine Ressource hat, die durch den Parameterwert angegeben ist; und
      • zu veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird.
    11. 11. Das nichtflüchtige computerlesbare Speichermedium nach Satz 10, wobei die ausführbaren Anweisungen, die veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird, Anweisungen beinhalten, die das Computersystem zu Folgendem veranlassen:
      • den Befehl für eine Agentensoftware bereitzustellen, die auf der Ressource ausgeführt wird; und
      • eine Antwort von der Agentensoftware zu empfangen, die einen Status der Ausführung des Befehls angibt.
    12. 12. Das nichtflüchtige computerlesbare Speichermedium nach Satz 10 oder 11, wobei: die ausführbaren Anweisungen ferner ausführbare Anweisungen beinhalten, die das Computersystem als Ergebnis einer Bestimmung, dass die Ressource eine nicht reagierende Ressource ist, veranlassen, den Befehl in einer Warteschlange in einer Form eines Warteschlangenbefehls zu speichern; und
      • die ausführbaren Anweisungen, die veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird, ausführbare Anweisungen beinhalten, die das Computersystem als Ergebnis einer Bestimmung, dass die nicht reagierende Ressource nun reagiert, zu Folgendem veranlassen:
        • den Warteschlangenbefehl von der Warteschlange zu erlangen; und zu veranlassen, dass der Warteschlangenbefehl gegenüber der Ressource ausgeführt wird.
    13. 13. Das nichtflüchtige computerlesbare Speichermedium nach Satz 12, wobei die ausführbaren Anweisungen, die das Computersystem veranlassen, die Bestimmung vorzunehmen, dass die Ressource eine nicht reagierende Ressource ist, ausführbare Anweisungen beinhalten, die das Computersystem zu Folgendem veranlassen:
      • eine Dauer, seit der der Warteschlangenbefehl erstmals in der Warteschlange ist, mit einem Zeitabschaltungsschwellenwert zu vergleichen; und
      • in zumindest teilweiser Abhängigkeit davon, ob die Dauer einen Wert relativ zu dem Zeitabschaltungsschwellenwert erreicht:
      • den Warteschlangenbefehl aus der Warteschlange zu löschen; und
      • einen Status des Warteschlangenbefehls zu aktualisieren, um anzuzeigen, dass der Warteschlangenbefehl abgebrochen wurde.
    14. 14. Das nichtflüchtige computerlesbare Speichermedium nach Satz 12, wobei die ausführbaren Anweisungen, die das Computersystem dazu veranlassen, den Befehl in einer Warteschlange zu speichern, ferner ausführbare Anweisungen beinhalten, die das Computersystem dazu veranlassen, in zumindest teilweiser Abhängigkeit von einer Bestimmung, dass eine Anzahl von Befehlen in der Warteschlange nicht eine vorbestimmte Grenze übersteigt, den Befehl in der Warteschlange zu speichern.
    15. 15. Das nichtflüchtige computerlesbare Speichermedium nach Satz 14, wobei: die Ressource mit einem Konto assoziiert ist, das durch einen Datenverarbeitungsressourcendienstanbieter für einen Kunden bereitgestellt wird; und die vorbestimmte Grenze von einem Typ des Kontos, das durch den Datenverarbeitungsressourcendienstanbieter bereitgestellt wird, abhängig ist.
  • Die verschiedenen Ausführungsformen können ferner in einer breiten Vielzahl von Betriebsumgebungen umgesetzt werden, was in einigen Fällen einen oder mehrere Benutzercomputer, Datenverarbeitungsvorrichtungen oder Verarbeitungsvorrichtungen umfassen kann, die dazu verwendet werden können, eine beliebige Anzahl von Anwendungen zu betreiben. Benutzer- oder Client-Vorrichtungen können eine beliebige Anzahl von Computern umfassen, wie etwa Desktop-, Laptop- oder Tablet-Computer, auf denen ein Standardbetriebssystem ausgeführt wird, sowie zellulare, drahtlose und tragbare Vorrichtungen, auf denen mobile Software ausgeführt wird und die in der Lage sind, eine Anzahl von Networking- und Messaging-Protokollen zu unterstützen. Ein solches System kann auch eine Anzahl von Workstations umfassend, auf denen ein beliebiges aus einer Vielzahl von handelsüblichen Betriebssystemen und sonstige bekannte Anwendungen für Zwecke wie etwa Entwicklung und Datenbankverwaltung ausgeführt werden. Diese Vorrichtungen können auch andere elektronische Vorrichtungen umfassen, wie etwa Dummy-Terminals, Thin-Clients, Spielesysteme und andere Vorrichtungen, die in der Lage sind, über ein Netzwerk zu kommunizieren. Diese Vorrichtungen können auch virtuelle Vorrichtungen umfassen, wie etwa virtuelle Maschinen, Hypervisoren und andere virtuelle Vorrichtungen, die in der Lage sind, über ein Netzwerk zu kommunizieren.
  • Verschiedene Ausführungsformen der vorliegenden Offenbarung nutzen ein Netzwerk, das dem Fachmann bekannt ist, zum Unterstützen von Kommunikation unter Verwendung eines beliebigen aus einer Vielzahl von handelsüblichen Protokollen wie etwa Transmission Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Protokolle, die in verschiedenen Schichten des Open System Interconnection (OSI)-Modells betrieben werden, File Transfer Protocol (FTP), Universal Plug and Play (UpnP), Network File System (NFS), Common Internet File System (CIFS) und AppleTalk. Das Netzwerk 1704 kann zum Beispiel ein lokales Netzwerk, ein Weitbereichsnetzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Telefonnetz, in Infrarot-Netzwerk, ein Drahtlosnetzwerk, ein Satellitennetzwerk und eine beliebige Kombination davon sein. In einigen Ausführungsformen können verbindungsorientierte Protokolle verwendet werden, um zwischen Netzwerkendpunkten zu kommunizieren. Verbindungsorientierte Protokolle (manchmal als verbindungsbasierte Protokolle bezeichnet) sind in der Lage, Daten in einem geordneten Strom zu übertragen. Verbindungsorientierte Protokolle können zuverlässig oder unzuverlässig sein. Zum Beispiel ist das TCP-Protokoll ein zuverlässiges verbindungsorientiertes Protokoll. Asynchronous Transfer Mode (ATM) und Frame Relay sind unzuverlässige verbindungsorientierte Protokolle. Verbindungsorientierte Protokolle stehen im Gegensatz zu paketorientierten Protokollen wie etwa UDP, das Pakete ohne eine garantierte Ordnung überträgt.
  • In Ausführungsformen, die einen Webserver verwenden, kann der Webserver beliebige aus einer Vielzahl von Server- oder Mid-Tier-Anwendungen ausführen, einschließlich Hypertext Transfer Protocol (HTTP)-Server, FTP-Server, Common Gateway Interface (CGI)-Server, Datenserver, Java-Server, Apache-Server und Business-Anwendungsserver. Der/die Server kann/können auch in der Lage sein, Programme oder Skripte als Reaktion auf Aufforderungen von den Benutzervorrichtungen auszuführen, wie etwa durch Ausführen von einer oder mehreren Webanwendungen, die als ein oder mehrere Skripte oder Programme umgesetzt sein können die in einer beliebigen Programmiersprache geschrieben sind, wie etwa Java®, C, C# oder C++ oder eine beliebige Skriptsprache wie etwa Ruby, PHP, Perl, Python oder TCL, sowie Kombinationen davon. Der/die Server kann/können auch Datenbankserver umfassen, einschließlich solcher, die handelsüblich von Oracle®, Microsoft®, Sybase® und IBM® erhältlich sind, sowie Open-Source-Server wie etwa MySQL, Postgres, SQLite, MongoDB und beliebige andere Server, die in der Lage sind, strukturierte oder unstrukturierte Daten zu speichern, abzurufen und darauf zuzugreifen. Datenbankserver können tabellenbasierte Server, dokumentenbasierte Server, unstrukturierte Server, relationale Server, nicht-relationale Server oder Kombinationen von diesen und/oder andere Datenbankserver umfassen.
  • Die Umgebung kann eine Vielzahl von Datenspeichern und anderem Speicher und Speichermedien, wie vorstehend erörtert, umfassen. Diese können an einer Vielzahl von Orten sitzen, wie etwa auf einem Speichermedium, das für einen oder mehrere der Computer lokal (und/oder darin ansässig) ist oder von beliebigen oder allen der Computer über das Netzwerk 1704 hinweg entfernt ist. In einer bestimmten Reihe von Ausführungsformen können die Informationen in einem Storage Area Network (SAN), das dem Fachmann bekannt ist, liegen. Gleichmaßen können beliebige erforderliche Dateien zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerkvorrichtungen zugeschrieben sind, gegebenenfalls lokal und/oder entfernt gespeichert werden. Wenn ein System computergestützte Vorrichtungen umfasst, kann jede dieser Vorrichtungen Hardware-Elemente umfassen, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente zum Beispiel eine zentrale Verarbeitungseinheit („CPU“ oder „Prozessor“), eine Eingabevorrichtung (z. B. eine Maus, eine Tastatur, eine Steuerung, einen Touchscreen oder ein Keypad) und eine Ausgabevorrichtung (z. B. eine Anzeigevorrichtung, einen Drucker oder einen Lautsprecher) umfassen. Ein solches System kann auch eine oder mehrere Speichervorrichtungen umfassen, wie etwa Plattenlaufwerke, optische Speichervorrichtungen und Solid-State-Speichervorrichtungen wie etwa Direktzugriffsspeicher (RAM) oder Festwertspeicher (ROM), sowie entfernbare Medienvorrichtungen, Speicherkarten, Flash-Karten etc.
  • Diese Vorrichtungen können auch ein computerlesbares Speichermedien-Lesegerät, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder drahtgebunden), eine Infrarot-Kommunikationsvorrichtung etc.) und Arbeitsspeicher, wie vorstehend beschrieben, umfassen. Das computerlesbare Speichermedien-Lesegerät kann mit einem computerlesbaren Speichermedium, umfassend entfernte, lokale, feste und/oder entfernbare Speichervorrichtungen, sowie Speichermedien für vorübergehendes und/oder dauerhaftes Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Information, verbunden sein oder dazu konfiguriert sein, dieses zu empfangen. Das System und die verschiedenen Vorrichtungen umfassen typischerweise auch eine Anzahl von Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die innerhalb einer Arbeitsspeichervorrichtung angeordnet sind, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie etwa einer Client-Anwendung oder eines Webbrowsers. Zusätzlich kann auch angepasste Hardware verwendet werden und/oder bestimmte Elemente können in Hardware, Software (einschließlich portabler Software wie etwa Applets) oder beiden umgesetzt sein. Ferner kann eine Verbindung zu anderen Datenverarbeitungsvorrichtungen wie etwa Netzwerk-Eingabe/Ausgabe-Vorrichtungen verwendet werden.
  • Speichermedien und computerlesbare Medien, die Code oder Teile von Code enthalten, können beliebige geeignete Medien umfassen, die in der Technik bekannt sind oder verwendet werden, einschließlich Speichermedien und Kommunikationsmedien wie etwa flüchtige und nichtflüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung und/oder Übertragung von Informationen umgesetzt sind, wie etwa computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten, einschließlich RAM, ROM, elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM), Flash-Speicher oder andere Speichertechnologie, Compact-Disc-Festwertspeicher (CD-ROM), Digital Versatile Disk (DVD) oder anderer optischer Speicher, Magnetkassetten, Magnetband, Magnetdiskspeicher oder andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium, das verwendet werden kann, um die gewünschten Information zu speichern und auf das durch die Systemvorrichtung zugegriffen werden kann. Basierend auf der Offenbarung und den bereitgestellten Lehren versteht ein durchschnittlicher Fachmann, dass andere Wege und/oder Verfahren vorhanden sind, um die verschiedenen Ausführungsformen umzusetzen.
  • Die Beschreibung und die Zeichnungen sollen als in einem veranschaulichenden statt einem einschränkenden Sinn betrachtet werden. Es versteht sich jedoch, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Geist und Umfang der Erfindung, wie in den Patentansprüchen dargelegt, abzuweichen.
  • Andere Variationen sind im Geist der vorliegenden Offenbarung inbegriffen. Während die Techniken verschiedenen Modifikationen und alternativen Konstruktionen unterliegen, werden bestimmte veranschaulichende Ausführungsformen davon in den Zeichnungen gezeigt und wurden vorstehend im Detail beschrieben. Es ist jedoch anzumerken, dass keine Absicht besteht, die spezifische Form oder die spezifischen Formen, die offenbart ist/sind, einzuschränken, sondern die Absicht im Gegenteil darin besteht, alle Modifikationen, alternativen Konstruktionen und Entsprechungen abzudecken, die in den Geist und Umfang der Erfindung, wie durch die angehängten Patentansprüche definiert, fallen.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der/die/das“ und ähnlicher Referenten in dem Zusammenhang der Beschreibung der Ausführungsformen (besonders in dem Zusammenhang der folgenden Patentansprüche) soll so ausgelegt werden, dass sie sowohl den Singular als auch den Plural abdeckt, sofern nicht anderweitig angegeben oder im eindeutigen Widerspruch zum Kontext. Die Begriffe „umfassend“, „aufweisend“, „einschließend“ und „enthaltend“ sind als offene Begriffe auszulegen (d. h. „einschließend unter anderem“), sofern nicht anderweitig angegeben. Der Begriff „verbunden“ ist, wenn unmodifiziert und mit Bezugnahme auf physische Verbindungen, als teilweise oder vollständig darin enthalten, damit befestigt oder zusammen verbunden auszulegen, selbst wenn etwas dazwischenliegt. Die Angabe von Wertebereichen soll lediglich als ein kurzschriftliches Verfahren für einzelne Bezugnahmen im Hinblick auf jeden separaten Wert dienen, der in diesen Bereich fällt, sofern nicht anderweitig angegeben, und jeder separate Wert wird in die Patentschrift so eingebunden, als ob er einzeln aufgezählt werden würde. Die Verwendung des Begriffs „Reihe“ (z. B. „eine Reihe von Objekten“) oder „Untermenge“ ist als eine nicht-leere Sammlung umfassend ein oder mehrere Elemente auszulegen, sofern es nicht anders angegeben ist oder der Kontext dem anderweitig widerspricht. Sofern es nicht anders angegeben ist oder der Kontext dem anderweitig widerspricht, bezeichnet ferner der Begriff „Untermenge“ nicht notwendigerweise eine richtige Untermenge der entsprechenden Reihe, sondern die Untermenge und die entsprechende Reihe können auch gleich sein.
  • Für verbindende Sprache wie etwa Formulierungen in der Form „zumindest eines von A, B, und C“ oder „zumindest eines von A, B und C“ versteht es sich im Kontext, dass sie allgemein verwendet wird, um darzustellen, dass ein Objekt, Begriff etc. entweder A oder B oder C oder eine beliebige nicht-leere Untermenge der Reihe von A und B und C sein kann, sofern es nicht spezifisch anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. Zum Beispiel beziehen sich in dem veranschaulichenden Beispiel einer Reihe mit drei Elementen die verbindenden Formulierungen „zumindest eines von A, B, und C“ oder „zumindest eines von A, B und C“ auf eine beliebige der folgenden Reihen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit ist diese verbindende Sprache nicht im Allgemeinen dazu bestimmt, zu implizieren, dass bestimmte Ausführungsformen erfordern, das zumindest eines von A, zumindest eines von B und zumindest eines von C jeweils vorhanden sein muss.
  • Operationen von Prozessen, die beschrieben sind, können in jeder geeigneten Reihenfolge durchgeführt werden, sofern es nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht. Beschriebene Prozesse (oder Variationen und/oder Kombinationen davon) können unter der Kontrolle von einem oder mehreren Computersystemen durchgeführt werden, die mit ausführbaren Anweisungen konfiguriert sind, und können als Code (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der gemeinsam auf einem oder mehreren Prozessoren durch Hardware oder Kombinationen davon ausgeführt wird. Der Code kann auf einem computerlesbaren Speichermedium gespeichert sein, zum Beispiel in der Form eines Computerprogramms, das Anweisungen umfasst, die durch einen oder mehrere Prozessoren ausführbar sind. Das computerlesbare Speichermedium kann nichtflüchtig sein. In einigen Ausführungsformen wird der Code auf einer Reihe von einem oder mehreren nichtflüchtigen computerlesbaren Speichermedien gespeichert, auf dem ausführbare Anweisungen gespeichert sind, die bei Ausführung (d. h. resultierend aus deren Ausführung) durch einen oder mehrere Prozessoren eines Computersystems das Computersystem dazu veranlassen, hierin beschriebene Operationen durchzuführen. Die Reihe von nichtflüchtigen computerlesbaren Speichermedien kann mehrere nichtflüchtige computerlesbare Speichermedien umfassend und eines oder mehrere von einzelnen nichtflüchtigen Speichermedien der mehreren nichtflüchtigen computerlesbaren Speichermedien können den gesamten Code nicht enthalten, wobei die mehreren nichtflüchtigen computerlesbaren Speichermedien den gesamten Code speichern. Ferner werden in einigen Beispielen die ausführbaren Anweisungen so ausgeführt, dass unterschiedliche Anweisungen durch unterschiedliche Prozessoren ausgeführt werden. Als ein veranschaulichendes Beispiel kann ein nichtflüchtiges computerlesbares Speichermedium Anweisungen speichern. Eine Haupt-CPU kann einige der Anweisungen ausführen und eine Grafikprozessoreinheit kann andere der Anweisungen ausführen. Im Allgemeinen können unterschiedliche Komponenten eines Computersystems über separate Prozessoren verfügen und unterschiedliche Prozessoren können unterschiedliche Untermengen der Anweisungen ausführen.
  • Dementsprechend sind in einigen Beispielen Computersysteme dazu konfiguriert, einen oder mehrere Dienste umzusetzen, die einzeln oder gemeinsam Operationen von Prozessen, die hierin beschrieben sind, durchführen. Diese Computersysteme können zum Beispiel mit entsprechender Hardware und/oder Software konfiguriert sein, die die Durchführung der Operationen ermöglicht. Ferner können Computersysteme, die verschiedene Ausführungsformen der vorliegenden Offenbarung umsetzen, in einigen Beispielen einzelne Vorrichtungen sein und in anderen Beispielen verteilte Computersysteme sein, die mehrere Vorrichtungen umfassen, die unterschiedlich arbeiten, sodass das verteilte Computersystem die beschriebenen Operationen durchführt und sodass eine einzelne Vorrichtung nicht alle Operationen durchführen kann.
  • Die Verwendung von beliebigen Beispielen oder beispielhafter Sprache (z. B. „wie etwa“) soll lediglich die Ausführungsformen der Erfindung besser veranschaulichen und stellt keine Einschränkung hinsichtlich des Umfangs der Erfindung dar, sofern nicht anders beansprucht. Keinerlei Formulierung in der Beschreibung sollte so ausgelegt werden, dass sie ein beliebiges nicht beanspruchtes Element als für die Umsetzung der Erfindung wesentlich angibt.
  • Es werden Ausführungsformen dieser Offenbarung beschrieben, einschließlich der besten den Erfindern bekannten Art und Weise zum Ausführen der Erfindung. Der Fachmann kann bei der Lektüre der vorstehenden Beschreibung Variationen an diesen beschriebenen Ausführungsformen erkennen. Die Erfinder gehen davon aus, dass der Fachmann derlei Variationen im geeigneten Fall anwendet, und die Erfinder sehen für Ausführungsformen der vorliegenden Offenbarung vor, dass diese anders als konkret beschrieben umgesetzt werden. Dementsprechend umfasst der Umfang der vorliegenden Erfindung sämtliche Modifikationen und Entsprechungen des in den hier beigefügten Patentansprüchen zitierten Gegenstands, wie durch jeweils geltendes Recht zulässig. Darüber hinaus ist jede beliebige Kombination der vorstehend beschriebenen Elemente in allen möglichen Variationen davon in dem Umfang der vorliegenden Offenbarung enthalten, sofern es nicht anders angegeben ist oder der Kontext dem anderweitig eindeutig widerspricht.
  • Alle Bezugnahmen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, die zitiert werden, sind hiermit durch Bezugnahme in dem gleichen Maße aufgenommen, also ob jede Bezugnahme einzeln und spezifisch als durch Bezugnahme aufgenommen angegeben wäre und in ihrer Gesamtheit dargelegt worden wäre.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 14975376 [0001]
    • US 62246537 [0001]

    Claims (16)

    1. FOLGENDES WIRD BEANSPRUCHT:
    2. Computerimplementiertes Verfahren, umfassend: unter der Kontrolle von einem oder mehreren Computersystemen, die Anweisungen ausführen, Empfangen, von einem Administrator eines Kontos, das durch einen Datenverarbeitungsressourcendienstanbieter bereitgestellt wird, einer ersten Auswahl eines Befehlsdokuments, wobei die erste Auswahl über eine erste Anwendungsprogrammierungsschnittstelle empfangen wird, wobei das Befehlsdokument Folgendes umfasst: eine Reihe von Befehlen zum Durchführen von einer oder mehreren Operationen gegenüber einer Instanz einer virtuellen Maschine, bereitgestellt durch den Datenverarbeitungsressourcendienstanbieter; und eine Reihe von Parametern, wobei die Reihe von Parametern einen Parameter beinhaltet, der eine Instanz einer virtuellen Maschine festlegt, für die die eine oder die mehreren Operationen durchzuführen sind; Erlangen einer Richtlinie, die eine Genehmigung erteilt, die Reihe von Befehlen, die in dem Befehlsdokument enthalten sind, auszuführen; als Ergebnis des Empfangen, von dem Administrator, einer Aufforderung, eine Einheit mit der Richtlinie zu assoziieren, Veranlassen eines Richtlinienverwaltungsdienstes des Datenverarbeitungsressourcendienstanbieters, die Einheit mit der Richtlinie zu assoziieren; Empfangen, von der Einheit über eine zweite Anwendungsprogrammierungsschnittstelle, einer zweiten Auswahl des Befehlsdokuments, wobei die zweite Auswahl zumindest einen Wert für die Reihe von Parametern festlegt, wobei der zumindest eine Wert eine Identität der Instanz einer virtuellen Maschine beinhaltet; als ein Ergebnis des Verifizierens, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen in Namen der Einheit gemäß der Richtlinie auszuführen, Veranlassen, dass die Reihe von Befehlen auf der Instanz einer virtuellen Maschine ausgeführt wird, indem die Reihe von Befehlen für eine Agentensoftware bereitgestellt wird, die auf der Instanz einer virtuellen Maschine ausgeführt wird; Empfangen einer Antwort von der Agentensoftware, wobei die Antwort einen Ausführungsstatus der Reihe von Befehlen angibt; und Bereitstellen des Status an eine Schnittstelle der Einheit.
    3. Computerimplementiertes Verfahren nach Anspruch 1, wobei Verifizieren, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen im Namen der Einheit gemäß der Richtlinie auszuführen, Folgendes beinhaltet: Validieren, mit dem Richtlinienverwaltungsdienst, dass die Einheit mit der Richtlinie assoziiert ist; Validieren, mit dem Richtlinienverwaltungsdienst, dass die Einheit Zugriff auf die Instanz einer virtuellen Maschine, die durch die Identität angegeben ist, hat; und Verifizieren, dass die Instanz einer virtuellen Maschine reagiert.
    4. Computerimplementiertes Verfahren nach Anspruch 1, wobei: das computerimplementierte Verfahren ferner, als ein Ergebnis einer Bestimmung, dass die Instanz einer virtuellen Maschine eine nicht reagierende Instanz einer virtuellen Maschine ist, Speichern der Reihe von Befehlen in einer Warteschlange in einer Form einer Warteschlangenreihe von Befehlen umfasst; Verifizieren, dass die Instanz einer virtuellen Maschine dazu in der Lage ist, die Reihe von Befehlen auszuführen, Bestimmen, dass die nicht reagierende Instanz einer virtuellen Maschine nun reagiert, beinhaltet; und Veranlassen, dass die Reihe von Befehlen ausgeführt wird, Folgendes beinhaltet: Erlangen der Warteschlangenreihe von Befehlen von der Warteschlange; und Veranlassen, dass die Warteschlangenreihe von Befehlen auf der Instanz einer virtuellen Maschine ausgeführt wird.
    5. Computerimplementiertes Verfahren nach Anspruch 1, ferner umfassend: Aktualisieren, basierend zumindest teilweise auf dem Ausführungsstatus, eines Protokolls von Ausführungsversuchen für die Instanz einer virtuellen Maschine in einer Datenbank; Empfangen, von dem Administrator, einer zweiten Aufforderung, das Protokoll von Ausführungsversuchen für die Instanz einer virtuellen Maschine anzuzeigen; und Bereitstellen, als Reaktion auf die zweite Aufforderung, des Protokolls von Ausführungsversuchen, beinhaltend den Ausführungsstatus und Details zu Versuchen, Befehle auf der Instanz einer virtuellen Maschine auszuführen, an eine Schnittstelle des Administrators.
    6. System, umfassend: einen oder mehrere Prozessoren; Speicher, beinhaltend Anweisungen, die als Ergebnis der Ausführung durch den einen oder die mehreren Prozessoren das System zu Folgendem veranlassen: eine Auswahl eines Befehlsdokuments zu empfangen, wobei das Befehlsdokument eine oder mehrere Operationen und eine Reihe von Parametern festlegt, wobei die Reihe von Parametern zumindest eine Ressource festlegt; einen Benutzer mit einer Richtlinie zu assoziieren, die eine Genehmigung für den Benutzer erteilt, das Befehlsdokument auszuführen; eine Ausführungsaufforderung von dem Benutzer zu empfangen, wobei die Ausführungsaufforderung das Befehlsdokument und eine Reihe von Parameterwerten, die mit der Reihe von Parametern assoziiert ist, angibt; zu verifizieren, dass die zumindest eine Ressource dazu in der Lage ist, die eine oder die mehreren Operationen im Namen des Benutzers durchzuführen; und zu veranlassen, dass für die eine oder die mehreren Operationen des Befehlsdokuments versucht wird, diese auf der zumindest einen Ressource gemäß der Reihe von Parametern durchzuführen.
    7. System nach Anspruch 5, wobei die Anweisungen ferner Anweisungen beinhalten, die das System zu Folgendem veranlassen: eine Beendigungsaufforderung zu empfangen, wobei die Beendigungsaufforderung das Befehlsdokument festlegt; eine Bestimmung vorzunehmen, ob ein Ausführungsstatus von der einen oder den mehreren Operationen angibt, dass das Befehlsdokument auf der zumindest einen Ressource ausgeführt wird; in zumindest teilweiser Abhängigkeit von der Bestimmung, eine Abbruchaufforderung an zumindest eine Agentensoftware für die zumindest eine Ressource zu übermitteln; und den Ausführungsstatus der einen oder der mehreren Operationen zu aktualisieren.
    8. System nach Anspruch 5, wobei die Anweisungen, die das System veranlassen zu verifizieren, dass die zumindest eine Ressource dazu in der Lage ist, die eine oder die mehreren Operationen durchzuführen, Anweisungen umfassen, die das System zu Folgendem veranlassen: zu verifizieren, dass die zumindest eine Ressource reagiert; und zu verifizieren, dass der Benutzer Zugriff hat, um die eine oder die mehreren Operationen auf der zumindest eine Ressource durchzuführen.
    9. System nach Anspruch 5, wobei die Anweisungen ferner Anweisungen beinhalten, die das System zu Folgendem veranlassen: in einem Protokoll von Ausführungsversuchen im Dauerspeicher für die zumindest eine Ressource einen Status der Ausführung der einen oder der mehreren Operationen zu speichern; von einem Aufforderer eine Aufforderung zu empfangen, das Protokoll von Ausführungsversuchen für die zumindest eine Ressource anzuzeigen; und als Reaktion auf die Aufforderung an eine Schnittstelle des Aufforderers das Protokoll von Ausführungsversuchen bereitzustellen, beinhaltend des Status der Ausführung und Details zu Versuchen, Operationen auf der zumindest einen Ressource durchzuführen.
    10. System nach Anspruch 8, wobei die Anweisungen ferner Anweisungen beinhalten, die das System dazu veranlassen, eine Löschanwendung zu starten, die aus dem Dauerspeicher Status der Ausführung, die einen Schwellenwert der Altersgrenze übersteigen, löscht.
    11. Nichtflüchtiges computerlesbares Speichermedium, auf dem ausführbare Anweisungen gespeichert sind, die bei Ausführung durch einen oder mehrere Prozessoren eines Computersystems das Computersystem zumindest zu Folgendem veranlassen: eine Auswahl eines Dokuments zu empfangen, wobei das Dokument einen Befehl und einen Parameter beinhaltet; einen Benutzer zu veranlassen, mit einer Richtlinie assoziiert zu sein, die Genehmigung dazu erteilt, das Dokument auszuführen; von einem Aufforderer eine Aufforderung zu erhalten, das Dokument auszuführen, wobei die Aufforderung einen Parameterwert beinhaltet; zu bestimmen, dass der Aufforderer der Benutzer ist, der mit der Richtlinie assoziiert ist; zu validieren, dass der Benutzer Zugriff auf eine Ressource hat, die durch den Parameterwert angegeben ist; und zu veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird.
    12. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 10, wobei die ausführbaren Anweisungen, die veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird, Anweisungen beinhalten, die das Computersystem zu Folgendem veranlassen: den Befehl für eine Agentensoftware bereitzustellen, die auf der Ressource ausgeführt wird; und eine Antwort von der Agentensoftware zu empfangen, die einen Status der Ausführung des Befehls angibt.
    13. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 10, wobei: die ausführbaren Anweisungen ferner ausführbare Anweisungen beinhalten, die das Computersystem als Ergebnis einer Bestimmung, dass die Ressource eine nicht reagierende Ressource ist, veranlassen, den Befehl in einer Warteschlange in einer Form eines Warteschlangenbefehls zu speichern; und die ausführbaren Anweisungen, die veranlassen, dass der Befehl gegenüber der Ressource ausgeführt wird, ausführbare Anweisungen beinhalten, die das Computersystem als Ergebnis einer Bestimmung, dass die nicht reagierende Ressource nun reagiert, zu Folgendem veranlassen: den Warteschlangenbefehl von der Warteschlange zu erlangen; und zu veranlassen, dass der Warteschlangenbefehl gegenüber der Ressource ausgeführt wird.
    14. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 12, wobei die ausführbaren Anweisungen, die das Computersystem veranlassen, die Bestimmung vorzunehmen, dass die Ressource eine nicht reagierende Ressource ist, ausführbare Anweisungen beinhalten, die das Computersystem zu Folgendem veranlassen: eine Dauer, seit der der Warteschlangenbefehl erstmals in der Warteschlange ist, mit einem Zeitabschaltungsschwellenwert zu vergleichen; und in zumindest teilweiser Abhängigkeit davon, ob die Dauer einen Wert relativ zu dem Zeitabschaltungsschwellenwert erreicht: den Warteschlangenbefehl aus der Warteschlange zu löschen; und einen Status des Warteschlangenbefehls zu aktualisieren, um anzuzeigen, dass der Warteschlangenbefehl abgebrochen wurde.
    15. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 12, wobei die ausführbaren Anweisungen, die das Computersystem dazu veranlassen, den Befehl in einer Warteschlange zu speichern, ferner ausführbare Anweisungen beinhalten, die das Computersystem dazu veranlassen, in zumindest teilweiser Abhängigkeit von einer Bestimmung, dass eine Anzahl von Befehlen in der Warteschlange nicht eine vorbestimmte Grenze übersteigt, den Befehl in der Warteschlange zu speichern.
    16. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 14, wobei: die Ressource mit einem Konto assoziiert ist, das durch einen Datenverarbeitungsressourcendienstanbieter für einen Kunden bereitgestellt wird; und die vorbestimmte Grenze von einem Typ des Kontos, das durch den Datenverarbeitungsressourcendienstanbieter bereitgestellt wird, abhängig ist.
    DE112016004896.3T 2015-10-26 2016-10-26 Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung Pending DE112016004896T5 (de)

    Applications Claiming Priority (5)

    Application Number Priority Date Filing Date Title
    US201562246537P 2015-10-26 2015-10-26
    US62/246,537 2015-10-26
    US14/975,376 2015-12-18
    US14/975,376 US9794292B2 (en) 2015-10-26 2015-12-18 Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment
    PCT/US2016/058860 WO2017075051A1 (en) 2015-10-26 2016-10-26 Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment

    Publications (1)

    Publication Number Publication Date
    DE112016004896T5 true DE112016004896T5 (de) 2018-07-12

    Family

    ID=58562144

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE112016004896.3T Pending DE112016004896T5 (de) 2015-10-26 2016-10-26 Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung

    Country Status (4)

    Country Link
    US (2) US9794292B2 (de)
    CN (1) CN108292349B (de)
    DE (1) DE112016004896T5 (de)
    WO (1) WO2017075051A1 (de)

    Families Citing this family (48)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US7840653B1 (en) * 2007-10-25 2010-11-23 United Services Automobile Association (Usaa) Enhanced throttle management system
    US10200501B1 (en) * 2015-12-16 2019-02-05 Amazon Technologies, Inc. Program code allocation based on processor features
    US10691501B1 (en) * 2016-10-25 2020-06-23 Amazon Technologies, Inc. Command invocations for target computing resources
    US11010352B2 (en) * 2017-01-23 2021-05-18 Hysolate Ltd. Unified file system on air-gapped endpoints
    US11150936B2 (en) * 2017-01-23 2021-10-19 Hysolate Ltd. Techniques for binding user identities to appropriate virtual machines with single sign-on
    US11153322B2 (en) 2017-01-23 2021-10-19 Hysolate Ltd. Techniques for seamlessly launching applications in appropriate virtual machines
    US10699003B2 (en) 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
    US10996997B2 (en) * 2017-01-23 2021-05-04 International Business Machines Corporation API-based service command invocation
    US10728181B2 (en) * 2017-03-27 2020-07-28 Dell Products, L.P. Advanced message queuing protocol (AMQP) message broker and messaging client interactions via dynamic programming commands using message properties
    US10678574B1 (en) * 2017-11-01 2020-06-09 Amazon Technologies, Inc. Reconfiguration rate-control
    US10701000B1 (en) 2017-11-30 2020-06-30 Open Invention Network Llc VNFM assisted fault handling in virtual network function components
    CN108306941A (zh) * 2018-01-05 2018-07-20 上海你我贷互联网金融信息服务有限公司 一种分布式消息系统
    CN108270668B (zh) * 2018-01-31 2021-02-02 北京工业大学 一种基于消息队列的iSIGHT模型文件管理系统
    US10785291B2 (en) 2018-05-09 2020-09-22 Bank Of America Corporation Executing ad-hoc commands on-demand in a public cloud environment absent use of a command line interface
    CN112513813A (zh) * 2018-06-25 2021-03-16 亚马逊技术有限公司 在按需网络代码执行系统中执行辅助功能
    US11102214B2 (en) * 2018-08-27 2021-08-24 Amazon Technologies, Inc. Directory access sharing across web services accounts
    CN109639761A (zh) * 2018-11-02 2019-04-16 深圳竹云科技有限公司 一种通过安全协议远程管理Windows的方法
    JP6951375B2 (ja) * 2019-03-11 2021-10-20 株式会社東芝 情報処理装置、情報処理方法及びプログラム
    JP7063844B2 (ja) * 2019-04-26 2022-05-09 ファナック株式会社 ロボット教示装置
    CN110971480B (zh) * 2019-10-18 2022-08-19 平安科技(深圳)有限公司 计算机网络状况监控方法、装置、计算机设备及存储介质
    US11354402B2 (en) * 2019-11-01 2022-06-07 Microsoft Technology Licensing, Llc Virtual environment type validation for policy enforcement
    CN111399982A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 一种支持多环境的命令远程执行装置及方法
    CN111628915B (zh) * 2020-07-16 2022-03-25 安徽华速达电子科技有限公司 网关设备的网络连接状态实时监控管理方法及系统
    CN112083997A (zh) * 2020-09-25 2020-12-15 中国建设银行股份有限公司 服务通道的启停控制方法、管理方法及装置
    WO2022068796A1 (zh) * 2020-09-30 2022-04-07 华为云计算技术有限公司 云平台及基于云平台的程序代码处理方法
    US11604595B2 (en) 2020-12-09 2023-03-14 Dell Products L.P. Data mirroring and data migration between storage volumes using system control processors
    US11693703B2 (en) 2020-12-09 2023-07-04 Dell Products L.P. Monitoring resource utilization via intercepting bare metal communications between resources
    US11809911B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. Resuming workload execution in composed information handling system
    US11809912B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. System and method for allocating resources to perform workloads
    US11675665B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. System and method for backup generation using composed systems
    US11704159B2 (en) 2020-12-09 2023-07-18 Dell Products L.P. System and method for unified infrastructure architecture
    US11853782B2 (en) 2020-12-09 2023-12-26 Dell Products L.P. Method and system for composing systems using resource sets
    US11928515B2 (en) 2020-12-09 2024-03-12 Dell Products L.P. System and method for managing resource allocations in composed systems
    US11675625B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. Thin provisioning of resources using SCPS and a bidding system
    US11435814B2 (en) 2020-12-09 2022-09-06 Dell Produts L.P. System and method for identifying resources of a composed system
    US11698821B2 (en) 2020-12-09 2023-07-11 Dell Products L.P. Composable information handling systems in an open network using access control managers
    US11934875B2 (en) 2020-12-09 2024-03-19 Dell Products L.P. Method and system for maintaining composed systems
    US11768612B2 (en) 2021-01-28 2023-09-26 Dell Products L.P. System and method for distributed deduplication in a composed system
    US11797341B2 (en) 2021-01-28 2023-10-24 Dell Products L.P. System and method for performing remediation action during operation analysis
    US11687280B2 (en) 2021-01-28 2023-06-27 Dell Products L.P. Method and system for efficient servicing of storage access requests
    US11675916B2 (en) 2021-01-28 2023-06-13 Dell Products L.P. Method and system for limiting data accessibility in composed systems
    US11947697B2 (en) 2021-07-22 2024-04-02 Dell Products L.P. Method and system to place resources in a known state to be used in a composed information handling system
    US11928506B2 (en) 2021-07-28 2024-03-12 Dell Products L.P. Managing composition service entities with complex networks
    US11876875B2 (en) * 2021-10-08 2024-01-16 Oracle International Corporation Scalable fine-grained resource count metrics for cloud-based data catalog service
    US20230153031A1 (en) * 2021-11-16 2023-05-18 Samsung Electronics Co., Ltd. Storage device supporting multi-host and operation method thereof
    US11625339B1 (en) 2022-01-21 2023-04-11 Rapid7, Inc. Large scale responsive and generic endpoint command invocation mechanism
    CN117435201A (zh) * 2022-07-13 2024-01-23 华为云计算技术有限公司 分布式服务生成方法、系统、计算设备及存储介质
    CN117290257B (zh) * 2023-11-27 2024-02-02 天津丈八网络安全科技有限公司 一种基于插件调用的软件生命周期规范化管理方法及系统

    Family Cites Families (17)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6876984B2 (en) * 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
    US7620984B2 (en) * 2004-10-06 2009-11-17 Hewlett-Packard Development Company, L.P. Method of managing computer system
    US9274821B2 (en) * 2010-01-27 2016-03-01 Vmware, Inc. Independent access to virtual machine desktop content
    US8892580B2 (en) * 2010-11-03 2014-11-18 Microsoft Corporation Transformation of regular expressions
    US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
    US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
    US8769519B2 (en) * 2011-12-08 2014-07-01 Microsoft Corporation Personal and pooled virtual machine update
    US9563480B2 (en) * 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
    US10063380B2 (en) * 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
    US9124569B2 (en) * 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment
    US9313188B2 (en) * 2013-06-14 2016-04-12 Microsoft Technology Licensing, Llc Providing domain-joined remote applications in a cloud environment
    US9407615B2 (en) * 2013-11-11 2016-08-02 Amazon Technologies, Inc. Single set of credentials for accessing multiple computing resource services
    US9516028B1 (en) * 2014-08-06 2016-12-06 Amazon Technologies, Inc. Hierarchical policy-based shared resource access control
    US20160344671A1 (en) * 2015-05-19 2016-11-24 Amazon Technologies, Inc. Executing commands on virtual machine instances in a distributed computing environment
    US9697361B2 (en) * 2015-07-06 2017-07-04 AO Kaspersky Lab System and method of controlling opening of files by vulnerable applications
    US10075557B2 (en) * 2015-12-30 2018-09-11 Amazon Technologies, Inc. Service authorization handshake
    US11093482B2 (en) * 2019-03-12 2021-08-17 International Business Machines Corporation Managing access by third parties to data in a network

    Also Published As

    Publication number Publication date
    WO2017075051A1 (en) 2017-05-04
    US10609080B2 (en) 2020-03-31
    CN108292349B (zh) 2021-10-08
    US20180103066A1 (en) 2018-04-12
    US20170118247A1 (en) 2017-04-27
    US9794292B2 (en) 2017-10-17
    CN108292349A (zh) 2018-07-17

    Similar Documents

    Publication Publication Date Title
    DE112016004896T5 (de) Bereitstellung von Remote-Befehlsausführung mit fein abgestimmtem Zugriff für Instanzen von virtuellen Maschinen in einer verteilten Datenverarbeitungsumgebung
    DE102016123651B4 (de) Authentisierungskooperationssystem
    DE102009049674B4 (de) Segregieren von anonymem Zugriff auf dynamischen Inhalt auf einem Webserver mit gecachedten Anmeldungen
    DE112018004411T5 (de) Zugriffssteuerung in mikrodienst-architekturen
    DE60006451T2 (de) Verteilte Authentifizierungsmechanismen zur Behandlung von verschiedenen Authentifizierungssystemen in einem Betriebsrechnersystem
    DE60029774T2 (de) Videokonferenzsystem
    DE60218069T2 (de) Bereitstellung von gekoppelten diensten in einer verteilten rechnerumgebung
    DE60038707T2 (de) Internet-Schnittstellensystem
    DE102012213795B4 (de) Durch einen Computer implementiertes Verfahren, das es einer Web-Anwendung ermöglicht, mindestens eine native Funktion einer mobilen Einheit aufzurufen
    DE602004001716T2 (de) Verfahren und System zur Verbindung eines Fernbenutzers mit einer lokalen Rechnerumgebung über einen Intranet-Server
    DE112012002889T5 (de) Authentifizieren eines Rich Clients aus einer bestehenden Browser-Sitzung heraus
    DE202018006529U1 (de) Gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem
    DE602004012300T2 (de) Verfahren und vorrichtungen für skalierbaren sicheren fern-desktop-zugriff
    DE60308489T2 (de) Anwendungsfensterschließung als Reaktion auf ein Ereignis in einem Parent-Fenster
    DE202020106393U1 (de) Datenaustausch
    DE202014010888U1 (de) Systeme zur Überprüfung eines Nutzers auf Basis von Reputationsinformationen
    DE112017004033T5 (de) Verfahren zum Erhalten von geprüften Zertifikaten durch Mikrodienste in elastischen Cloud-Umgebungen
    DE102010023691B4 (de) Gemeinsame Nutzung von dynamischen Inhaltsvoreinstellungen und Verhalten von EDV-Geräten
    DE202011110893U1 (de) Verwaltung mehrfacher Anmeldungen über einen Einzelbrowser
    DE112011101357T5 (de) Dynamisches Token für den vorübergehenden Datenzugriff
    EP1628184A1 (de) Verfahren und Computersystem zur Durchführung eines netzwerkgestützten Geschäftsprozesses
    DE112020000538T5 (de) Feinkörnige zugriffskontrolle auf token-grundlage
    DE102013222290A1 (de) System und Verfahren zur gemeinsamen Nutzung von Ermittlungsergebnisdaten
    DE202013102441U1 (de) System zur Überprüfung digitaler Zertifikate
    DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed
    R016 Response to examination communication