Offline Domain Join mit XOAP und Azure Blob Storage

Verwenden Sie das Modul Offline Domain Join, um ein Gerät, das keinen Zugriff auf den Domain Controller hat, in die Domäne aufzunehmen. Hier kostenlos herunterladen!
Abbildung von Perica

Perica

Mit unserem Modul können Sie einem Gerät, das keinen Zugang zum Domain Controller hat (über das Firmennetzwerk oder über VPN), einen Domain Join ermöglichen. Es ist ein alternativ zu verwenden Azure Hybrid Join.

Während Azure Hybrid Join ein Gerät zu Azure AD (Entra) und lokalem AD hinzufügt, ermöglicht diese Option nur den Beitritt eines Geräts zum lokalen AD. In der Zwischenzeit ist Hybrid Join hinsichtlich der Namenskonvention eingeschränkt und erlaubt nur die Definition des Präfixes.

Mit dieser Lösung ist es möglich, ein Präfix zu definieren und eine Seriennummer von Computern für den Computernamen zu verwenden.

Für wen ist das?

Sie können von diesem Modul profitieren, egal ob Sie XOAP-Nutzer sind oder nicht. So geht's:

a) Wenn Sie ein XOAP-Benutzer sind, können Sie mit diesem Modul und der XOAP-Konsole einfach Windows-Clients für die Verwendung von Offline Domain Join über Azure Blob Storage einrichten.

b) Wenn Sie kein XOAP-Benutzer sind, verwenden Sie dieses Modul in Ihrer eigenen DSC-Umgebung, oder verwenden Sie PowerShell-Skripte in diesem Modul, um eine eigene Automatisierungsalternative für Offline Domain Join zu erstellen.

Möchten Sie alles erleben, was XOAP zu bieten hat? Erstellen Sie hier Ihr kostenloses Konto!

Wozu dient dieses Modul?

Zur weiteren Erläuterung: Dieses Modul benennt den Computer anhand der Seriennummer und des definierten Präfixes um. Anschließend wird ein Offline Domain Join des Geräts über Azure Blob Storage erstellt, falls gewünscht.

Der Computer erstellt eine Anforderung und stellt sie an einem bestimmten Ort auf Azure Blob bereit. Dann nimmt der Domänencontroller diese Anforderung entgegen und stellt eine Antwort auf Azure Blob ein. Diese Antwortdatei wird dann von einem Computer gelesen - und der Computer führt einen Offline-Domänenbeitritt durch. Außerdem wird das Zertifikat aus Azure Blob importiert.

Was muss ich wissen, bevor ich anfange?

Um zu verstehen, wie man es verwendet, sind neben diesen 3 Komponenten auch Kenntnisse in PowerShell, Active Directory und Azure Storage erforderlich:

  1. Serverseitig: Modifizierung des Domain Controllers, um Offline Domain Join zu ermöglichen
  2. Azure Blob Storage: Speicher zum Hosten von Dateien, die für Offline Domain Join benötigt werden
  3. XOAPOfflineDomainJoinViaBlobDSC: zum Einrichten eines Windows-Clients zum Erstellen einer Anfrage und Abrufen der Antwort für Offline Domain Join

Liste der Voraussetzungen:

  • AzureAZ PowerShell-Modul (falls nicht installiert, werden die Untermodule "Az.Accounts" und "Az.Storage" bei der Ausführung dieses DSC-Moduls installiert);  
  • ComputerManagementDsc in Version 8.5.0; 
  • Azure Blob-Speicher; 
  • Lokales Active Directory; 
  • PowerShell-Skript, das die Anforderung von Azure Blob Storage liest und die Antwortdatei und das Maschinenzertifikat auf Azure Blob Storage setzt (Beispiel unten).
				
					$WarningPreference = "SilentlyContinue" $Domain = "test.local.com" $OU = "OU=Notebooks,OU=Koeln,DC=test,DC=local,DC=com" $TTenant_ID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
$Subscription_ID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
$ResBenutzername = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
$SAccountname = "xoapdeployments" $ContainerName = "adjoin" $FExt = ".blb" $BlobFolder ="adblob" $RequestFolder = "request" $JoinName ="" Set-Location C:\Scripts #SecPass.exe generiert Passwort für Azure-Zugang $SecPassStr = cmd /c .\SecPass.exe $args 2`>`&1 $cred = New-Object System.Management.Automation.Pscredential($ResUsername, (ConvertTo-SecureString -String $SecPassStr)) $ARMA = Add-AzureRmAccount -ServicePrincipal -Credential $cred -TenantId $Tenant_ID -Subscription $Subscription_ID $ARMA $storageContainer = Get-AzureRmStorageAccount | where {$_.StorageAccountName -eq $SAccountname} | Get-AzureStorageContainer $ComputerFiles = $storageContainer | Get-AzureStorageBlob | where {$_.Name.Contains($RequestFolder) -und !($_.Name.Contains("flag.flg"))}  | Select-Objekt "Name" , "LastModified" # $ComputerFiles if($ComputerFiles) { foreach($Computerfile in $ComputerFiles) { $JoinName = $ComputerFile.Name.Replace("/","\") # $JoinName $storageContainer | Remove-AzureStorageBlob -Container $ContainerName -Blob ($JoinName) -Force $JoinName = $JoinName.SubString(8) $ADblobfile = $Computername + ".blob" -f $computer $BlobName = ".\" + $JoinName + $FExt # $BlobName $run = "djoin.exe /provision /domain {0} /MachineOU {1} /Maschine {2} /savefile {3} /wiederverwenden /rootcacerts" -f $Domain, $OU, $JoinName, $BlobName # $run Invoke-Ausdruck $run $StorageBlob = $BlobFolder + "\" + $JoinName + $FExt # $Storage $storageContainer | Set-AzureStorageBlobContent -File $BlobName -Blob $StorageBlob -Properties @{"ContentType" = "text/plain"} 
        $storageContainer | Remove-AzureStorageBlob -Blob ($RequestFolder + "\" + $JoinName) -Force Remove-Item -Path $BlobName } 
} 
Remove-AzureRmAccount -Username $ResUsername
				
			

Verfügbare Ressourcen und Syntax

				
					OfflineDomainJoinViaBlob [String] #ResourceName { [DependsOn = [String[]]] [PsDscRunAsCredential = [PSCredential]] Tenant_ID = [String] Subscription_ID = [String] Username = [String] Password = [String] SAccountname = [String] 
    ContainerName = [String] RequestFolder = [String] BlobFolder = [String] CertFolder = [String] [TimeoutInMinutes = [Int32]] [RenameComputerUsingSerial = [Boolean]] [ComputerNamePrefix = [String]] [RebootAfterDomainJoin = [Boolean]] }
				
			

Saccountname = Name des Speicherkontos

Sind Sie bereit, loszulegen? Laden Sie dieses Modul unten herunter! 🖱️

Download illustration

Offline Domain Join herunterladen

Mit dem Herunterladen akzeptieren Sie die XOAP Datenschutzbestimmungen und werden von uns Produktinformationen erhalten.

Mehr Blogbeiträge wie dieser

EUC Hexagrid 2025 by Dizzion
Nachrichten

Das EUC Hexagrid und unsere Rolle

XOAP ist einer der Hauptakteure im Ökosystem des End-User Computing (EUC). Einen detaillierten technischen Überblick finden Sie im EUC Hexagrid.

de_DE
Nach oben scrollen