Introduzione ai cmdlet Configuration Manager
Si applica a: Configuration Manager (Current Branch)
Usare Windows PowerShell per gestire la gerarchia Configuration Manager. È possibile usare script di PowerShell per automatizzare o estendere Configuration Manager simili ad altri approcci documentati usando WMI e C#. Per altre informazioni, vedere Configuration Manager SDK.
Eseguire Configuration Manager cmdlet e script in PowerShell dalla console di Configuration Manager o da una sessione Windows PowerShell. Quando si eseguono Configuration Manager cmdlet usando la console Configuration Manager, la sessione viene eseguita automaticamente nel contesto del sito.
Nota
Tutte le versioni attualmente supportate di Configuration Manager current branch supportano Windows PowerShell versione 5.1. Se PowerShell versione 7 è già stato installato, è comunque possibile usare PowerShell versione 5.1. Per altre informazioni, vedere Uso di PowerShell 7 side-by-side con Windows PowerShell 5.1.
La libreria di cmdlet di PowerShell Configuration Manager supporta PowerShell 7. Per altre informazioni, vedere Supporto per PowerShell versione 7.
A partire dalla versione 2103, il modulo ConfigurationManager PowerShell richiede Microsoft .NET versione 4.7.2 o successiva.
PowerShell dalla console di Configuration Manager
Il metodo più semplice per aprire PowerShell è direttamente dalla console di Configuration Manager.
Avviare la console Configuration Manager. Nell'angolo superiore sinistro è presente un rettangolo blu. Selezionare la freccia bianca nel rettangolo blu e scegliere Connetti tramite Windows PowerShell.
Dopo Windows PowerShell caricamento, verrà visualizzata una richiesta che contiene il codice del sito. Ad esempio, se il codice del sito è "ABC", il prompt sarà simile al seguente:
PS ABC:\>
Per verificarne il funzionamento, usare il cmdlet Get-CMSite . Questo cmdlet restituisce informazioni sul sito Configuration Manager a cui si è attualmente connessi ed eventuali siti figlio. Ad esempio, il nome del server del sito, il direttore dell'installazione, il nome del sito e la versione.
Nota
Quando si avvia PowerShell o PowerShell ISE dalla console di Configuration Manager, vengono usati i criteri di esecuzione AllSigned per l'ambito Processo. Se questa configurazione sicura predefinita è eccessiva per l'ambiente, sono disponibili due opzioni per aggirarla:
- Modificare i criteri di esecuzione con un comando simile all'esempio seguente:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
- Importare il modulo Configuration Manager PowerShell.
Importare il modulo powershell Configuration Manager
Connettersi a Configuration Manager da una sessione di Windows PowerShell esistente caricando manualmente il modulo Configuration Manager.
Aprire una sessione di Windows PowerShell dal menu Start.
Importare il modulo Configuration Manager usando il cmdlet Import-Module. Specificare il percorso del modulo Configuration Manager o passare alla directory che contiene il modulo. Per impostazione predefinita, il modulo si trova nel percorso seguente:
C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\ConfigurationManager.psd1
A partire dalla versione 2111, quando si installa la console Configuration Manager, il percorso del modulo viene ora aggiunto alla variabile di ambiente di sistema PSModulePath. Per altre informazioni, vedere about_PSModulePath. Con questa modifica, è possibile importare il modulo solo in base al nome:
Import-Module ConfigurationManager
Importante
Assicurarsi di non importare una versione precedente del modulo che potrebbe esistere in un'altra cartella. Dopo aver importato il modulo, usare i comandi seguenti per controllare la versione e il percorso del modulo:
(Get-Module -Name ConfigurationManager).Version (Get-Module -Name ConfigurationManager).Path
Nell'esempio seguente viene modificato nella directory del modulo e quindi viene importato:
Set-Location 'C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin' Import-Module .\ConfigurationManager.psd1
Consiglio
È anche possibile usare la variabile di ambiente SMS_ADMIN_UI_PATH . Ad esempio:
Set-Location "$env:SMS_ADMIN_UI_PATH\..\"
È anche possibile usare l'alias cd per modificare le directory anziché il cmdlet Set-Location .
Se è la prima volta che si importa il modulo Configuration Manager in questo computer, potrebbe essere necessario creare l'unità del sito. Per esempio:
New-PSDrive -Name "ABC" -PSProvider "CMSite" -Root "siteserver.contoso.com" -Description "Primary site"
Consiglio
Quando si avvia PowerShell dalla console, viene creato automaticamente PSDrive come comodità per il sito attualmente connesso. Se si è in una gerarchia, usare New-PSDrive per creare unità per ogni sito.
Per eseguire i cmdlet Configuration Manager, è necessario passare al percorso del sito Configuration Manager. Nell'esempio seguente il codice del sito è
ABC
:Set-Location ABC:
Verificare che PowerShell ha caricato correttamente il modulo Configuration Manager usando il cmdlet Get-CMSite.
Aggiornare la Guida
Per ottenere le informazioni più recenti per il modulo Configuration Manager PowerShell, usare il cmdlet Update-Help. Questo contenuto è uguale a quello pubblicato in Microsoft Learn per il modulo ConfigurationManager.
Importante
A causa di una modifica del modo in cui il contenuto aggiornabile è strutturato e pubblicato con la versione 2103, non usare Update-Help in un sito versione 2010. Aggiornare il sito alla versione 2103 o successiva e quindi aggiornare il contenuto della Guida locale.
Per altre informazioni, vedere Note sulla versione di PowerShell 2103.
Il computer in cui si esegue questo cmdlet richiede l'accesso a Internet, in particolare pshelpprod.blob.core.windows.net
. Eseguire quindi il comando seguente da una sessione di PowerShell con privilegi elevati:
Update-Help -Module ConfigurationManager
Dopo aver aggiornato la Guida del cmdlet Configuration Manager, è possibile ottenere assistenza sui cmdlet usando il cmdlet Get-Help. Ad esempio:
Get-Help Get-CMDevice
Get-Help Get-CMDevice -Examples
Get-Help Get-CMDevice -Parameter *
Per altre informazioni, vedere il post di blog di PowerShell seguente: Guida.
Parametri comuni
Tutti i cmdlet Configuration Manager supportano i parametri di PowerShell comuni:
- Debug
- Erroraction
- ErrorVariable
- InformationAction
- InformationVariable
- OutVariable
- OutBuffer
- PipelineVariable
- Dettagliato
- Warningaction
- WarningVariable
Per altre informazioni, vedere about_CommonParameters.
Supporto per PowerShell versione 7
La libreria di cmdlet Configuration Manager PowerShell supporta PowerShell versione 7. Per altre informazioni su PowerShell 7, incluse le istruzioni su come scaricarlo e installarlo, vedere Installare PowerShell in Windows.
Consiglio
PowerShell 7 viene eseguito come pwsh.exe
. Le versioni precedenti di PowerShell vengono eseguite come powershell.exe
.
Cmdlet che non supportano PowerShell versione 7
I cmdlet seguenti non supportano PowerShell 7:
- Import-CMPackage
- Import-CMDriverPackage
- Import-CMTaskSequence
- Export-CMPackage
- Export-CMDriverPackage
- Export-CMTaskSequence
- Add-CMReportingServicePoint
- Get-CMReportingServicePoint
- Remove-CMReportingServicePoint
- Set-CMReportingServicePoint
Richiedono .NET Framework anziché .NET Core usato con PowerShell versione 7.
A partire dalla versione 2103, se si tenta di usare questi cmdlet in una sessione di PowerShell versione 7, l'errore è il seguente: This cmdlet only supports the ".NET Framework" runtime.
Problemi noti relativi a PowerShell versione 7
Non è possibile avviare PowerShell 7 direttamente dalla console di Configuration Manager. Avviare manualmente PowerShell 7 e quindi importare il modulo Configuration Manager.
Il supporto corrente è solo per i cmdlet Configuration Manager. Altre funzionalità di Configuration Manager basate su PowerShell potrebbero non supportare la versione 7. Ad esempio, Eseguire script, CMPivot o il passaggio Della sequenza di attività Esegui script di PowerShell .
Commenti e suggerimenti per PowerShell
Se si hanno commenti e suggerimenti sui cmdlet di PowerShell Configuration Manager, usare le stesse opzioni nella console di Configuration Manager per inviare commenti e suggerimenti. Per altre informazioni, vedere Commenti e suggerimenti sui prodotti.
Quando si invia un cipiglio, includere le informazioni aggiuntive seguenti specifiche di PowerShell:
La sintassi esatta dello script o del comando usata in modo che Microsoft possa provare a riprodurre il problema.
Comportamento previsto rispetto al comportamento effettivo.
Output completo quando viene eseguito con il parametro comune Verbose .
Versione e percorso del modulo ConfigurationManager . Ad esempio, includere l'output dei comandi seguenti:
(Get-Module -Name ConfigurationManager).Version (Get-Module -Name ConfigurationManager).Path
Se un cmdlet restituisce un errore, usare il comando seguente per ottenere i dettagli dell'eccezione:
$Error[0].Exception | Format-List * -Force
Note sulla versione di anteprima
L'articolo sulle funzionalità di Technical Preview nella libreria della documentazione di base include le note sulla versione per PowerShell. Ad esempio, vedere Technical Preview versione 2202.
Passaggi successivi
Per altre informazioni sulle modifiche apportate alla versione più recente di Configuration Manager, selezionare le note sulla versione più recenti dal sommario.
Per altre informazioni sui singoli cmdlet, vedere le informazioni di riferimento sui cmdlet Configuration Manager.
Per altre informazioni sull'apprendimento e sull'introduzione a Windows PowerShell, vedere PowerShell 101.