param ( [string]$AssignedUserName, [string]$ClientIP)$ProgressPreference = "SilentlyContinue"# Nastavení názvu zóny DNS$DNSZoneName = "domain.name"# Zjištění správné reverzní zóny$thirdOctet = $ClientIP.Split('.')[2]$ReverseDNSZoneName = if ($thirdOctet -in 0..79) { "$thirdOctet.16.172.in-addr.arpa" } elseif ($thirdOctet -in 80..126) { "$thirdOctet.17.172.in-addr.arpa" } else { "Unknown" }if ($ReverseDNSZoneName -eq "Unknown") { Write-Host "Neplatná IP adresa pro existující reverzní zóny." return}# Získání hostname počítače přiřazeného k uživatelifunction Get-AssignedComputerName { param ([string]$UserName) $user = Get-ADUser -Filter { SamAccountName -eq $UserName } -ErrorAction SilentlyContinue if ($user) { $computer = Get-ADComputer -Filter { ManagedBy -eq $user.DistinguishedName } -ErrorAction SilentlyContinue return $computer.Name } return $null}$assignedComputerName = Get-AssignedComputerName -UserName $AssignedUserNameif (-not $assignedComputerName) { Write-Host "A a PTR záznamy nebudou přidány kvůli nepřítomnosti přiřazeného počítače." return}$hostname = $assignedComputerName -replace "\..*$", ""# Aktualizace A záznamu$existingARecord = Get-DnsServerResourceRecord -ZoneName $DNSZoneName -Name $hostname -RRType "A" -ErrorAction SilentlyContinueif ($existingARecord) { $newRecord = $existingARecord.Clone() $newRecord.RecordData.IPv4Address = [System.Net.IPAddress]::Parse($ClientIP) Set-DnsServerResourceRecord -ZoneName $DNSZoneName -OldInputObject $existingARecord -NewInputObject $newRecord} else { Add-DnsServerResourceRecordA -Name $hostname -ZoneName $DNSZoneName -IPv4Address $ClientIP -AgeRecord}# Aktualizace PTR záznamu$reversedIPParts = $ClientIP.Split('.')[array]::Reverse($reversedIPParts)$reversedIP = $reversedIPParts[0]Add-DnsServerResourceRecordPtr -Name $reversedIP -ZoneName $ReverseDNSZoneName -PtrDomainName "$hostname.$DNSZoneName" -AgeRecord -ErrorAction SilentlyContinue
#!/bin/sh# Získání hodnot z proměnných OpenVPNclient_name=$common_nameclient_ip=$ifconfig_pool_remote_ip# Spuštění PowerShell skriptu na Windows serveru s těmito hodnotami# Upravte názvy parametrů podle vašeho PowerShell skriptussh username@your.dc.hostname "powershell -File C:\\Path\\to\\script.ps1 -AssignedUserName \"$client_name\" -ClientIP \"$client_ip\""