我這里有這部分代碼,過去曾在多個 AD 環境中作業,但是在新的 AD 環境中進行測驗后,我沒有得到 CSV 的輸出或拋出任何錯誤。CSV 檔案的大小始終為零。
if (![string]::IsNullOrEmpty($searchbase))
{
$ADComputers = get-adcomputer -searchBase $searchbase -filter * -properties * -ResultPageSize $resultpagesize
}
else
{
$ADComputers=Get-ADComputer -Filter * -Properties * -ResultPageSize $resultpagesize
}
$data = @()
foreach ($computer in $ADComputers) {
$computer.member| foreach-object {$members = $_}
$computer.memberof | foreach-object {$memberof = $_}
$memstr = ($members -join ";")
$memstr2 = ($memberof -join ";")
$ADcomp = Get-ADComputer $computer -properties logonCount, ManagedBy | select-object logonCount, ManagedBy
$row = New-Object -TypeName psobject -Property @{
PrincipalID = $script:ctr;
logonCount=$ADcomp.logonCount;
ManagedBy=$ADcomp.ManagedBy;
}
$data = $row
$script:ctr
}
$data | Export-Csv "ADComputers.csv" -NoTypeInformation
我不確定從哪里開始,因為我已經測驗了多個不同的選項,所以任何幫助將不勝感激!
uj5u.com熱心網友回復:
沒有輸出的唯一原因是$ADComputers沒有元素。這可能與變數$searchbase中不存在或根本沒有計算機帳戶的值有關。
但這里有一些一般性建議:
你做:
if (![string]::IsNullOrEmpty($searchbase))
你也可以這樣做:
If ($searchbase)
原則上,如果你有不同的場景要覆寫,那么引數可能會改變,看看splatting。
然后查詢具有所有可用屬性的所有計算機,但稍后在回圈中再次查詢特定計算機,這是不必要的。此外,您應該避免使用 向陣列添加元素 =,這會導致每次都重建陣列,這很慢。
此外$computer.memberof,已經是一個包含資訊的陣列,但是您將其通過管道傳輸到 foreach 并構建一個包含相同資訊的新陣列,以便稍后將其加入字串。
如果這不是函式的一部分,我不知道您為什么將變數 $ctr 的范圍從本地提升到腳本認為這沒有必要。
把這一切放在一起你可以做:
#Define HashTable for splatting
$parametersHt = @{
filer='*'
properties='*'
resultsetpagesize=$resultpagesize
}
#If searchbase is specified add parameter to splatting HashTable
If ($searchbase){
$parametersHt.add('Searchbase',$searchbase)
}
#Get computers
$ADComputers = get-adcomputer @parametersHt
#Set Counter
$ctr = 0
$data = @(
foreach ($computer in $ADComputers){
$ctr
[PSCustomObject]@{
PrincipalId = $ctr #Really the counter here - not $computer.samaccountname?
logonCount=$computer.logonCount
manageddBy=$computer.ManagedBy
memberof=($computer.memberof -join ";") #added this, but in your code sample you don't return this value, if not needed remove. btw. a computer can be memberof a group but it can't have members
}
}
)
$data | Export-Csv -path ".\ADComputers.csv" -NoTypeInformation
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524869.html
上一篇:自從用了灰度發布,睡覺真香!
下一篇:RabbitMQ
