{"id":377902,"date":"2024-10-31T10:10:06","date_gmt":"2024-10-31T10:10:06","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=377902"},"modified":"2024-10-31T10:10:06","modified_gmt":"2024-10-31T10:10:06","slug":"proxmox-vm-informationserfassung-automatisieren","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/proxmox-vm-informationserfassung-automatisieren\/","title":{"rendered":"Linux-Skript-Guide: Automatisierung der Proxmox VM-Informationserfassung"},"content":{"rendered":"<p>In der heutigen IT-Welt sind die effiziente Verwaltung und \u00dcberwachung virtueller Umgebungen f\u00fcr Systemadministratoren und <a href=\"https:\/\/www.ninjaone.com\/de\/was-ist-ein-msp\" target=\"_blank\" rel=\"noopener\">Managed Service Provider (MSPs<\/a>) ausschlaggebend. Virtuelle Umgebungen, wie die durch Proxmox verwalteten, m\u00fcssen regelm\u00e4\u00dfig \u00fcberwacht werden, um einen reibungslosen Betrieb und optimale Leistung zu gew\u00e4hrleisten.<\/p>\n<p>Die automatisierte Erfassung von Status- und Basisinformationen <a href=\"https:\/\/www.ninjaone.com\/de\/endpunkt-verwaltung\/ueberwachung-virtueller-maschinen\/\" target=\"_blank\" rel=\"noopener\">zu virtuellen Maschinen (VM)<\/a> spart nicht nur Zeit, sondern verringert auch das Risiko menschlichen Versagens. Vielleicht fragen Sie sich nun, wie Sie die Proxmox-VM-Informationserfassung automatisieren k\u00f6nnen. In diesem Blogbeitrag wird ein Bash-Skript vorgestellt, das den Status und die Details von Proxmox-G\u00e4sten automatisch abruft und anzeigt. Es wird dargelegt, wie es den IT-Betrieb durch seine N\u00fctzlichkeit optimieren kann.<\/p>\n<h2>Kontext<\/h2>\n<p>Proxmox ist eine beliebte Open-Source-Virtualisierungs-Verwaltungsl\u00f6sung, die KVM und Container-basierte Virtualisierung auf einer einzigen Plattform vereint. F\u00fcr IT-Experten und MSPs ist die \u00dcberwachung des Zustands von VM und Containern eine routinem\u00e4\u00dfige, aber essenzielle Aufgabe. Dieses Skript erf\u00fcllt den Bedarf an einer automatisierten, konsistenten Methode zur Sammlung und Darstellung von VM-Informationen in einem benutzerfreundlichen Format, das leicht zug\u00e4nglich und interpretierbar ist.<\/p>\n<h2>Das Skript<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">#!\/usr\/bin\/env bash\r\n\r\n# Description: This script gets the status and basic info of all Proxmox guests on a host and saves it to a WYSIWYG custom field.\r\n#\r\n# Release Notes: Initial Release\r\n# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n# Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#\r\n# Below are all the (case sensitive) valid parameters for this script.\r\n# Only the custom field name is required!\r\n# Preset Parameter: \"Custom_Field_Name\"\r\n#   Custom_Field_Name: The name of the WYSIWYG custom field to save the VM info to.\r\n\r\nCustom_Field_Name=$1\r\n\r\nif [[ -n \"${customFieldName}\" ]]; then\r\n    Custom_Field_Name=\"${customFieldName}\"\r\nfi\r\n\r\nif [[ -z \"${Custom_Field_Name}\" || \"${Custom_Field_Name}\" == \"null\" ]]; then\r\n    echo \"The custom field name is required.\"\r\n    echo \" Example: guests\"\r\n    exit 1\r\nfi\r\n\r\n# Check that we have the required tools\r\nif ! command -v pvesh &amp;&gt; \/dev\/null; then\r\n    echo \"The Proxmox VE API tool 'pvesh' is required.\"\r\n    exit 1\r\nfi\r\nif ! command -v python3 &amp;&gt; \/dev\/null; then\r\n    echo \"The python3 is required. Should already be installed.\"\r\n    exit 1\r\nfi\r\n\r\n# Check that we are running as root\r\nif [[ $EUID -ne 0 ]]; then\r\n    echo \"This script must be run as root.\"\r\n    exit 1\r\nfi\r\n\r\nfunction SetCustomField() {\r\n    \/opt\/NinjaRMMAgent\/programdata\/ninjarmm-cli \"$@\"\r\n}\r\n\r\n# Get the status and basic info of all Proxmox VMs on a host\r\nqemu_guests=$(pvesh get \/nodes\/localhost\/qemu --output-format=json)\r\n\r\n# Create a table to store the VM info with the headers: Name, Status, Memory, CPUs, Disk Sizes\r\nvm_table=\"&lt;table&gt;&lt;tr&gt;&lt;th&gt;Status&lt;\/th&gt;&lt;th&gt;ID&lt;\/th&gt;&lt;th&gt;Name&lt;\/th&gt;&lt;th&gt;Memory&lt;\/th&gt;&lt;th&gt;CPUs&lt;\/th&gt;&lt;th&gt;Disk Sizes Combined&lt;\/th&gt;&lt;\/tr&gt;\"\r\n\r\n# Loop through each VM and add the info to the table\r\nqemu_table=$(echo \"$qemu_guests\" | python3 -c '\r\nimport sys, json\r\n\r\n# Function to convert bytes to human readable format\r\ndef human_readable_size(size):\r\n    for unit in [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\"]:\r\n        if size &lt; 1024:\r\n            return f\"{size:.2f} {unit}\"\r\n        size \/= 1024\r\n\r\nqemu_guests = json.load(sys.stdin)\r\nvm_table = \"\"\r\n\r\nfor qemu in qemu_guests:\r\n    qemu_id = qemu[\"vmid\"]\r\n    qemu_name = qemu[\"name\"]\r\n    qemu_status = qemu[\"status\"]\r\n    # Convert the memory from bytes to GB\r\n    qemu_mem = human_readable_size(qemu[\"maxmem\"])\r\n    qemu_cpus = qemu[\"cpus\"]\r\n    # Convert the disk size from bytes to GB\r\n    qemu_disk = human_readable_size(qemu[\"maxdisk\"])\r\n\r\n    # Add HTML blank space if values are empty\r\n    qemu_id = qemu_id if qemu_id else \"&amp;nbsp;\"\r\n    qemu_name = qemu_name if qemu_name else \"&amp;nbsp;\"\r\n    qemu_mem = qemu_mem if qemu_mem else \"&amp;nbsp;\"\r\n    qemu_cpus = qemu_cpus if qemu_cpus else \"&amp;nbsp;\"\r\n    qemu_disk = qemu_disk if qemu_disk else \"&amp;nbsp;\"\r\n\r\n    if \"running\" in qemu_status:\r\n        status_text = \"&lt;tr class='\"'success'\"'&gt;&lt;td&gt;Running&lt;\/td&gt;\"\r\n    elif \"stopped\" in qemu_status:\r\n        status_text = \"&lt;tr class='\"'danger'\"'&gt;&lt;td&gt;Stopped&lt;\/td&gt;\"\r\n    else:\r\n        status_text = \"&lt;tr class='\"'other'\"'&gt;&lt;td&gt;{}&lt;\/td&gt;\".format(qemu_status)\r\n\r\n    vm_table += \"{}&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;\/tr&gt;\".format(\r\n        status_text, qemu_id, qemu_name, qemu_mem, qemu_cpus, qemu_disk\r\n    )\r\n\r\nprint(vm_table)\r\n')\r\nvm_table=\"$vm_table$qemu_table\"\r\n\r\n# Loop through each lxc and add the info to the table\r\nlxc_guests=$(pvesh get \/nodes\/localhost\/lxc --output-format=json)\r\n# Loop through each lxc and add the info to the table\r\nlxc_table=$(echo \"$lxc_guests\" | python3 -c '\r\nimport sys, json\r\n\r\n# Function to convert bytes to human readable format\r\ndef human_readable_size(size):\r\n    for unit in [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\"]:\r\n        if size &lt; 1024:\r\n            return f\"{size:.2f} {unit}\"\r\n        size \/= 1024\r\n\r\nlxc_guests = json.load(sys.stdin)\r\nvm_table = \"\"\r\n\r\nfor lxc in lxc_guests:\r\n    lxc_id = lxc[\"vmid\"]\r\n    lxc_name = lxc[\"name\"]\r\n    lxc_status = lxc[\"status\"]\r\n    # Convert the memory from bytes to GB\r\n    lxc_mem = human_readable_size(lxc[\"maxmem\"])\r\n    lxc_cpus = lxc[\"cpus\"]\r\n    # Convert the disk size from bytes to GB\r\n    lxc_disk = human_readable_size(lxc[\"maxdisk\"])\r\n\r\n    # Add HTML blank space if values are empty\r\n    lxc_id = lxc_id if lxc_id else \"&amp;nbsp;\"\r\n    lxc_name = lxc_name if lxc_name else \"&amp;nbsp;\"\r\n    lxc_mem = lxc_mem if lxc_mem else \"&amp;nbsp;\"\r\n    lxc_cpus = lxc_cpus if lxc_cpus else \"&amp;nbsp;\"\r\n    lxc_disk = lxc_disk if lxc_disk else \"&amp;nbsp;\"\r\n\r\n    if \"running\" in lxc_status:\r\n        status_text = \"&lt;tr class='\"'success'\"'&gt;&lt;td&gt;Running&lt;\/td&gt;\"\r\n    elif \"stopped\" in lxc_status:\r\n        status_text = \"&lt;tr class='\"'danger'\"'&gt;&lt;td&gt;Stopped&lt;\/td&gt;\"\r\n    else:\r\n        status_text = \"&lt;tr class='\"'other'\"'&gt;&lt;td&gt;{}&lt;\/td&gt;\".format(lxc_status)\r\n\r\n    vm_table += \"{}&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;\/tr&gt;\".format(\r\n        status_text, lxc_id, lxc_name, lxc_mem, lxc_cpus, lxc_disk\r\n    )\r\n\r\nprint(vm_table)\r\n')\r\nvm_table=\"$vm_table$lxc_table\"\r\n\r\n# Close the table\r\nvm_table=\"$vm_table&lt;\/table&gt;\"\r\n\r\n# Highlight the running and stopped VMs\r\nvm_table=$(echo \"$vm_table\" | sed 's\/&lt;tr&gt;&lt;td&gt;running&lt;\\\/td&gt;\/&lt;tr class=\"success\"&gt;&lt;td&gt;Running&lt;\\\/td&gt;\/')\r\nvm_table=$(echo \"$vm_table\" | sed 's\/&lt;tr&gt;&lt;td&gt;stopped&lt;\\\/td&gt;\/&lt;tr class=\"danger\"&gt;&lt;td&gt;Stopped&lt;\\\/td&gt;\/')\r\n\r\n# Save the table to the custom field\r\nif ! SetCustomField set \"$Custom_Field_Name\" \"$vm_table\"; then\r\n    echo \"Failed to save the Proxmox VM info to the custom field: $Custom_Field_Name\"\r\n    exit 1\r\nfi\r\necho \"The Proxmox VM info has been saved to the custom field: $Custom_Field_Name\"<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"in-context-cta\"><p>Greifen Sie auf \u00fcber 300 Skripte im NinjaOne Dojo zu.<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/freetrialform\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/h2>\n<p>Das mitgelieferte Bash-Skript, mit dem Sie die Proxmox-VM-Informationserfassung automatisieren k\u00f6nnen, ruft den Status und wesentliche Informationen aller Proxmox-G\u00e4ste auf einem Host ab und speichert diese Daten in einem benutzerdefinierten Feld. Dies ist besonders n\u00fctzlich f\u00fcr Umgebungen mit zahlreichen VM, in denen manuelle Pr\u00fcfungen zeitaufw\u00e4ndig und fehleranf\u00e4llig sein k\u00f6nnen.<\/p>\n<h3>Schritt-f\u00fcr-Schritt-Erl\u00e4uterung<\/h3>\n<h4>1. Skriptinitialisierung und Parameterbehandlung:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\">Das Skript beginnt mit der Definition des Namens vom benutzerdefinierten Feld, der ein obligatorischer Parameter ist. Dieser Feldname speichert die VM-Informationen.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"2\">Wenn der Name des benutzerdefinierten Feldes nicht angegeben wird oder ung\u00fcltig ist, wird das Skript mit einer Fehlermeldung beendet.<\/li>\n<\/ul>\n<h4>2. \u00dcberpr\u00fcfung der Tool-Verf\u00fcgbarkeit:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"2\">Das Skript pr\u00fcft die Verf\u00fcgbarkeit der erforderlichen Tools: pvesh (Proxmox VE API-Tool) und Python3. Wenn diese Tools nicht gefunden werden, wird das Skript mit einer entsprechenden Fehlermeldung beendet.<\/li>\n<\/ul>\n<h4>3. \u00dcberpr\u00fcfung der Root-Rechte:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"2\">Das Skript kontrolliert, ob es mit Root-Rechten ausgef\u00fchrt wird. Wenn nicht, wird das Programm mit einer Fehlermeldung beendet.<\/li>\n<\/ul>\n<h4>4. Abruf von VM-Informationen:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"2\">Mit pvesh ruft das Skript Informationen \u00fcber QEMU-VM und LXC-Container vom Proxmox-Host ab.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"6\" data-aria-level=\"2\">Diese Informationen werden mit Python verarbeitet, um eine HTML-Tabelle mit Details wie Status, ID, Namen, Speicher, CPUs und kombinierte Datentr\u00e4gergr\u00f6\u00dfen zu erzeugen.<\/li>\n<\/ul>\n<h4>5. Generierung der HTML-Tabelle:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"2\">Das in das Bash-Skript eingebettete Python-Skript formatiert die abgerufenen JSON-Daten in eine HTML-Tabelle. Diese Tabelle ist so gestaltet, dass laufende und gestoppte VM unterschiedlich hervorgehoben werden.<\/li>\n<\/ul>\n<h4>6. Speicherung der Tabelle in einem benutzerdefinierten Feld:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"8\" data-aria-level=\"2\">Die erzeugte HTML-Tabelle wird mit dem NinjaOne RMM-CLI-Tool in dem angegebenen benutzerdefinierten Feld gespeichert.<\/li>\n<\/ul>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Stellen Sie sich vor, ein MSP verwaltet mehrere Proxmox-Umgebungen f\u00fcr verschiedene Clients. Die manuelle \u00dcberpr\u00fcfung des Status und der Ressourcenzuweisung jeder VM auf verschiedenen Hosts kann m\u00fchsam sein. Durch die Verteilung dieses Skripts kann der MSP die Erfassung dieser Daten automatisieren, die dann in einem benutzerdefinierten Feld zur Verf\u00fcgung stehen, auf das er \u00fcber seine Verwaltungsoberfl\u00e4che zugreifen kann. Dies steigert nicht nur die <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\" target=\"_blank\" rel=\"noopener\">Effizienz<\/a>, sondern gew\u00e4hrleistet auch, dass er schnell auf alle auftretenden Probleme reagieren kann.<\/p>\n<h2>Vergleiche<\/h2>\n<p>Andere Methoden zur Erfassung von VM-Informationen k\u00f6nnen in der manuellen Ausf\u00fchrung von Befehlen und der Zusammenstellung der Ergebnisse bestehen, was zeitaufw\u00e4ndig und fehleranf\u00e4llig ist. Tools wie die Weboberfl\u00e4che von Proxmox liefern die ben\u00f6tigten Informationen, erfordern aber eine manuelle Navigation und \u00dcberpr\u00fcfung. Im Gegensatz dazu <a href=\"https:\/\/www.ninjaone.com\/de\/blog\/alles-was-sie-ueber-it-automatisierung-wissen-muessen\" target=\"_blank\" rel=\"noopener\">automatisiert<\/a> dieses Skript den gesamten Prozess, gew\u00e4hrleistet Konsistenz und spart wertvolle Zeit.<\/p>\n<h2>FAQs<\/h2>\n<p><strong>F: Was passiert, wenn das Skript pvesh oder python3 nicht findet?<\/strong><br \/>\nA: Das Skript pr\u00fcft beim Start auf diese Abh\u00e4ngigkeiten und wird mit einer klaren Fehlermeldung beendet, wenn sie nicht gefunden werden. Au\u00dferdem f\u00fchrt es die Benutzer:innen dazu, die fehlenden Tools zu installieren.<\/p>\n<p><strong>F: Kann das Skript ohne Root-Rechte ausgef\u00fchrt werden?<\/strong><br \/>\nA: Nein, das Skript muss mit Root-Rechten ausgef\u00fchrt werden, um Zugriff auf die erforderlichen Systeminformationen zu erhalten.<\/p>\n<p><strong>F: Was geschieht, wenn der Name des benutzerdefinierten Feldes nicht angegeben wird?<\/strong><br \/>\nA: Das Script ben\u00f6tigt den Namen des benutzerdefinierten Feldes als Parameter. Wenn er nicht angegeben wird, wird das Skript mit einer Fehlermeldung beendet.<\/p>\n<h2>Folgen<\/h2>\n<p>Wenn Sie die Proxmox-VM-Informationserfassung automatisieren, wird nicht nur die betriebliche Effizienz verbessert, sondern es wird auch die IT-Sicherheit erh\u00f6ht. Regelm\u00e4\u00dfige, automatisierte \u00dcberpr\u00fcfungen stellen sicher, dass alle VM erfasst sind und wie erwartet laufen, wodurch <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">die Verringerung des Risikos unbemerkter Ausfallzeiten<\/a> oder falscher Ressourcenzuweisungen erfolgt.<\/p>\n<h2>Empfehlungen<\/h2>\n<p>Wenn Sie dieses Skript verwenden, vergewissern Sie sich, dass:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">das Skript in regelm\u00e4\u00dfigen Abst\u00e4nden ausgef\u00fchrt wird, um die VM-Informationen auf dem neuesten Stand zu halten.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Sie \u00fcber geeignete Berechtigungen verf\u00fcgen, um das Skript mit Root-Rechten ausf\u00fchren zu d\u00fcrfen.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\">die Abh\u00e4ngigkeiten (pvesh, python3, NinjaOne RMM-CLI) installiert und korrekt konfiguriert sind.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Dieses Skript ist ein wertvolles Tool f\u00fcr IT-Experten, die Proxmox-Umgebungen verwalten, da es den Prozess der Erfassung und Anzeige von VM-Informationen optimiert. IT-Mitarbeiter:innen, die <a href=\"https:\/\/www.ninjaone.com\/de\/\" target=\"_blank\" rel=\"noopener\">NinjaOne<\/a> verwenden, k\u00f6nnen dieses Skript in ihren Arbeitsablauf integrieren, was es einfacher macht, einen klaren und aktuellen \u00dcberblick \u00fcber ihre virtuelle Infrastruktur zu behalten. Durch die Automatisierung von Routineaufgaben k\u00f6nnen sich IT-Experten auf strategischere T\u00e4tigkeiten konzentrieren und so die Gesamtproduktivit\u00e4t und Systemzuverl\u00e4ssigkeit verbessern.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"operating_system":[4211],"use_cases":[4307],"class_list":["post-377902","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/377902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/comments?post=377902"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=377902"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=377902"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=377902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}