Archiv der Kategorie: Active Directory

DHCP Reservierungen exportieren und importieren

Die Reservierung aller Scopes exportieren:

$dhcpserver = "QuellServer.QuellDomain.com"
Get-DhcpServerv4Scope -ComputerName $dhcpserver | Get-DhcpServerv4Reservation -ComputerName $dhcpserver Export-Csv "pathtofile\ScopeReservation.csv" -Encoding UTF8 -Force -NoTypeInformation -Delimiter ";"

Als nächstes importieren wir die Reservierungen (ACHTUNG!: nicht mit Import, sondern mit Add)

$dhcpserver = "ZielServer.ZielDomain.com"
$scopes = Import-Csv -Path "pathtofile\ScopeReservation.csv" -Delimiter ";"
foreach ($scope in $scopes)
{
    $name = $scope.name
    $description = $scope.description
Write-Output "Creating scope  $name"

Add-DhcpServerv4Reservation -ComputerName $dhcpserver -ScopeId $scope.ScopeId -IPAddress $scope.IPAddress -Description $scope.description -Name $scope.name -ClientId $scope.clientid -Type $scope.Type #-WhatIf
}

DHCP Scope Options mit Powershell exportieren und importieren

Alle Scope Optionen exportieren:
Get-DhcpServerv4Scope -ComputerName "QuellServer.QuellDomain.com" | Export "pathtofile\exportScopeOptions.csv" -Delimiter ";"

Da in dieser Tabelle alle Scope Optionen wie Rounter, DNS Server in einer Spalte stehen, habe ich mit einem Excel Filter diese in separate Spalten aufgetrennt und jeweils nach dem ScopeOptionNamen benannt. Zum Beispiel Router;DNSServer usw. .

Import der Scope Optionen:

$dhcpserver = "ZielServer.ZielDomain.com"
$scopes = Import-Csv -Path "pathtofile\exportScopeOptions.csv" -Delimiter ";"
foreach ($scope in $scopes)
{
    $name = $scope.name
    $description = $scope.description
Write-Output "Creating scope  $name"
Set-DhcpServerv4OptionValue -Router $scope.router -DNSServer $scope.DNSServer -ScopeId $scope.scopeid -ComputerName $dhcpserver
}

Wie die DHCP Reservierungen exportiert und importiert werden, zeige ich in einem neuen Blogbeitrag.

DHCP Scopes zusammen führen

Aufgrund eines Firmenkaufs, mussten die DHCP Scopes eines Windows DHCP Server auf einen bereits bestehenden transferiert werden. Da die Standard Backup/Import Funktion die bestehende Konfiguration überschreiben würde, habe ich hierzu PowerShell genutzt:

Export der bestehenden Konfiguration:

$dhcpserver = "QuellServer.QuellDomain.com"
Get-DhcpServerv4Scope -ComputerName $dhcpserver | Export-Csv "pathtofile\dhcpscopes.csv" -Encoding UTF8 -Force -NoTypeInformation

Import der Konfiguraton auf den Quellserver:

$dhcpserver = "ZielServer@ZielDomain.com"
$scopes = Import-Csv -Path "pathtofile\dhcpscopes.csv" -Delimiter ";"
foreach ($scope in $scopes)
{
    $name = $scope.name
    $description = $scope.description
Write-Output "Creating scope  $name"
Add-DhcpServerv4Scope -ComputerName $dhcpserver -Name "$name" -Description "$description" -StartRange $scope.startrange -EndRange $scope.endrange -SubnetMask $scope.subnetmask -State Active
}

Wie die ScopeOptions und Reservierungen übernommen werden zeige ich in einem weiteren Beitrag.

Active Direcrory Report Wann wurde zuletzt das Passwort geändert?

Mit Hilfe diesen PowerShell Befehls kann herausgefunden werden, wann die User zuletzt Ihr Passwort geändert haben und ob die Option „Passwort läuft nie ab“ gesetzt wurde:

get-aduser -filter * -properties Name,passwordlastset,passwordneverexpires | Select-Object Name,passwordlastset,passwordneverexpires | Export-Csv C:\Pfad\Last_PW_Set.csv -NoTypeInformation

Bitlocker Key Upload to Active Directory (with TPM)

 $drive = Get-BitLockerVolume | ?{$_.KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘}} | select -f 1

$key = $drive | select -exp KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘} | select -f 1

Backup-BitLockerKeyProtector $drive.MountPoint $key.KeyProtectorId

Write-Host „Backing up drive $drive, key $($key.KeyProtectorId), password $($key.RecoveryPassword)“ 

Bitlocker Key manuell/nachträglich im AD abspeichern

 

Falls ein Laufwerk vor dem DomainJoin und konfigurieren der GPO mit Bitlocker verschlüsselt wurde, kann mit Hilfe diesen Skripts der RecoveryKey etc. nachträglich in das Active Directory abgespeichert werden.

In diesem Skript wird zunächst abgefragt welche Volumes verschlüsselt sind und anschließend die nötigen Informationen im AD hinterlegt.

$BitlockerVolumes = Get-BitLockerVolume

$BitlockerVolumes |

ForEach-Object {

$MountPoint = $_.MountPoint

$RecoveryKey = [string]($_.KeyProtector).RecoveryPassword

if ($RecoveryKey.Length -gt 5) {

$BLV = Get-BitLockerVolume -MountPoint $MountPoint

Backup-BitLockerKeyProtector -MountPoint $MountPoint -KeyProtectorId $BLV.KeyProtector[1].KeyProtectorId

}

Da ich teilweise auf Probleme gestossen bin, sobald mit TPM verschlüsselt wurde, habe ich hierzu ein neues Skript erstellt:https://blog.nd-consulting.de/wp-admin/post.php?post=410&action=edit