Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

IP Adresse in Adressblöcke unterteilen

$
0
0

Mein bisheriger Code sieht so aus:

$sites = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites | Where-Object {($_.Name -ne '*******') -and ($_.Name -ne '*******')}
$sitesubnets = @()
ForEach ($site in $sites)
{
	ForEach ($subnet in $site.subnets)
	{
	    $temp = New-Object PSCustomObject -Property @{
	        'Subnetz' = $subnet
	        'Domain' = (($site.Name).Substring(0,6) + 'S01').ToUpper()
        }
		$sitesubnets += $temp
	}
}
$sitesubnets = $sitesubnets | Sort-Object  -Property 'Domain' -Unique
$filename = Read-Host -Prompt 'Dateiname!'
$servercsv = Import-Csv "$filename.csv"
$array = @()
ForEach($s in $servercsv)
{
    $ipdata = Test-Connection $s.Name -Count 1 | Select-Object -Property Address,IPV4Address
    $eintrag = $sitesubnets | Where-Object {$_.Domain -eq $ipdata.Address}
	If ($eintrag.Subnetz -contains "/24")
		{
		[Bool]$check = 0
		}
	Else
		{
		[Bool]$check = 1
		}
	If($check)
	{

	}
	If ($eintrag)
	{
        $temp = New-Object PSCustomObject -Property @{
            'SubnetzAD' = $eintrag.Subnetz
	        'DomainAD' = $eintrag.Domain
            'DomainIP' = $ipdata.Address
	        'IPAdresse' = $ipdata.IPV4Address
			'Check' = $check
			'Status' = ""
        }
	    $array += $temp
    }
}

Die Sternchen stehen für einen bestimmten Namen der allerdings nicht relevant ist.

Mein Problem ist jetzt, dass ich nicht weiß wie ich die ersten drei Adressblöcke der Subnetz IP und der normalen IP vergleichen kann. Die Zeilen die mir jetzt noch fehlen sollen in den If($check) Block.

Ich habe versucht das ganze so zu lösen:

$status = $eintrag.Subnetz.Split(".") | -eq $ipdata.IPV4Adresse


Allerdings bekomme ich dann so eine Fehlermeldung:

Fehler beim Aufrufen der Methode, da [System.DirectoryServices.ActiveDirectory.ActiveDirectorySubnet] keine Methode mit
 dem Namen "Split" enthält.
Bei E:\test\new 3.ps1:33 Zeichen:35
+         $status = $eintrag.Subnetz.Split <<<< (".") | -eq $ipdata.IPV4Adresse+ CategoryInfo          : InvalidOperation: (Split:String) [], RuntimeException+ FullyQualifiedErrorId : MethodNotFound

Da ich noch nicht sehr erfahren im Umgang mit PowerShell bin, bin ich auch für andere Tipps offen.


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>