mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-21 07:10:15 -05:00
58 lines
1.8 KiB
PowerShell
58 lines
1.8 KiB
PowerShell
function Get-IcingaHostname()
|
|
{
|
|
param(
|
|
[string]$Hostname,
|
|
[bool]$AutoUseFQDN = $FALSE,
|
|
[bool]$AutoUseHostname = $FALSE,
|
|
[bool]$UpperCase = $FALSE,
|
|
[bool]$LowerCase = $FALSE,
|
|
[switch]$ReadConstants = $FALSE
|
|
);
|
|
|
|
[string]$UseHostname = '';
|
|
|
|
if ($ReadConstants) {
|
|
if (Test-Path -Path (Join-Path -Path $Env:ProgramData -ChildPath 'icinga2\etc\icinga2\constants.conf')) {
|
|
# Read the constants conf
|
|
$FileContent = Get-Content -Path (Join-Path -Path $Env:ProgramData -ChildPath 'icinga2\etc\icinga2\constants.conf') -Encoding 'UTF8';
|
|
|
|
foreach ($line in $FileContent) {
|
|
if ($line.Contains('NodeName') -eq $FALSE) {
|
|
continue;
|
|
}
|
|
|
|
if ($line.Contains('const') -eq $FALSE -Or $line.Contains('=') -eq $FALSE -Or $line.Contains('"') -eq $FALSE) {
|
|
continue;
|
|
}
|
|
|
|
[int]$ValueIndex = $line.IndexOf('"') + 1;
|
|
|
|
$UseHostname = $line.SubString($ValueIndex, $line.Length - $ValueIndex);
|
|
|
|
if ($UseHostname[-1] -eq '"') {
|
|
$UseHostname = $UseHostname.Substring(0, $UseHostname.Length - 1);
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
return $UseHostname
|
|
}
|
|
}
|
|
|
|
if ([string]::IsNullOrEmpty($Hostname) -eq $FALSE) {
|
|
$UseHostname = $Hostname;
|
|
} elseif ($AutoUseFQDN) {
|
|
$UseHostname = [System.Net.Dns]::GetHostEntry("localhost").HostName;
|
|
} else {
|
|
$UseHostname = [System.Net.Dns]::GetHostName();
|
|
}
|
|
|
|
if ($UpperCase) {
|
|
$UseHostname = $UseHostname.ToUpper();
|
|
} elseif ($LowerCase) {
|
|
$UseHostname = $UseHostname.ToLower();
|
|
}
|
|
|
|
return $UseHostname;
|
|
}
|