sccm2012

Je vous présente aujourd’hui un moyen rapide de charger le module ConfigMgr PowerShell dans la console PowerShell ISE.
powershellISE1
Pour cela nous allons procéder à la configuration d’un profil personnalisé de PowerShell ISE.
Allez dans %UserPROFILE%\Documents et créer s’il n’existe pas un répertoire WindowsPowerShell.
Créez un fichier appelé Microsoft.PowerShellISE_Profile.ps1
Ce fichier est automatiquement chargé lorsque l’ISE démarre, ce qui est vraiment pratique pour le chargement automatique des fonctions communes.

powershellISE2
Maintenant, éditez le fichier soit dans le PowerShell ISE ou le Bloc-notes et coller dans mon script.  Si vous avez déjà créé et personnalisé votre profil dans le passé, il suffit d’ajouter mon script vers le bas de votre fichier de profil.

## ADDS A Connect-ConfigMgr ITEM TO THE ISE ADD-ONS MENU ##
## Created by Matt Shadbolt - http://blogs.technet.com/b/ConfigMgrDogs ##

Function Connect-ConfigMgr {

$CustomError = $null 

If ($Console64 = Get-ItemProperty -Path HKLM:\SOFTWARE\Wow6432Node\Microsoft\ConfigMgr10\Setup -Name ProductCode -ErrorAction SilentlyContinue) {
    
    # 64-bit system
    $ModulePath = (Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\ConfigMgr10\Setup -Name "UI Installation Directory").'UI Installation Directory'
    $SiteServerName = (Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\Microsoft\ConfigMgr10\AdminUI\Connection -Name Server).Server 
    $ProviderLocation = gcim -ComputerName $SiteServerName -Namespace root\sms SMS_ProviderLocation -filter "ProviderForLocalSite='True'"
    $ProviderMachine = $ProviderLocation.Machine
    $SiteCode = $ProviderLocation.SiteCode
    Import-Module $ModulePath\bin\ConfigurationManager.psd1
    Set-Location $SiteCode":\" 
    }

ElseIf ($Console32 = Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ConfigMgr10\Setup -Name ProductCode -ErrorAction SilentlyContinue) {
    
    # 32-bit system
    $ModulePath = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\ConfigMgr10\Setup -Name "UI Installation Directory").'UI Installation Directory'
    $SiteServerName = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\ConfigMgr10\AdminUI\Connection -Name Server).Server 
    $ProviderLocation = gcim -ComputerName $SiteServerName -Namespace root\sms SMS_ProviderLocation -filter "ProviderForLocalSite='True'"
    $ProviderMachine = $ProviderLocation.Machine
    $SiteCode = $ProviderLocation.SiteCode
    Import-Module $ModulePath\bin\ConfigurationManager.psd1
    Set-Location $SiteCode":\" 

    }

Else { 
    $CustomError = [String]"Error: The required registry keys cannot be found. Please ensure the console has been installed on this computer" 
    Throw $CustomError
    }
}

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Connect-ConfigMgr", 
{
    Connect-ConfigMgr
},"ALT+F1") | out-Null

Enregistrez le fichier et ouvrir ISE.  Vous avez maintenant une option Connect-ConfigMgr dans le menu Add-Ons.  Vous pouvez soit sélectionner cette option, ou appuyez simplement sur Alt + F1 de ISE et votre console se connecte à votre console SMS.

powershellISE3

L’auteur du Script (Matt Shadbolt) l’a déposé sur la galerie Technet : ICI