PI Services

Le blog des collaborateurs de PI Services

MEM / Intune : Configurer Google Chrome à l'aide de l'ingestion ADMX

La configuration des paramètres de stratégie de Microsoft Edge dans Microsoft Intune peut être gérée par le profil de modèles d'administration déjà intégré.

Si vous souhaitez gérer les paramètres de stratégie de Google Chrome dans Microsoft Intune, ils ne sont actuellement pas disponible dans les modèle d'administration. Dans ce cas, la solution est de configurer Google Chrome avec des paramètres personnalisés pour les appareils Windows 10 et versions ultérieures dans Intune.

La configuration se passe en deux étapes :

1. Ingérer le fichier ADMX Google Chrome dans Intune

Pour ingérer le fichier ADMX, procédez comme suit :

- Téléchargez les modèles ADMX Chrome

- Connectez-vous au portail Microsoft Azure

- Accédez à Intune puis Périphériques puis Profils de configuration

- Dans la barre de commandes supérieure, sélectionnez + Créer profil

Sélectionnez un profil personnalisé (Custom) ensuite cliquez sur créer et choisissez un nom dans le menu suivant.

Dans la configuration des paramètres OMA-URI, saisissez le texte suivant :

  • Nom
    Google Chrome ADMX ingestion
  • Description
    Saisir une description (facultatif)
  • OMA-URI
    ./Device/Vendor/MSFT/Policy/ConfigOperations/ADMXInstall/Chrome/Policy/ChromeAdmx
  • Type de données
    Chaîne (à sélectionner dans la liste déroulante)

Une fois que vous avez sélectionné Chaîne, un champ de texte intitulé Valeur s'affiche en bas. Vous allez trouver le contenu de ce champ texte dans le fichier chrome.admx qui se trouve dans le fichier .zip que vous avez déjà téléchargé (modèles ADMX Chrome) sous le chemin suivant : Configuration/admx/chrome.admx.

Cliquez sur Save.

2. Définir une stratégie à l'aide d'un OMA-URI personnalisé dans Intune

Sur le même profil, on peut ajouter des OMA-URI personnalisé pour définir des stratégies de Google Chrome.

Pour ajouter des paramètres de stratégie Google Chrome, vous devez ouvrir le profil déjà créé pour ingérer l'ADMX, ensuite cliquer sur Propriétés, puis sur Modifier les Paramètres de configuration.

Dans cet exemple, nous allons ajouter un paramètre OMA-URI personnalisé afin d'autoriser les Popup dans Chrome pour "piservices.fr".

Dans le menu suivant, cliquez sur Ajouter

Dans le menu suivant, indiquez les informations suivantes :

  • Nom
    CHROME Allow Popup
  • Description
    Saisir une description (facultatif)
  • OMA-URI
    ./Device/Vendor/MSFT/Policy/Config/Chrome~Policy~googlechrome~ContentSettings/PopupsAllowedForUrls
  • Type de données
    Chaîne (à sélectionner dans la liste déroulante)
  • Valeur

    <enabled/>

    <data id="PopupsAllowedForUrlsDesc" value="1&#xF000;[*.]piservices.fr"/>a

Cliquez sur Save.

 

Sources :

Gérer le navigateur Chrome avec Microsoft Intune - Aide Google Chrome Enterprise

Configurer Microsoft Edge à l’aide de Gestion des périphériques mobiles | Microsoft Docs

Script - Invoquer un update d'un agent Trend OSC a distance

Le script ci-dessous propose d'utiliser a distance la commande "PccNTMon.exe -u" sur un agent Trend OSC pour invoquer une mise a jour, en direction de son serveur OSC de rattachement.

 

#### RemoteInvokeTrendOSCAgentUpdate.ps1: REMOTELY INITIATE AN UPDATE OF A TREND OSC AGENT ####

## COMMENT: The script execute command through PSSession and open a RDP window to allow interactive use of "OSCAgentExe -u" ###

param(
# Target Computer
$Computer = "MyTarget",
# Cred
$Cred = $(Get-Credential -Credential "MyAccount"),
# OSC Agent Folder
$OSCAgentFolder = "C:\Program Files (x86)\Trend Micro\OfficeScan Client\",
# OSC Client Process
$OSCClientProc = "PccNTMon"
)


# OSC Agent Exe
$OSCAgentExe = "$OSCAgentFolder$OSCClientProc`.exe"


# FUNCTIONS
function Set-WindowState {
	
	[CmdletBinding(DefaultParameterSetName = 'InputObject')]
	param(
		[Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true)]
		[Object[]] $InputObject,

		[Parameter(Position = 1)]
		[ValidateSet('FORCEMINIMIZE', 'HIDE', 'MAXIMIZE', 'MINIMIZE', 'RESTORE',
					 'SHOW', 'SHOWDEFAULT', 'SHOWMAXIMIZED', 'SHOWMINIMIZED',
					 'SHOWMINNOACTIVE', 'SHOWNA', 'SHOWNOACTIVATE', 'SHOWNORMAL')]
		[string] $State = 'SHOW'
	)

	Begin {
		$WindowStates = @{
			'FORCEMINIMIZE'		= 11
			'HIDE'				= 0
			'MAXIMIZE'			= 3
			'MINIMIZE'			= 6
			'RESTORE'			= 9
			'SHOW'				= 5
			'SHOWDEFAULT'		= 10
			'SHOWMAXIMIZED'		= 3
			'SHOWMINIMIZED'		= 2
			'SHOWMINNOACTIVE'	= 7
			'SHOWNA'			= 8
			'SHOWNOACTIVATE'	= 4
			'SHOWNORMAL'		= 1
		}

		$Win32ShowWindowAsync = Add-Type -MemberDefinition @'
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@ -Name "Win32ShowWindowAsync" -Namespace Win32Functions -PassThru

		if (!$global:MainWindowHandles) {
			$global:MainWindowHandles = @{ }
		}
	}

	Process {
		foreach ($process in $InputObject) {
			if ($process.MainWindowHandle -eq 0) {
				if ($global:MainWindowHandles.ContainsKey($process.Id)) {
					$handle = $global:MainWindowHandles[$process.Id]
				} else {
					Write-Error "Main Window handle is '0'"
					continue
				}
			} else {
				$global:handle = $process.MainWindowHandle
			}

			$Win32ShowWindowAsync::ShowWindowAsync($handle, $WindowStates[$State]) | Out-Null
			Write-Verbose ("Set Window State '{1} on '{0}'" -f $handle, $State)
		}
	}
}




# FOR EACH COMPUTER
foreach ($Comp in $Computer) {


# Create PSSession
try
{
New-PSSession -ComputerName $Comp -Credential $Cred -Name "PSSession_$Comp" -ErrorAction Stop
}
catch
{
write-host -F Red "Error during New-PSSession `n $($Error[0].Exception)"
exit 1 
}


# Get PSsession
$RemoteSession = Get-PSSession -Name "PSSession_$Comp"


# Open RDP Session (needed because the invoke update is interactive)
cmdkey /generic:TERMSRV/$Comp /user:($Cred.UserName) /pass:($Cred.GetNetworkCredential().Password)

mstsc /v:$Comp /w:50 /h:50

Write-Host "Wait for 10 sec..."
Start-Sleep -Seconds 10


# Get the RDP process Id to kill it at the end
$ProcId = (Get-Process mstsc | Where-Object {$_.MainWindowTitle -like "*$Comp*"}).Id


# Minimize RDP Window
(Get-Process mstsc | Where-Object {$_.MainWindowTitle -like "*$Comp*"}) | foreach {Set-WindowState $_ HIDE}


Write-Host "Wait for 10 sec..."
Start-Sleep -Seconds 10



# Invoke Update
write-host "Invoking update..."
Invoke-Command -Session $RemoteSession -ScriptBlock {Start-Process -FilePath $Using:OSCAgentExe -ArgumentList "-u"} 


        # Wait while update (see for update of ofcscan.ini file)
        do {
            Write-Host "Wait while update..."
           }

        until

           (
            (Invoke-Command -Session $RemoteSession -ScriptBlock {Get-ChildItem -Path "$Using:OSCAgentFolder`ofcscan.ini" | Where-Object {$_.LastWriteTime -gt $(get-date).AddMinutes(-15)}})
           )


Write-Host "Wait for 10 sec..."
Start-Sleep -Seconds 10



# Close RDP Session
write-host "Logoff RDP Session on $Comp..."
Invoke-Command -Session $RemoteSession -ScriptBlock {`
    $CredUser = $($Using:Cred.UserName)
    $sessions = quser | Where-Object {$_ -match $CredUser} ; 
    $sessionIds = ($sessions -split ' +')[2] ; 
    Write-Host "Found $(@($sessionIds).Count) user login(s) on computer.";
    $sessionIds | ForEach-Object {Write-Host "Logging off session id [$($_)]..." ; logoff $_}
     
     }


# Close RDP Session Disconnect Window by killing process
Get-Process -Id $ProcId | stop-process


}

# Remove Pssession
Get-PSSession | Remove-PSSession