Cómo descargar scripts de Intune con Microsoft Graph PowerShell
¿Alguna vez quiso descargar un script que otra persona cargó en su portal de Intune pero ya no tiene acceso al archivo de script original? Con Microsoft Graph PowerShell, puede extraer los archivos de script reales directamente desde Microsoft Intune y descargarlos a su computadora.
Muy a menudo encontrará que los scripts pueden quedar sin documentar y carecer de control de cambios, lo que puede provocar rápidamente la pérdida de los archivos originales. Esto es un problema mucho mayor cuando se usa Intune y Microsoft no proporciona una forma nativa de descargar scripts existentes desde el portal web.
En este tutorial, le mostraré cómo descargar scripts de Intune cargados previamente con Microsoft Graph PowerShell.
Requisitos previos
Este script utiliza la versión 1 de los módulos de Microsoft Graph PowerShell. Para instalar Microsoft Graph PowerShell, siga mi tutorial aquí: Cómo instalar el módulo Microsoft Graph PowerShell.
Además, para delegar permisos a la aplicación Microsoft Graph PowerShell, deberá iniciar sesión como administrador global cuando se le solicite en este script. Si desea obtener más información sobre los permisos con los cmdlets de Microsoft Graph, consulte mi tutorial: Cómo encontrar permisos para Microsoft Graph PowerShell.
Localización de scripts de PowerShell a través del portal de Intune
Desde el portal web de Microsoft Intune, puede ver los scripts que ha cargado e implementado en su entorno. El problema es que una vez cargados los scripts, Microsoft no proporciona una manera conveniente de volver a descargarlos fácilmente. Por supuesto, se supone que los scripts se documentan, almacenan y controlan los cambios de manera eficiente; sin embargo, este no es el caso la mayor parte del tiempo.
Para ver el script que se ha cargado en su entorno Intune, siga los pasos a continuación:
1. Inicie sesión en Microsoft Intune aquí https://intune.microsoft.com/ como administrador de Intune
2. Seleccione Dispositivos > Scripts
Desde esta página podrá ver el nombre del script, la plataforma de destino, el tipo de script, cuándo se cargó y si está asignado o no.
Cómo descargar secuencias de comandos de Intune
Este pequeño script recorrerá cada script que se haya subido a Intune, tomará el contenido del script, lo volverá a convertir desde su estado codificado y lo exportará como un archivo de PowerShell ps1. Puede modificar la variable $path para cambiar la ubicación a la que se exporta.
Si planea reutilizar parte del código de este sitio, atribuya la fuente, ¡no cuesta nada!
#Define output path
$path = "C:\temp\"
Connect-MgGraph -Scopes DeviceManagementConfiguration.Read.All
$Report = [System.Collections.Generic.List[Object]]::new()
$uri = "https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts"
$scripts = Invoke-MgGraphRequest -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts" -OutputType PSObject | select -expand value | select displayname, fileName, id
foreach ($Script in $scripts) {
$sc = $null
$uri2 = "https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts/$($script.id)"
$sc = Invoke-MgGraphRequest -Uri $uri2 -Method GET
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($($sc.scriptContent))) | Out-File -FilePath $(Join-Path $path $($sc.fileName)) -Encoding ASCII
$obj = [PSCustomObject][ordered]@{
"Display Name" = $sc.displayname
"File Name" = $sc.filename
"Output Path" = "$path$($sc.filename)"
}
$report.Add($obj)
}
#Show report in console
$reportUna vez que el script se haya ejecutado correctamente, verá un resultado en la consola que muestra cada script que se ha exportado y la ruta de salida a ese script.
Resumen
Este script ha sido diseñado para realizar el procedimiento de exportar scripts de PowerShell cargados previamente desde Intune a su máquina local. No es demasiado complejo y simplemente se podrían agregar funciones adicionales.


