Creare ed eseguire gli script di PowerShell dalla console di Configuration ManagerCreate and run PowerShell scripts from the Configuration Manager console

Si applica a: Configuration Manager (Current Branch)Applies to: Configuration Manager (current branch)

La funzionalità di esecuzione degli script di Powershell è integrata in Configuration Manager.Configuration Manager has an integrated ability to run Powershell scripts. Il vantaggio di PowerShell è che consente di creare script automatici sofisticati, intuitivi e condivisi con una vasta community.Powershell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Gli script semplificano la creazione di strumenti personalizzati per amministrare il software e consentono di eseguire rapidamente attività pratiche, anche impegnative, in modo più semplice e coerente.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

Nota

Configuration Manager non abilita questa funzionalità facoltativa per impostazione predefinita.Configuration Manager doesn't enable this optional feature by default. Pertanto sarà necessario abilitarla prima di poterla usare.You must enable this feature before using it. Per altre informazioni, vedere Enable optional features from updates (Abilitare le funzioni facoltative dagli aggiornamenti).For more information, see Enable optional features from updates.

Grazie a questa integrazione in Configuration Manager, è possibile usare la funzionalità Esegui script per:With this integration in Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Creare e modificare script da usare con Configuration Manager.Create and edit scripts for use with Configuration Manager.
  • Gestire l'utilizzo degli script tramite ruoli e ambiti di protezione.Manage script usage through roles and security scopes.
  • Eseguire gli script in raccolte o singoli PC Windows gestiti in locale.Run scripts on collections or individual on-premises managed Windows PCs.
  • Ottenere rapidi risultati degli script aggregati dai dispositivi client.Get rapid aggregated script results from client devices.
  • Monitorare l'esecuzione degli script e visualizzare i risultati restituiti dall'output degli script.Monitor script execution and view reporting results from script output.

Avviso

Considerando la potenza degli script, è consigliabile usarli con attenzione e solo se intenzionalmente.Given the power of scripts, we remind you to be intentional and careful with their usage. Sono state integrate altre misure di sicurezza per supportare l'utente finale, come ruoli e ambiti segregati.We have built in additional safeguards to assist you; segregated roles and scopes. Verificare l'accuratezza degli script prima di eseguirli e accertarsi che provengano da un'origine attendibile, per impedirne l'esecuzione accidentale.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Prestare attenzione ai caratteri estesi o ad altri problemi di offuscamento e abituarsi a proteggere gli script.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. Informazioni sulla sicurezza degli script PowerShellLearn more about PowerShell script security

PrerequisitiPrerequisites

  • Per eseguire script PowerShell, nel client deve essere in esecuzione PowerShell versione 3.0 o successiva.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. Tuttavia, se lo script eseguito contiene funzionalità di una versione successiva di PowerShell, nel client in cui viene eseguito lo script deve essere installata questa versione.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Per eseguire gli script, i client Configuration Manager devono avere in esecuzione il client della versione 1706 o successiva.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Per usare gli script, l'utente deve essere membro del ruolo di sicurezza appropriato di Configuration Manager.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Per importare e creare script, l'account deve avere autorizzazioni Crea per Script SMS.To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • Per approvare o rifiutare script, l'account deve avere autorizzazioni Approva per Script SMS.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • Per eseguire gli script, l'account deve avere autorizzazioni Esegui script per Raccolte.To run scripts - Your account must have Run Script permissions for Collections.

Per altre informazioni sui ruoli di sicurezza di Configuration Manager:For more information about Configuration Manager security roles:
Ambiti di protezione per l'esecuzione di scriptSecurity scopes for run scripts
Ruoli di sicurezza per l'esecuzione di scriptSecurity roles for run scripts
Nozioni fondamentali sull'amministrazione basata su ruoliFundamentals of role-based administration.

LimitazioniLimitations

La funzionalità Esegui script supporta attualmente:Run Scripts currently supports:

  • Linguaggi di scripting: PowerShellScripting languages: PowerShell
  • Tipi di parametro: intero, stringa ed elenco.Parameter types: integer, string, and list.

Avviso

Tenere presente che quando si usano i parametri si apre una superficie di attacco con il rischio potenziale di attacchi PowerShell injection.Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. Per ovviare al problema, esistono vari modi e soluzioni alternative, ad esempio l'uso di espressioni regolari per convalidare l'input del parametro o l'uso di parametri predefiniti.There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. Una procedura consigliata comune consiste nel non includere segreti negli script di PowerShell, ad esempio password e così via.Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). Informazioni sulla sicurezza degli script PowerShellLearn more about PowerShell script security

Autori e responsabili dell'approvazione di scriptRun Script authors and approvers

La funzionalità Esegui script usa il concetto di autore di script e responsabile dell'approvazione di script come ruoli separati per l'implementazione e l'esecuzione di uno script.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. La separazione dei ruoli di autore e responsabile dell'approvazione consente un'importante verifica dei processi per lo strumento Esegui script.Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. Un altro ruolo, esecutori di script, consente l'esecuzione di script, ma non la creazione o l'approvazione.There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. Vedere Creare ruoli di sicurezza per gli script.See Create security roles for scripts.

Controllo dei ruoli per gli scriptScripts roles control

Per impostazione predefinita, gli utenti non possono approvare uno script che ha creato.By default, users can't approve a script they've authored. Poiché gli script sono potenti e versatili e vengono potenzialmente distribuiti a molti dispositivi, è possibile separare i ruoli tra la persona che crea lo script e la persona che lo approva.Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Questi ruoli garantiscono un livello aggiuntivo di sicurezza, impedendo l'esecuzione di uno script senza supervisione.These roles give an additional level of security against running a script without oversight. Per semplificare le attività di test, è possibile disattivare l'approvazione secondaria.You're able to turn off secondary approval, for ease of testing.

Approvare o rifiutare uno scriptApprove or Deny a script

Gli script devono essere approvati dal ruolo responsabile dell'approvazione di script prima di poter essere eseguiti.Scripts must be approved, by the script approver role, before they can be run. Per approvare uno script:To approve a script:

  1. Nella console di Configuration Manager fare clic su Raccolta software.In the Configuration Manager console, click Software Library.
  2. Nell'area di lavoro Raccolta software fare clic su Script.In the Software Library workspace, click Scripts.
  3. Nell'elenco Script scegliere lo script che si desidera approvare o rifiutare e quindi scegliere la scheda Home nel gruppo Script, quindi fare clic su Approve/Deny (Approva/Rifiuta).In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. Nella finestra di dialogo Approva o rifiuta script selezionare Approva o Nega per lo script.In the Approve or deny script dialog box, select Approve, or Deny for the script. Facoltativamente, immettere un commento sulla decisione.Optionally, enter a comment about your decision. Se si rifiuta uno script, questo non può essere eseguito nei dispositivi client.If you deny a script, it can't be run on client devices.
    Script - ApprovazioneScript - Approval
  5. Completare la procedura guidata.Complete the wizard. Nell'elenco Script la colonna Stato dell'approvazione cambia a seconda dell'azione eseguita.In the Script list, you see the Approval State column change depending on the action you took.

Consentire agli utenti di approvare i propri scriptAllow users to approve their own scripts

Questa approvazione viene usata principalmente per la fase di test dello sviluppo di script.This approval is primarily used for the testing phase of script development.

  1. Nella console di Configuration Manager fare clic su Amministrazione.In the Configuration Manager console, click Administration.
  2. Nell'area di lavoro Amministrazione , espandere Configurazione sito, quindi fare clic su Siti.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. Nell'elenco dei siti selezionare il sito e quindi scegliere la scheda Home nel gruppo Siti e fare clic su Impostazioni gerarchia.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. Nella scheda Generale della finestra di dialogo Proprietà delle impostazioni di gerarchia deselezionare la casella di controllo Gli autori dello script richiedono un responsabile approvazione aggiuntivo per lo script.On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

Importante

Come procedura consigliata, non consentire a un autore di script di approvare i propri script.As a best practice, you shouldn't allow a script author to approve their own scripts. Ciò deve essere consentito solo in un ambiente di prova.It should only be allowed in a lab setting. Valutare con attenzione il potenziale impatto della modifica di questa impostazione in un ambiente di produzione.Carefully consider the potential impact of changing this setting in a production environment.

ambiti di protezioneSecurity scopes

Introdotti con la versione 1710(Introduced with version 1710)
La funzionalità Esegui script usa gli ambiti di protezione, una caratteristica esistente di Configuration Manager, per controllare la creazione e l'esecuzione di script tramite l'assegnazione di tag che rappresentano gruppi di utenti.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Per altre informazioni sull'uso degli ambiti di protezione, vedere Configurare l'amministrazione basata su ruoli per Configuration Manager.For more information on using security scopes, see Configure role-based administration for Configuration Manager.

Creare ruoli di sicurezza per gli scriptCreate security roles for scripts

I tre ruoli di sicurezza usati per l'esecuzione di script non vengono creati per impostazione predefinita in Configuration Manager.The three security roles used for running scripts aren't created by default in Configuration Manager. Per creare i ruoli di esecutori di script, autori di script e responsabili dell'approvazione di script seguire i passaggi descritti.To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. Nella console di Configuration Manager passare a Amministrazione >Protezione >Ruoli di protezioneIn the Configuration Manager console, go to Administration >Security >Security Roles
  2. Fare clic con il pulsante destro del mouse su un ruolo e selezionare Copia.Right-click on a role and click Copy. Il ruolo copiato ha le autorizzazioni già assegnate.The role you copy has permissions already assigned. Verificare di includere solo le autorizzazioni desiderate.Make sure you take only the permissions that you want.
  3. Assegnare al ruolo personalizzato un nome e una descrizione.Give the custom role a Name and a Description.
  4. Assegnare al ruolo di sicurezza le autorizzazioni indicate di seguito.Assign the security role the permissions outlined below.

Autorizzazioni del ruolo di sicurezzaSecurity Role Permissions

Nome ruolo: Esecutori di scriptRole Name: Script Runners

  • Descrizione: queste autorizzazioni consentono a questo ruolo solo di eseguire script precedentemente creati e approvati da altri ruoli.Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • Autorizzazioni: verificare che le autorizzazioni seguenti siano impostate su .Permissions: Ensure the following are set to Yes.
CategoriaCategory AutorizzazionePermission StatoState
RaccoltaCollection Esegui scriptRun Script Yes
SitoSite LetturaRead Yes
Script SMSSMS Scripts LetturaRead Yes

Nome ruolo: Autori di scriptRole Name: Script Authors

  • Descrizione: queste autorizzazioni consentono a questo ruolo di creare script, ma non di approvarli o eseguirli.Description: These permissions enable this role to author scripts, but they can’t approve or run them.
  • Autorizzazioni: verificare che siano impostate le autorizzazioni seguenti.Permissions: Ensure the following permissions are set.
CategoriaCategory AutorizzazionePermission StatoState
RaccoltaCollection Esegui scriptRun Script NoNo
SitoSite LetturaRead Yes
Script SMSSMS Scripts CreazioneCreate Yes
Script SMSSMS Scripts LetturaRead Yes
Script SMSSMS Scripts EliminaDelete Yes
Script SMSSMS Scripts ModificaModify Yes

Nome ruolo: Responsabili approvazione di scriptRole Name: Script Approvers

  • Descrizione: queste autorizzazioni consentono a questo ruolo di approvare script, ma non di crearli o eseguirli.Description: These permissions enable this role to approve scripts, but they can’t create or run them.
  • Autorizzazioni: verificare che siano impostate le autorizzazioni seguenti.Permissions: Ensure the following permissions are set.
CategoriaCategory AutorizzazionePermission StatoState
RaccoltaCollection Esegui scriptRun Script NoNo
SitoSite LetturaRead Yes
Script SMSSMS Scripts LetturaRead Yes
Script SMSSMS Scripts ApprovaApprove Yes
Script SMSSMS Scripts ModificaModify Yes

Esempio di autorizzazioni Script SMS per il ruolo di autori di scriptExample of SMS Scripts permissions for the script authors role

Esempio di autorizzazioni Script SMS per il ruolo di autori di script

Creare uno scriptCreate a script

  1. Nella console di Configuration Manager fare clic su Raccolta software.In the Configuration Manager console, click Software Library.
  2. Nell'area di lavoro Raccolta software fare clic su Script.In the Software Library workspace, click Scripts.
  3. Nella scheda Home nel gruppo Crea fare clic su Crea gruppo.On the Home tab, in the Create group, click Create Script.
  4. Nella pagina Script della procedura guidata Crea script configurare le impostazioni seguenti:On the Script page of the Create Script wizard, configure the following settings:
    • In Nome script inserire il nome dello script.Script Name - Enter a name for the script. Anche se è possibile creare più script con lo stesso nome, l'uso di nomi duplicati rende più difficile individuare lo script necessario nella console di Configuration Manager.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Lingua script: attualmente sono supportati solo script di PowerShell.Script language - Currently, only PowerShell scripts are supported.
    • Importa: importare uno script di PowerShell nella console.Import - Import a PowerShell script into the console. Lo script viene visualizzato nel campo Script.The script is displayed in the Script field.
    • Cancella: rimuove lo script corrente dal campo Script.Clear - Removes the current script from the Script field.
    • Script: visualizza lo script attualmente importato.Script - Displays the currently imported script. È possibile modificare lo script in questo campo in base alle esigenze.You can edit the script in this field as necessary.
  5. Completare la procedura guidata.Complete the wizard. Il nuovo script viene visualizzato nell'elenco Script con stato In attesa di approvazione .The new script is displayed in the Script list with a status of Waiting for approval. Prima di poter eseguire questo script nei dispositivi client, è necessario approvarlo.Before you can run this script on client devices, you must approve it.

Importante

Evitare di creare uno script per il riavvio del dispositivo o il riavvio dell'agente di Configuration Manager quando si usa la funzionalità Esegui script.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Questa operazione potrebbe causare uno stato di riavvio continuo.Doing so could lead to a continuous rebooting state. Se necessario, sono disponibili miglioramenti delle funzionalità di notifica client che supportano il riavvio dei dispositivi, a partire da Configuration Manager versione 1710.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. La colonna Riavvio in sospeso può essere utile per identificare i dispositivi che richiedono un riavvio.The pending restart column can help identify devices that need a restart.

Parametri di scriptScript parameters

Introdotti con la versione 1710(Introduced with version 1710)
L'aggiunta di parametri a uno script offre maggiore flessibilità per ogni attività.Adding parameters to a script provides increased flexibility for your work. È possibile includere fino a 10 parametri.You can include up to 10 parameters. La sezione seguente descrive le attuali caratteristiche della funzionalità Esegui script con i parametri di script per tipi di dati String e Integer.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. Sono disponibili anche gli elenchi dei valori preimpostati.Lists of preset values are also available. Se lo script ha tipi di dati non supportati, verrà generato un avviso.If your script has unsupported data types, you get a warning.

Nella finestra di dialogo Crea script fare clic su Parametri script in Script.In the Create Script dialog, click Script Parameters under Script.

Ognuno dei parametri di script è associato a una finestra di dialogo per l'aggiunta di altri dettagli e la convalida.Each of your script's parameters has its own dialog for adding further details and validation. Se è presente un parametro predefinito nello script, verrà enumerato nell'interfaccia utente dove può essere impostato.If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager non sovrascrive il valore predefinito perché non modifica mai lo script direttamente.Configuration Manager won't overwrite the default value since it will never modify the script directly. I valori consigliati precompilati vengono forniti nell'interfaccia utente, ma Configuration Manager non consente l'accesso ai valori predefiniti in fase di esecuzione.You can think of this as “pre-populated suggested values” are provided in the UI, but Configuration Manager doesn't provide access to “default” values at run-time. È possibile ovviare a ciò modificando lo script in modo che contenga i valori predefiniti corretti.This can be worked around by editing the script to have the correct defaults.

Importante

Nei valori dei parametri non è consentito l'apostrofo.Parameter values can't contain an apostrophe.
Esiste un problema noto in Configuration Manager versione 1802, a causa del quale i parametri con spazi non vengono passati allo script correttamente.There is a known issue in Configuration Manager version 1802 where parameters with spaces don't get passed to the script properly. Se nel parametro viene usato uno spazio, solo il primo elemento nel parametro viene passato allo script e tutti gli elementi dopo lo spazio non vengono passati.If a space is used in the parameter, only the first item in the parameter is passed to the script and everything after the space is not passed. Gli amministratori possono creare uno script apposito sostituendo gli spazi con caratteri alternativi e convertendoli o usando altri metodi.Admins can script around this by substituting alternate characters for spaces and converting them, or with other methods.

Convalida dei parametriParameter validation

Ogni parametro nello script ha una finestra di dialogo Proprietà parametri script, in cui è possibile aggiungere la convalida per il parametro.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. Dopo aver aggiunto la convalida, verranno restituiti errori quando si immette un valore che non soddisfa i requisiti di convalida per il parametro.After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

Esempio: FirstNameExample: FirstName

In questo esempio è possibile impostare le proprietà del parametro stringa FirstName.In this example, you're able to set the properties of the string parameter, FirstName.

Parametri di script - Stringa

La sezione di convalida della finestra di dialogo Proprietà dei parametri dello script contiene i campi seguenti:The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Lunghezza minima - Numero minimo di caratteri del campo FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Lunghezza massima - Numero massimo di caratteri del campo FirstName.Maximum Length- maximum number of characters of the FirstName field
  • RegEx - abbreviazione di Espressione regolare.RegEx - short for Regular Expression. Per altre informazioni sull'uso di espressioni regolari, vedere la sezione successiva Uso della convalida con espressioni regolari.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Errore personalizzato - Utile per aggiungere un messaggio di errore personalizzato che sostituirà qualsiasi messaggio di errore di convalida del sistema.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Uso della convalida con espressioni regolariUsing Regular Expression validation

Un'espressione regolare è una forma di programmazione compatta per controllare una stringa di caratteri rispetto a una convalida codificata.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Ad esempio, si potrebbe verificare se manca un carattere alfabetico maiuscolo nel campo FirstName inserendo [^A-Z] nel campo RegEx.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

L'elaborazione delle espressioni regolari per questa finestra di dialogo è supportata da .NET Framework.The regular expression processing for this dialog is supported by the .NET Framework. Per istruzioni sull'uso delle espressioni regolari, vedere espressioni regolari di .NET e linguaggio di espressioni regolari.For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

Esempi di scriptScript examples

Ecco alcuni esempi che mostrano gli script che è possibile usare con questa funzionalità.Here are a couple examples that illustrate scripts you might want to use with this capability.

Creare una nuova cartella e un fileCreate a new folder and file

Questo script crea una nuova cartella e un file all'interno della cartella in base ai nomi specificati.This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Recuperare la versione del sistema operativoGet OS Version

Questo script usa WMI per richiedere la versione del sistema operativo al computer.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Modifica o copia degli script di PowerShellEdit or copy PowerShell scripts

Introdotti con la versione 1902(Introduced with version 1902)
È possibile usare il comando Modifica o Copia per uno script di PowerShell esistente usato con la funzionalità Esegui script.You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. Anziché ricreare uno script che è necessario modificare, ora è possibile modificarlo direttamente.Instead of recreating a script that you need to change, now directly edit it. Entrambe le azioni usano la stessa esperienza con procedura guidata presentata per la creazione di un nuovo script.Both actions use the same wizard experience as when you create a new script. Quando si modifica o si copia uno script, Configuration Manager non salva in modo permanente lo stato di approvazione.When you edit or copy a script, Configuration Manager doesn't persist the approval state.

Suggerimento

Non modificare uno script che è in esecuzione nei client.Don't edit a script that's actively running on clients. L'esecuzione dello script originale non verrebbe completata e si potrebbero ottenere risultati diversi dal previsto da questi client.They won't finish running the original script, and you may not get the intended results from these clients.

Modificare uno scriptEdit a script

  1. Passare al nodo script nell'area di lavoro raccolta software .Go to the Scripts node under the Software Library workspace.
  2. Selezionare lo script da modificare, quindi fare clic su modifica nella barra multifunzione.Select the script to edit, then click Edit in the ribbon.
  3. Modificare o reimportare lo script nella pagina dei dettagli dello script .Change or reimport your script in the Script Details page.
  4. Fare clic su Avanti per visualizzare il Riepilogo e chiuderlo al termine della modifica.Click Next to view the Summary then Close when you're finished editing.

Copiare uno scriptCopy a script

  1. Passare al nodo script nell'area di lavoro raccolta software .Go to the Scripts node under the Software Library workspace.
  2. Selezionare lo script da copiare e quindi fare clic su copia nella barra multifunzione.Select the script to copy, then click Copy in the ribbon.
  3. Rinominare lo script nel campo nome script e apportare eventuali modifiche aggiuntive eventualmente necessarie.Rename the script in the Script name field and make any additional edits you may need.
  4. Fare clic su Avanti per visualizzare il Riepilogo e chiuderlo al termine della modifica.Click Next to view the Summary then Close when you're finished editing.

Esegui uno scriptRun a script

Dopo l'approvazione, uno script può essere eseguito su un singolo dispositivo o su una raccolta.After a script is approved, it can be run against a single device or a collection. Una volta avviata l'esecuzione, lo script viene eseguito rapidamente in un sistema ad alta priorità con timeout di un'ora.Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. I risultati dello script vengono quindi restituiti tramite un sistema di messaggi di stato.The results of the script are then returned using a state message system.

Per selezionare una raccolta di destinazioni per lo script:To select a collection of targets for your script:

  1. Nella console di Configuration Manager fare clic su Asset e conformità.In the Configuration Manager console, click Assets and Compliance.
  2. Nell'area di lavoro Asset e conformità fare clic su Raccolte dispositivi.In the Assets and Compliance workspace, click Device Collections.
  3. Nell'elenco Raccolte dispositivi fare clic sulla raccolta di dispositivi in cui si desidera eseguire lo script.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Selezionare una raccolta a scelta e fare clic su Esegui script.Select a collection of your choice, click Run Script.
  5. Nella pagina Script della procedura guidata Esegui Script scegliere uno script dall'elenco.On the Script page of the Run Script wizard, choose a script from the list. Vengono visualizzati solo gli script approvati.Only approved scripts are shown.
  6. Fare clic su Avanti e completare la procedura guidata.Click Next, and then complete the wizard.

Importante

Se lo script non viene eseguito, ad esempio perché il client di destinazione è spento entro il periodo di tempo di un'ora, è necessario eseguirlo di nuovo.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Esecuzione nel computer di destinazioneTarget machine execution

Lo script viene eseguito come account di sistema o computer nei client di destinazione.The script is executed as the system or computer account on the targeted client(s). Questo account ha accesso di rete limitato.This account has limited network access. L'accesso dello script a posizioni e sistemi remoti deve essere eseguito di conseguenza.Any access to remote systems and locations by the script must be provisioned accordingly.

Monitoraggio dello scriptScript monitoring

Dopo aver avviato l'esecuzione di uno script in una raccolta di dispositivi, usare la procedura seguente per monitorare l'operazione.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. A partire dalla versione 1710, è possibile monitorare uno script in tempo reale durante la sua esecuzione ed è anche possibile restituire un report per un'esecuzione della funzionalità Esegui script specifica.Beginning with version 1710, you're both able to monitor a script in real time as it executes, and you can also return to a report for a given Run Script execution. I dati di stato dello script vengono puliti come parte dell'attività di manutenzione Elimina operazioni client obsolete o dell'eliminazione dello script.Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

Monitoraggio dello script - Stato di esecuzione dello script

  1. Nella console di Configuration Manager fare clic su Monitoraggio.In the Configuration Manager console, click Monitoring.

  2. Nell'area di lavoro Monitoraggio fare clic su Stato script.In the Monitoring workspace, click Script Status.

  3. Nell'elenco Stato script sono visualizzati i risultati per ogni script eseguito nei dispositivi client.In the Script Status list, you view the results for each script you ran on client devices. Un codice di uscita dello script uguale a 0 indica in genere che lo script è stato eseguito correttamente.A script exit code of 0 generally indicates that the script ran successfully.

    • A partire da Configuration Manager 1802, l'output dello script viene troncato in corrispondenza di 4 KB per consentire una migliore esperienza di visualizzazione.Beginning in Configuration Manager 1802, script output is truncated to 4 KB to allow for better display experience.

    Monitoraggio script - Script troncato

Output dello script nella versione 1810Script output in 1810

È possibile visualizzare l'output degli script dettagliato in formato JSON non elaborato o strutturato.You can view detailed script output in raw or structured JSON format. Questo tipo di formattazione rende più facile leggere e analizzare l'output.This formatting makes the output easier to read and analyze. Se lo script restituisce testo in formato JSON valido, è possibile visualizzare l'output dettagliato come Output JSON oppure Output non elaborato.If the script returns valid JSON-formatted text, then view the detailed output as either JSON Output or Raw Output. In caso contrario, l'unica opzione è Output dello script.Otherwise the only option is Script Output.

Esempio: output dello script in formato JSON validoExample: Script output is valid JSON

Comando: $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

Esempio: output dello script non in formato JSON validoExample: Script output isn't valid JSON

Comando: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise
  • I client 1810 restituiscono un output inferiore a 80 KB al sito su un canale di comunicazione rapida.1810 clients return output less than 80 KB to the site over a fast communication channel. Questa modifica migliora le prestazioni di visualizzazione dell'output di script o query.This change increases the performance of viewing script or query output.

    • Se l'output di script o query è maggiore di 80 KB, il client invia i dati tramite un messaggio di stato.If the script or query output is greater than 80 KB, the client sends the data via a state message.
    • I client pre-1802 continuano a usare i messaggi di stato.Pre-1802 clients continue to use state messages.

Output dello script pre-1810Script output pre-1810

  • A partire da Configuration Manager versione 1802, l'output dello script viene restituito con la formattazione JSON.Starting in Configuration Manager version 1802, script output returns using JSON formatting. Questo formato restituisce in modo coerente un output dello script leggibile.This format consistently returns a readable script output.

  • Gli script con un risultato sconosciuto o dove il client era offline, non vengono visualizzati nei grafici o nel set di dati.Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • Evitare di restituire un output troppo grande poiché verrà troncato in corrispondenza di 4 KB.Avoid returning large script output since it's truncated to 4 KB.

  • Alcune funzionalità con la formattazione dell'output dello script non sono disponibili quando si esegue Configuration Manager versione 1802 o successiva con una versione di livello inferiore del client.Some functionality with script output formatting isn't available when running Configuration Manager version 1802 or later with a down-level version of the client.

    • Con un client di Configuration Manager precedente alla versione 1802 viene restituito un output di stringhe.When you have a pre-1802 Configuration Manager client, you get a string output.
    • Con un client di Configuration Manager versione 1802 e successive viene restituita la formattazione JSON.For Configuration Manager client version 1802 and above, you get JSON formatting.
      • Ad esempio, si può ottenere il risultato TEXT in una versione del client e "TEXT", ovvero con l'output racchiuso tra virgolette doppie, in un'altra versione. Questi risultati verranno inseriti nel grafico come due categorie diverse.For example, you might get results that say TEXT on one client version and "TEXT" (the output is surrounded in double quotes) on other version, which will be put in chart as two different categories.
      • Se questo comportamento costituisce un problema, prendere in considerazione l'esecuzione dello script su due raccolte diverse.If you need to work around this behavior, consider running script against two different collections. Una con i client precedenti alla versione 1802 e un'altra con i client 1802 e versioni successive.One with pre-1802 clients and another with 1802 and higher clients. In alternativa, è possibile convertire un oggetto enum in un valore stringa negli script in modo da visualizzarlo correttamente nella formattazione JSON.Or, you can convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.
  • Convertire un oggetto enum in un valore stringa negli script in modo da visualizzarlo correttamente nella formattazione JSON.Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    Convertire un oggetto enum in un valore stringa

File di registroLog files

A partire dalla versione 1810, la registrazione è stata estesa per agevolare la risoluzione dei problemi.Starting in version 1810, additional logging was added for troubleshooting.

  • Nel client, per impostazione predefinita in C:\Windows\CCM\logs:On the client, by default in C:\Windows\CCM\logs:

    • Scripts.logScripts.log
    • CcmMessaging.logCcmMessaging.log
  • In MP, per impostazione predefinita in C:\SMS_CCM\Logs:On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • Nel server del sito, per impostazione predefinita in C:\Programmi\Configuration Manager\Logs:On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

Vedere ancheSee Also