Rengeteg cég a NIS2 miatt tervezi bevezetni az SCCM-et vagy az Intune-t mint MDM megoldás. Mivel ezeknek a cégeknek nincsen központi megoldásuk a gépek kezelésére ezért az Autopilot-hoz szükséges HWID (hardware hash) beszerzése nehézkes lehet. Abban az esetben ha ezzel a kihívással szembesültél, akkor ez a cikk megoldást jelenthet a számodra!
A következő megoldás amit bemutatok, Group Policy haszálatával gyűjti be a HWID-kat egy Azure Containerbe.
Komponensek
Az On-Premisse Active Directory-n szükségünk van egy Group Policy-ra amit a felhasználók Organizational unitjához tudunk link-elni. Ez a Group Policy a következő komponenseket hozza létre a klienseken:
- ‘C:\HWID’ mappát, ahova a szükséges fileokat másoljuk a kliensen.
- ‘HWID_Harvest.ps1’ file-t, ami az ‘orchestrator’ file, ő irányítja a folyamatot.
- ‘Runscript.vbs’ file-t, ami segítségével a HWID_Harvest.ps1 file a háttérben tud futni anélkül, hogy a felhasználó ebből bármit érzékelne.
- ‘HWID Harvester’ scheduled task-ot, ami a következő bejelentkezésnél fut le.
Szükségünk van egy Azure blob storage-ra, ahova a következő komponenseket kell feltölteni ide:
- ‘azcopy.exe’ tool-t
- ‘Get-WindowsAutopilotInfo.ps1’ file-t
- továbbá a generált ‘s/n.csv’ fileokat ide gyűjtjük
Szükséges fileok beszerzése és létrehozása
Gyűjtsük be a szükséges fileokat.
- ‘azcopy.exe’ tool : Download Link
- ‘Get-WindowsAutopilotInfo.ps1’ file-t amit PowerShell segítségével tudunk letölteni:
$env:Path += ";C:\Program Files\WindowsPowerShell\Scripts"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Install-Script -Name Get-WindowsAutopilotInfo
- ‘HWID_Harvest.ps1’ file tartalma:
# Enable TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Define variables
$hwidPath = "C:\HWID"
$localScript = "$hwidPath\Get-WindowsAutoPilotInfo.ps1"
$azCopyPath = "C:\Windows\azcopy.exe"
$blobURL = "https://vtrebvrrvbcku.blob.core.windows.net/hwid?sp=..." # <- Cseréld ki érvényes URL-re
$azCopyDownloadURL = "https://vtrebvrrvbcku.blob.core.windows.net/hwid/azcopy.exe?sp=..." # <- Cseréld ki érvényes URL-re
$scriptURL = "https://vtrebvrrvbcku.blob.core.windows.net/hwid/Get-WindowsAutopilotInfo.ps1?sp=..." # <- Cseréld ki érvényes URL-re
# Get serial number
$sn = (Get-CimInstance Win32_BIOS).SerialNumber
$file = "$hwidPath\$sn.csv"
# Ensure HWID directory exists
if(!(Test-Path $hwidPath)){
New-Item -ItemType Directory -Path $hwidPath -Force | Out-Null
}
# Exit if .csv file already exists
if(Test-Path $file){
exit
}
# Download Get-WindowsAutoPilotInfo.ps1 from Blob
Invoke-WebRequest -Uri $scriptURL -OutFile $localScript
# Download AzCopy if not exists
if(!(Test-Path $azCopyPath)){
(New-Object System.Net.WebClient).DownloadFile($azCopyDownloadURL, $azCopyPath)
}
# Generate the HWID CSV
& $localScript -OutputFile $file
# Upload to Blob Storage
& $azCopyPath copy "$file" "$blobURL" --overwrite=true --check-length=false
- ‘Runscript.vbs’ file tartalma:
Dim shell,command
command = "powershell.exe -windowstyle hidden -noprofile -executionpolicy bypass -file ""C:\HWID\HWID_Harvest.ps1"""
set objShell = CreateObject("wscript.shell")
objShell.Run command,0
Komponensek feltöltése az Azure ‘Containerbe’
Ha segítségre van szükséged az Azure Container létrehozásában, erről itt olvashatsz: LINK

Töltsük fel a ‘Get-Windowsautopilotinfo.ps1’ és az ‘azcopy.exe’ fileokat az ‘Upload’ használatával az Azure Containerbe.
SAS token generálása és script frissítése
- Generáljuk le a szökséges link-eket, majd frissítsük a ‘HWID_Harvest.ps1’-fileunkat.

- $blobURL = Ide adjuk meg a ‘Container’ elérési URL-ét.
- Kattintsunk a ‘…’ gombra a létrehozott ‘Container’ mellett majd a ‘Generate SAS’ opcióra:

- Generáljuk le a LINK-et és a SAS tokent a következő beállításokkal:

- Adjuk meg a ‘Blob SAS URL’ értékét a $blobURL változónkba.

- $azCopyDownloadURL = Ide adjuk meg az ‘azcopy.exe’ elérési URL-ét.
- Kattintsunk a ‘…’ gombra a feltöltött ‘azcopy.exe’ mellett majd a ‘Generate SAS opcióra’.Most ‘Read’ jogosultsággal generáljuk le az SAS URL-t, ügyeljünk a ‘Start’ és ‘Expiry’ beállítások konfigurálása.
- Adjuk meg a ‘Blob SAS URL’ értékét a $azCopyDownloadURL válltozóba.
- $scriptURL = Ide adjuk meg a ‘Get-WindowsAutopilotInfo.ps1’ elérési URL-ét.
- Kattintsunk a ‘…’ gombra a feltöltött ‘Get-WindowsAutopilotInfo.ps1’ mellett majd a ‘Generate SAS opcióra’.Szintén ‘Read’ jogosultsággal generáljuk le az SAS URL-t, ügyeljünk a ‘Start’ és ‘Expiry’ beállítások konfigurálása.
- Adjuk meg a ‘Blob SAS URL’ értékét a $scriptURL válltozóba.
- Mentsük el a módosított ‘HWID_Harvest.ps1’ file-t.
Group Policy konfigurálása
- Hozzunk létre egy új Group Policy-t az On-Premisse Active Directory szerveren.
- Töltsük fel a szükséges fileokat a Sysvol share megfelelő mappájába, hogy a GPO tudja teríteni a kliensekre.:
– A share címe általában így képződik: ‘Domain\SysVol\domain\policies\{Policy Unique ID}\Users\scripts’. A Policy ID-ját a GPO ‘Details’ oldalán találjuk:

- A ‘Domain\SysVol\domain\policies\{Policy Unique ID}\Users\scripts’ mappába másoljuk be a ‘HWID_Harvest.ps1’ file-t és a ‘Runscript.vbs’ file-t.
- Konfiguráljuk a GPO-t, a ‘HWID’ mappa létrehozása érdekében:
– Computer\User Configuration -> Preferences -> Windows Settings -> Folders
– New folder

- Konfiguráljuk a GPO-t, a szükséges file-ok terítéséhez:
– Computer\User Configuration -> Preferences -> Windows Settings -> Files
– New -> File


- Konfiguráljuk a GPO-t a Scheduled Task létrehozására:
– Computer\User Configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks
– New -> Scheduled Task (At least Windows 7)




Tesztelés
- Link-eljük a GPO-t a megfelelő user OU-ra vagy user csoportra.
– Jelentkezzünk be egy kliens-re és teszteljük a GPO-t.
– CMD-be futtassuk le a ‘gpupdate /force’ parancsot.
– Győződjünk meg róla, hogy létrejöttek a szükséges file-ok a kliensen.
– Jelentkezzünk ki a felhasználói fiókból, majd lépjünk vissza.
– Ellenőrizzük az Azure Container tartalmát.
Leave a comment