{"id":208108,"date":"2023-09-21T13:09:35","date_gmt":"2023-09-21T13:09:35","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/automatizzare-le-installazioni-di-office-365-2\/"},"modified":"2024-07-26T13:21:10","modified_gmt":"2024-07-26T13:21:10","slug":"automatizzare-le-installazioni-di-office-365-2","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/it\/script-hub\/automatizzare-le-installazioni-di-office-365-2\/","title":{"rendered":"Come utilizzare PowerShell per automatizzare le installazioni di Office 365"},"content":{"rendered":"<p>Nel mondo frenetico ed esigente dell&#8217;IT, ogni strumento che fa risparmiare tempo e semplifica le attivit\u00e0 vale oro. Oggi esploreremo il modo in cui gli script PowerShell possono essere utilizzati per <strong>automatizzare le installazioni di Office 365<\/strong>, un&#8217;operazione fondamentale che pu\u00f2 far risparmiare innumerevoli ore nel lungo periodo. Infatti, con uno script ben scritto, \u00e8 possibile gestire le installazioni di un&#8217;intera rete dalla propria scrivania. Questo post \u00e8 rivolto ai professionisti IT e ai Managed Service Provider (MSP) che desiderano semplificare le loro implementazioni di Office 365 utilizzando la potenza di PowerShell.<\/p>\n<h2>Perch\u00e9 automatizzare le installazioni di Office 365 con PowerShell?<\/h2>\n<p>PowerShell \u00e8 un linguaggio di scripting avanzato e una shell sviluppata da Microsoft. \u00c8 parte integrante dell&#8217;ecosistema Windows fin da Windows 7 e la sua potenza e flessibilit\u00e0 lo hanno reso uno strumento fondamentale per molti professionisti IT e MSP. Automatizzare le installazioni di Office 365 tramite PowerShell pu\u00f2 ridurre drasticamente il tempo e l&#8217;impegno necessari per distribuire Office 365 su pi\u00f9 macchine.<\/p>\n<p>Inoltre, gli script PowerShell possono essere personalizzati in base alle proprie esigenze. Ad esempio, lo script pu\u00f2 essere configurato per installare componenti specifici di Office 365, applicare determinate impostazioni e persino effettuare la pulizia dopo l&#8217;installazione. Questo livello di personalizzazione consente ai professionisti IT e agli MSP di garantire che Office 365 venga distribuito in modo coerente su tutti i computer, allineandosi alle policy e agli standard IT dell&#8217;azienda.<\/p>\n<h2>Un&#8217;immersione profonda nello script PowerShell per installare Office 365<\/h2>\n<p>Vediamo un esempio di script PowerShell per automatizzare le installazioni di Office 365. Tale script \u00e8 stato progettato per installare Office 365 utilizzando un file di configurazione personalizzato o uno predefinito. Nel caso in cui l&#8217;installazione non vada a buon fine, lo script fornisce un messaggio di errore, rendendo pi\u00f9 semplice la risoluzione dei problemi.<\/p>\n<p>Ci\u00f2 che rende questo script particolarmente utile \u00e8 la capacit\u00e0 di scaricare e utilizzare Office Deployment Tool dai server di Microsoft. Questa funzionalit\u00e0 garantisce che per l&#8217;installazione venga sempre utilizzata la versione pi\u00f9 recente di Office 365. Inoltre, lo script verifica se la suite Office 365 \u00e8 stata installata correttamente, fornendo un ulteriore livello di garanzia.<\/p>\n<p>Quando l&#8217;installazione \u00e8 riuscita, lo script attiva il riavvio del sistema. Ci\u00f2 \u00e8 particolarmente utile perch\u00e9 alcuni componenti di Office 365 richiedono un riavvio del sistema per funzionare correttamente. Lo script \u00e8 inoltre dotato di un meccanismo di pulizia che pu\u00f2 essere attivato per rimuovere i file di installazione dopo che Office 365 \u00e8 stato installato.<\/p>\n<h2>Script PowerShell per l&#8217;installazione di Microsoft Office 365<\/h2>\n<p><div class=\"button-wrap orange-button \"><a href=\"#disable-fast-startup\" data-js=\"button-script-cta\" class=\"button script-cta\" data-js=\"script-cta\"  data-modal=\"249376\" >Inviami lo script via e-mail<\/a><\/div><br \/>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">#Requires -Version 5.1\r\n\r\n&lt;# .SYNOPSIS Installs Office 365 from a config file or creates a generic config file and installs. .DESCRIPTION Installs Office 365 from a config file or creates a generic config file and installs. .EXAMPLE No parameters need if you want to use the default config file OR change the $OfficeXML variable to use your XML config file's content. .EXAMPLE -ConfigurationXMLFile https:\/\/replace.me\/configuration.xml Install Office 365 and use a local config file. You can use https:\/\/config.office.com\/deploymentsettings to help build the config file. .OUTPUTS None .NOTES This will reboot after a successful install. Minimum OS Architecture Supported: Windows 10, Windows Server 2016 Release Notes: Renamed script and added Script Variable support, made restarts optional, changed default download path to %TEMP%\\Office365Install, switched to downloading an xml instead of using a local path. #&gt;\r\n\r\n[CmdletBinding()]\r\nparam(\r\n    # Use a existing config file\r\n    [Parameter()]\r\n    [String]$ConfigurationXMLFile,\r\n    # Path where we will store our install files and our XML file\r\n    [Parameter()]\r\n    [String]$OfficeInstallDownloadPath = \"$env:TEMP\\Office365Install\",\r\n    [Parameter()]\r\n    [Switch]$Restart = [System.Convert]::ToBoolean($env:restartComputer)\r\n)\r\n\r\nbegin {\r\n    if ($env:linkToConfigurationXml -and $env:linkToConfigurationXml -notlike \"null\") { $ConfigurationXMLFile = $env:linkToConfigurationXml }\r\n\r\n    $CleanUpInstallFiles = $True\r\n\r\n    # In case 'https:\/\/' is omitted from the URL.\r\n    if ($ConfigurationXMLFile -and $ConfigurationXMLFile -notmatch \"^http(s)?:\/\/\") {\r\n        Write-Warning \"http(s):\/\/ is required to download the file. Adding https:\/\/ to your input....\"\r\n        $ConfigurationXMLFile = \"https:\/\/$ConfigurationXMLFile\"\r\n        Write-Warning \"New Url $ConfigurationXMLFile.\"\r\n    }\r\n\r\n    # Set TLS Version\r\n    $SupportedTLSversions = [enum]::GetValues('Net.SecurityProtocolType')\r\n    if ( ($SupportedTLSversions -contains 'Tls13') -and ($SupportedTLSversions -contains 'Tls12') ) {\r\n        [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol::Tls13 -bor [System.Net.SecurityProtocolType]::Tls12\r\n    }\r\n    elseif ( $SupportedTLSversions -contains 'Tls12' ) {\r\n        [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12\r\n    }\r\n    else {\r\n        # Not everything requires TLS 1.2, but we'll try anyway.\r\n        Write-Warning \"TLS 1.2 and or TLS 1.3 are not supported on this system. This script may fail!\"\r\n        if ($PSVersionTable.PSVersion.Major -lt 3) {\r\n            Write-Warning \"PowerShell 2 \/ .NET 2.0 doesn't support TLS 1.2.\"\r\n        }\r\n    }\r\n\r\n    function Set-XMLFile {\r\n        # XML data that will be used for the download\/install\r\n        # Example config below generated from https:\/\/config.office.com\/\r\n        # To use your own config, just replace  to  with your xml config file content.\r\n        # Notes:\r\n        #  \"@ can not have any character after it\r\n        #  @\" can not have any spaces or character before it.\r\n        $OfficeXML = [XML]@\"\r\n\r\n  \r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n    \r\n    \r\n    \r\n    \r\n  \r\n  \r\n   \r\n  \r\n\r\n\"@\r\n        #Save the XML file\r\n        $OfficeXML.Save(\"$OfficeInstallDownloadPath\\OfficeInstall.xml\")\r\n      \r\n    }\r\n    function Get-ODTURL {\r\n    \r\n        [String]$MSWebPage = Invoke-RestMethod 'https:\/\/www.microsoft.com\/en-us\/download\/confirmation.aspx?id=49117'\r\n    \r\n        $MSWebPage | ForEach-Object {\r\n            if ($_ -match 'url=(https:\/\/.*officedeploymenttool.*\\.exe)') {\r\n                $matches[1]\r\n            }\r\n        }\r\n    \r\n    }\r\n    function Test-IsElevated {\r\n        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()\r\n        $p = New-Object System.Security.Principal.WindowsPrincipal($id)\r\n        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))\r\n        { Write-Output $true }\r\n        else\r\n        { Write-Output $false }\r\n    }\r\n\r\n    # Utility function for downloading files.\r\n    function Invoke-Download {\r\n        param(\r\n            [Parameter()]\r\n            [String]$URL,\r\n            [Parameter()]\r\n            [String]$Path,\r\n            [Parameter()]\r\n            [int]$Attempts = 3,\r\n            [Parameter()]\r\n            [Switch]$SkipSleep\r\n        )\r\n        Write-Host \"URL given, Downloading the file...\"\r\n\r\n        $i = 1\r\n        While ($i -le $Attempts) {\r\n            # Some cloud services have rate-limiting\r\n            if (-not ($SkipSleep)) {\r\n                $SleepTime = Get-Random -Minimum 3 -Maximum 15\r\n                Write-Host \"Waiting for $SleepTime seconds.\"\r\n                Start-Sleep -Seconds $SleepTime\r\n            }\r\n        \r\n            if ($i -ne 1) { Write-Host \"\" }\r\n            Write-Host \"Download Attempt $i\"\r\n\r\n            try {\r\n                # Invoke-WebRequest is preferred because it supports links that redirect, e.g., https:\/\/t.ly\r\n                if ($PSVersionTable.PSVersion.Major -lt 4) {\r\n                    # Downloads the file\r\n                    $WebClient = New-Object System.Net.WebClient\r\n                    $WebClient.DownloadFile($URL, $Path)\r\n                }\r\n                else {\r\n                    # Standard options\r\n                    $WebRequestArgs = @{\r\n                        Uri                = $URL\r\n                        OutFile            = $Path\r\n                        MaximumRedirection = 10\r\n                        UseBasicParsing    = $true\r\n                    }\r\n\r\n                    # Downloads the file\r\n                    Invoke-WebRequest @WebRequestArgs\r\n                }\r\n\r\n                $File = Test-Path -Path $Path -ErrorAction SilentlyContinue\r\n            }\r\n            catch {\r\n                Write-Warning \"An error has occurred while downloading!\"\r\n                Write-Warning $_.Exception.Message\r\n\r\n                if (Test-Path -Path $Path -ErrorAction SilentlyContinue) {\r\n                    Remove-Item $Path -Force -Confirm:$false -ErrorAction SilentlyContinue\r\n                }\r\n\r\n                $File = $False\r\n            }\r\n\r\n            if ($File) {\r\n                $i = $Attempts\r\n            }\r\n            else {\r\n                Write-Warning \"File failed to download.\"\r\n                Write-Host \"\"\r\n            }\r\n\r\n            $i++\r\n        }\r\n\r\n        if (-not (Test-Path $Path)) {\r\n            Write-Error -Message \"Failed to download file!\" -Category InvalidResult -Exception (New-Object System.Deployment.Application.DeploymentDownloadException)\r\n            exit 1\r\n        }\r\n    }\r\n\r\n    # Check's the two Uninstall registry keys to see if the app is installed. Needs the name as it would appear in Control Panel.\r\n    function Find-UninstallKey {\r\n        [CmdletBinding()]\r\n        param (\r\n            [Parameter(ValueFromPipeline)]\r\n            [String]$DisplayName,\r\n            [Parameter()]\r\n            [Switch]$UninstallString\r\n        )\r\n        process {\r\n            $UninstallList = New-Object System.Collections.Generic.List[Object]\r\n\r\n            $Result = Get-ChildItem HKLM:\\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Get-ItemProperty | \r\n                Where-Object { $_.DisplayName -like \"*$DisplayName*\" }\r\n\r\n            if ($Result) { $UninstallList.Add($Result) }\r\n\r\n            $Result = Get-ChildItem HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* | Get-ItemProperty | \r\n                Where-Object { $_.DisplayName -like \"*$DisplayName*\" }\r\n\r\n            if ($Result) { $UninstallList.Add($Result) }\r\n\r\n            # Programs don't always have an uninstall string listed here so to account for that I made this optional.\r\n            if ($UninstallString) {\r\n                # 64 Bit\r\n                $UninstallList | Select-Object -ExpandProperty UninstallString -ErrorAction Ignore\r\n            }\r\n            else {\r\n                $UninstallList\r\n            }\r\n        }\r\n    }\r\n}\r\nprocess {\r\n    $VerbosePreference = 'Continue'\r\n    $ErrorActionPreference = 'Stop'\r\n\r\n    if (-not (Test-IsElevated)) {\r\n        Write-Error -Message \"Access Denied. Please run with Administrator privileges.\" -Category PermissionDenied -Exception (New-Object System.Security.SecurityException)\r\n        exit 1\r\n    }\r\n\r\n    if (-not (Test-Path $OfficeInstallDownloadPath )) {\r\n        New-Item -Path $OfficeInstallDownloadPath -ItemType Directory | Out-Null\r\n    }\r\n\r\n    if (-not ($ConfigurationXMLFile)) {\r\n        Set-XMLFile\r\n    }\r\n    else {\r\n        Invoke-Download -URL $ConfigurationXMLFile -Path \"$OfficeInstallDownloadPath\\OfficeInstall.xml\"\r\n    }\r\n\r\n    $ConfigurationXMLFile = \"$OfficeInstallDownloadPath\\OfficeInstall.xml\"\r\n    $ODTInstallLink = Get-ODTURL\r\n\r\n    #Download the Office Deployment Tool\r\n    Write-Host 'Downloading the Office Deployment Tool...'\r\n    Invoke-Download -URL $ODTInstallLink -Path \"$OfficeInstallDownloadPath\\ODTSetup.exe\"\r\n\r\n    #Run the Office Deployment Tool setup\r\n    try {\r\n        Write-Host 'Running the Office Deployment Tool...'\r\n        Start-Process \"$OfficeInstallDownloadPath\\ODTSetup.exe\" -ArgumentList \"\/quiet \/extract:$OfficeInstallDownloadPath\" -Wait -NoNewWindow\r\n    }\r\n    catch {\r\n        Write-Warning 'Error running the Office Deployment Tool. The error is below:'\r\n        Write-Warning $_\r\n        exit 1\r\n    }\r\n\r\n    #Run the O365 install\r\n    try {\r\n        Write-Host 'Downloading and installing Microsoft 365'\r\n        $Install = Start-Process \"$OfficeInstallDownloadPath\\Setup.exe\" -ArgumentList \"\/configure $ConfigurationXMLFile\" -Wait -PassThru -NoNewWindow\r\n\r\n        if ($Install.ExitCode -ne 0) {\r\n            Write-Error -Message \"Exit Code does not indicate success!\" -Category InvalidResult -Exception (New-Object System.Deployment.Application.DeploymentException)\r\n            exit 1\r\n        }\r\n    }\r\n    Catch {\r\n        Write-Warning 'Error running the Office install. The error is below:'\r\n        Write-Warning $_\r\n    }\r\n\r\n    $OfficeInstalled = Find-UninstallKey -DisplayName \"Microsoft 365\"\r\n\r\n    if ($CleanUpInstallFiles) {\r\n        Write-Host \"Cleaning up install files...\"\r\n        Remove-Item -Path $OfficeInstallDownloadPath -Force -Recurse\r\n    }\r\n\r\n    if ($OfficeInstalled) {\r\n        Write-Host \"$($OfficeInstalled.DisplayName) installed successfully!\"\r\n        if ($Restart) { Start-Process shutdown.exe -ArgumentList \"-r -t 60\" -Wait -NoNewWindow }\r\n        exit 0\r\n    }\r\n    else {\r\n        Write-Error -Message 'Microsoft 365 was not detected after the install ran!' -Category InvalidResult -Exception (New-Object System.Deployment.Application.DeploymentException)\r\n        exit 1\r\n    }\r\n}\r\nend {}<\/pre>\n<p>&nbsp;<\/p>\n<br \/>\n<div class=\"button-wrap orange-button \"><a href=\"https:\/\/www.ninjaone.com\/get-started\/deploy-with-ninjaone\/\" data-js=\"button-script-deploy-cta\" class=\"button script-deploy-cta\">Distribuisci con NinjaOne<\/a><\/div><br \/>\n<div class=\"in-context-cta\"><p>Accedi a oltre 700 script nel Dojo di NinjaOne<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/it\/prova-gratuita\/\">Ottieni l&#8217;accesso<\/a><\/p>\n<\/div><\/p>\n<h2>Scenari esemplificativi di script<\/h2>\n<h3>Scenario n.1: Distribuzione su larga scala<\/h3>\n<p>Supponiamo che tu sia un amministratore IT di un&#8217;azienda che sta per assumere un centinaio di nuovi dipendenti. Installare manualmente Office 365 su ogni computer sarebbe un&#8217;impresa ardua. \u00c8 invece possibile utilizzare questo script PowerShell per automatizzare il processo. Utilizzando NinjaOne per eseguire lo script da remoto su ogni dispositivo, \u00e8 possibile automatizzare le installazioni di Office 365 in tutta la rete. Questo approccio semplificato non solo fa risparmiare tempo prezioso, ma garantisce anche l&#8217;uniformit\u00e0, una caratteristica essenziale per gestire efficacemente una grande infrastruttura IT.<\/p>\n<p>Scopri come NinjaOne pu\u00f2 migliorare l&#8217;efficienza della tua infrastruttura IT.<\/p>\n<p>Link:<a href=\"https:\/\/www.ninjaone.com\/it\/efficienza-it\/\">https:\/\/www.ninjaone.com\/it\/efficienza-it\/<\/a><\/p>\n<h3>Scenario 2: <a href=\"https:\/\/www.ninjaone.com\/it\/accesso-remoto\/\">Forza lavoro a distanza<\/a><\/h3>\n<p>Con l&#8217;aumento del lavoro a distanza, molte aziende hanno dipendenti che lavorano da varie posizioni con i propri dispositivi. Assicurarsi che ogni lavoratore remoto abbia una versione<\/span> <span class=\"NormalTextRun SCXW67228950 BCX0\">di Office 365 correttamente installata e configurata pu\u00f2 essere una sfida. Distribuendo questo script PowerShell alla tua forza lavoro remota, essa potr\u00e0 eseguire l&#8217;installazione da sola. Lo script assicura che Office 365 sia installato correttamente e configurato in base agli standard dell&#8217;organizzazione.<\/p>\n<h3>Scenario 3: Gestione dei clienti MSP<\/h3>\n<p>Come <a href=\"https:\/\/www.ninjaone.com\/it\/cos-e-un-msp\">fornitore di servizi gestiti (MSP)<\/a> \u00e8 possibile che tu gestisca l&#8217;IT di diverse piccole imprese, ognuna con esigenze e configurazioni specifiche. Con questo script PowerShell \u00e8 possibile creare pi\u00f9 file di configurazione XML su misura per ogni cliente. Quando \u00e8 il momento di installare o aggiornare Office 365 per un cliente, \u00e8 sufficiente eseguire lo script con il file di configurazione appropriato. Questo garantisce una configurazione personalizzata e coerente di Office 365 per ciascuno dei tuoi clienti.<\/p>\n<h3>Scenario 4: Aggiornamenti regolari<\/h3>\n<p>Office 365 viene aggiornato regolarmente da Microsoft e mantenere aggiornate le installazioni della tua organizzazione pu\u00f2 essere un compito dispendioso in termini di tempo. Con questo script, \u00e8 possibile programmare l&#8217;esecuzione di aggiornamenti automatici in un momento opportuno, garantendo un&#8217;interruzione minima del flusso di lavoro del team. Lo script utilizza Office Deployment Tool per scaricare e installare l&#8217;ultima versione di Office 365, assicurando che il team abbia sempre accesso alle ultime funzionalit\u00e0 e agli aggiornamenti di sicurezza.<\/p>\n<p>In ognuno dei scenari, questo script PowerShell pu\u00f2 semplificare in modo significativo il processo di installazione e di gestione di Office 365. Automatizzando queste attivit\u00e0, \u00e8 possibile risparmiare tempo, ridurre il rischio di errori e garantire agli utenti un&#8217;esperienza Office 365 coerente e affidabile.<\/p>\n<h2>Utilizzo dello script per automatizzare le installazioni di Office 365 nel flusso di lavoro<\/h2>\n<p>L&#8217;integrazione di questo script PowerShell nel proprio flusso di lavoro pu\u00f2 semplificare il processo di distribuzione di Office 365. Invece di scaricare ed eseguire manualmente Office Deployment Tool su ogni computer, lo script pu\u00f2 essere eseguito in remoto da una postazione centrale. Questo riduce le possibilit\u00e0 di errore umano e garantisce una configurazione standard per tutte le installazioni.<\/p>\n<p>Inoltre, personalizzando il file di configurazione XML, \u00e8 possibile adattare l&#8217;installazione di Office 365 alle esigenze della propria organizzazione. Questo include l&#8217;indicazione della versione di Office 365, del canale di aggiornamento e persino dei singoli componenti di Office da installare.<\/p>\n<h2>Considerazioni finali<\/h2>\n<p>L&#8217;automazione \u00e8 la migliore amica di un professionista IT e PowerShell offre un modo potente per automatizzare le installazioni di Office 365. Questo pratico script non solo semplifica il processo di distribuzione, ma fornisce anche opzioni di personalizzazione e funzionalit\u00e0 di pulizia.<\/p>\n<p>Integrando lo script per automatizzare le installazioni di Office 365 nel tuo flusso di lavoro, potrai ridurre significativamente il tempo e l&#8217;impegno necessari per gestire le installazioni di Office 365 nella tua rete. Quindi, sfrutta la potenza di PowerShell e rendi semplici le implementazioni di Office 365.<\/p>\n<p>NinjaOne \u00e8 in grado di semplificare le operazioni automatizzando le attivit\u00e0 ripetitive e che richiedono molto tempo. L&#8217;interfaccia intuitiva consente ai tecnici di tutti i livelli di applicare facilmente l&#8217;automazione agli endpoint, compresi gli script personalizzati da un&#8217;ampia libreria, rendendo la risoluzione facile e intuitiva. Come ha notato Chris Hesler della Crossroads Church, &#8220;NinjaOne ci ha aiutato&#8230; a ridurre le ore di lavoro&#8230; siamo in grado di automatizzare maggiormente la libreria di script per risolvere i nostri problemi ricorrenti&#8221;. Scopri il potere rivoluzionario <a href=\"https:\/\/www.ninjaone.com\/it\/rmm\/automazione-it\/\">dell&#8217;automazione nelle tue operazioni IT<\/a> con NinjaOne, uno strumento progettato all&#8217;insegna della flessibilit\u00e0 e dell&#8217;intuitivit\u00e0.<\/p>\n","protected":false},"author":35,"featured_media":206813,"parent":0,"menu_order":0,"comment_status":"open","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":[4212],"use_cases":[4275],"class_list":["post-208108","script_hub","type-script_hub","status-publish","has-post-thumbnail","hentry","script_hub_category-windows","use_cases-configurazione-del-sistema"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub\/208108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=208108"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media\/206813"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=208108"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/operating_system?post=208108"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/use_cases?post=208108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}