In dieser Anleitung beschreibe ich kurz, wie wir Dateien mit Intune auf verschiedene Rechner kopieren können. So können wir z.B. Desktopverknüpfungen oder andere Dateien auf die einzelnen Clients verteilen. So ersparen wir uns die Arbeit, die Dateien auf dem manuellen Weg auf die Clients zu bringen.
Tool herunterladen
Im ersten Schritt brauchen wir das Intune-Content-Prep Tool von Microsoft. Dieses können wir hier (https://github.com/microsoft/Microsoft-Win32-Content-Prep-Tool/tree/master) herunterladen.
Mit diesem Tool wird eine intunewin-Datei generiert, welche wir dann in das Paket hochladen. In dieser Datei befinden sich dann (im besten Fall) alle benötigten Dateien, die für die Installation benötigt werden.
Skripte erstellen
In unserem Beispiel werden wir eine Verknüpfung (die wir vorher erstellt haben) per Intune auf die Clients verteilen. Für diese Durchführung brauchen wir im ersten Schritt ein Skript, welches die Installation an sich durchführt und ein Skript, welches überprüft, ob die Datei ordnungsgemäß installiert wurde.
Zuerst erstellen wir jetzt das Installationsskript. Dieses trägt in diesem Beispiel den Namen install.ps1
$PackageName = "Name"
$Version = 1
$shortcut_exists = $false
Copy-Item -Path '.\verknüpfung.url' -Destination "C:\Users\Public\Desktop\" -Force
while($shortcut_exists -eq $false)
{
if(-not (Test-Path "C:\Users\Public"))
{
New-Item -Path "C:\Users\" -ItemType Directory -Name "Public" -Force
}
if(-not (Test-Path "C:\Users\Public\Desktop"))
{
New-Item -Path "C:\Users\Public\" -ItemType Directory -Name "Desktop" -Force
}
if(Test-Path -Path ".\verknüpfung.url")
{
Copy-Item -Path ".\verknüpfung.url" -Destination "C:\Users\Public\Desktop" -Force
}
if(Test-Path "C:\Users\Public\Desktop\verknüpfung.url")
{
$shortcut_exists = $true
New-Item -Path "C:\Program Files\Validation" -ItemType Directory -Force
New-Item -Path "C:\Program Files\Validation\$PackageName" -ItemType File -Force -Value $Version
}
}
Skript-Erläuterung
Das Skript überprüft, ob es das Verzeichnis C:\Users\Public\Desktop
gibt. Falls es dieses Verzeichnis nicht gibt, wird dieses erstellt. Im Anschluss wird die Desktopverknüpfung aus dem Container extrahiert, und in das Verzeichnis kopiert. Zum Schluss wird noch ein Validation Verzeichnis erstellt, falls dieses noch nicht vorhanden ist. Dieses enthält die Versionsnummer, um spätere Aktualisierungen zu vereinfachen.
Im nächsten Schritt erstellen wir das Skript check.ps1. Dieses überprüft, ob unser Programm ordnungsgemäß an allen Rechnern installiert wurde.
$PackageName = "Name"
$Version = "1"
$ProgramVersion_current = Get-Content -Path "C:\Program Files\Validation\$PackageName"
if($ProgramVersion_current -eq $Version){
Write-Output("Programm vorhanden!")
exit 0
} else {
exit 1
}
Skript-Erläuterung
In diesem Skript wird nur überprüft, ob die Versionsnummer in dem Verzeichnis identisch mit der Versionsnummer des Skriptes ist. Je nachdem wird true oder false zurückgegeben.