需要一点帮助来完成我的第一个 Powershell scriptlet...
我想为我的 AD 域(大约 3,000 个)上的所有 XP PC 创建一个 CSV 文件,并记录所有连接的打印机。最终,我想知道我们有多少台本地连接的打印机。
我的“Googled”脚本将愉快地使用 WMI 扫描所有 PC 的打印机并将结果输出到屏幕上。但是,我似乎无法重构代码以将结果输出到 CSV(通过Export-CSV
),而不仅仅是继续覆盖文件。我希望它附加到文件中。
# Get the list of computer names from AD
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.CacheResults = -1
$objSearcher.PageSize = 5000
$objSearcher.SizeLimit = 5000
$objSearcher.Filter = ("(&(operatingSystemVersion=5*)(objectCategory=$strCategory)(operatingSystem=Windows XP*))")
$wmiPrinterClass = "win32_printer"
$colProplist = "name"
foreach ($i in $colPropList)
{$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
$colResults.count
# for each computer, use WMI to scan for printers
foreach ($objComputer in $colResults)
{
$machine = $objComputer.Properties.name
$machine
get-WmiObject -class $wmiPrinterClass -computername $machine | `
ft systemName, name, shareName, Local -auto | `
Export-CSV "c:\printers.csv" #<<< HOW DO I STOP THIS FROM OVERWRITING???
}
该脚本将扫描所有 XP PC 的 AD,然后在Win32_Printer
. 如何将所有这些信息放入一个 CSV 文件中?
您希望 ExportCSV 出现“-noClobber”选项。
http://ss64.com/ps/export-csv.html
我还做了一个可能有效的替代解决方案: