0

このコードの結果に問題があります。何らかの理由で、スクリプトのDistriguished Nameの部分は、アレイ内のサーバーのDistinguished Nameではなく、ワークステーションの値を示しています...

    Function WMILookup {
    foreach ($StrComputer in $colComputers){
    $GenItems1 = gwmi Win32_OperatingSystem -Comp $StrComputer
    $Printers = gwmi Win32_Printer -computername $StrComputer


    # Populate General Sheet(1) with information
foreach ($objItem in $GenItems1){
    $Sheet1.Cells.Item($intRow, 1) = $StrComputer
    $Sheet1.Cells.Item($intRow, 2) = $objItem.Caption
    $Sheet1.Cells.Item($intRow, 3) = $objItem.CSDVersion
    }

foreach ($objItem in $Printers){
    $Sheet1.Cells.Item($intRow, 4) = $objItem.Shared
    }


$de = New-Object System.DirectoryServices.DirectoryEntry
$ds = New-Object System.DirectoryServices.DirectorySearcher
$ds.SearchRoot = $de
    $ds.Filter = "(&(objectCategory=computer)(objectClass=computer)  (samAccountName=$($env:Computername)$))"
$ds.SearchScope = "SubTree"
$r = $ds.FindOne()
$r.Path
$Sheet1.Cells.Item($intRow, 5) = $r.Path

    $intRow = $intRow + 1}
    }
4

1 に答える 1

0

それはあなたが彼に尋ねるものをあなたに与えます:

$ds.Filter = "(&(objectCategory=computer)(objectClass=computer)  (samAccountName=$($env:Computername)$))"

$env:Computername関数が実行されるコンピューター名です。

多分あなたはこれが欲しい:

$ds.Filter = "(&(objectCategory=computer)(objectClass=computer)  (samAccountName=$($StrComputer)$))"
于 2012-11-22T06:25:04.037 に答える