Ich erstelle ein Windows-Formular über Powershell, wo Benutzer nach den Computern suchen können, die für eine Person registriert sind, oder nach den registrierten Computern einer Person suchen. Der registrierte Benutzer wird im Feld description
, die Computernamen im Feld name
gespeichert. $SearchIn
hält den Wert zu suchen, $field
das Feld in die Suche angibt.Verzeichnis Suche zu Array zum Auffüllen von Windows Form DataGrid
ich die Ergebnisse erhält, kann ich über die Konsole will, aber ich bin versucht, die Ergebnisse in eine Datagrid-Ansicht auf einem Windows-Formular zu drücken. Das Datagrid im folgenden Skript heißt $dataGrid1
. Was ich unten habe, ist ein Versuch, die Verzeichnisdienstsuche auf ein Array zu schieben und dann die Datenressource-Datenquelle auf ein Array zu setzen. Ich dachte, weil das $objectComputer
ein Objekt und nicht ein Array ist, musste ich ein Array mit New-Object System.Collections.ArrayList
erstellen und es mit der addrange
-Methode auf das $objComputer
Objekt setzen ausfüllen.
Letztendlich was ich bekomme, egal was ich versuche, ist eine leere Datagrid-Ansicht. Kann mir jemand in die richtige Richtung zeigen?
Function Get-Info
{
param($SearchIn,$Field)
if ($field -eq "Name"){
$filter="name=*$SearchIn*"
}
else
{
$filter="description=*$SearchIn*"
}
$strCategory = “computer”
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = $filter
$colResults = $objSearcher.FindAll()
[email protected]()
foreach ($objResult in $colResults)
{
$objComputer+=($objResult.Properties.item("Name"), $objResult.Properties.item("Description"))}
$array=New-Object System.Collections.ArrayList($null)
$array=.addrange($objComputer)
$dataGrid1.DataSource = $array
$fComputerSearch.refresh()
}#End Get-Info