我尝试了各种各样的迭代并得到了一系列错误。我正试图从计算机列表中获取已安装驱动程序的列表。我在PowerShell中尝试过的方法都没有将信息传输到csv中。这是脚本的当前迭代。
#Load Active Directory
Import-Module activedirectory
#Load list of computers
$results = @()
$Computer = Get-Content -path 'C:\ScriptResources\computers.txt'
#Check each computer in the list
foreach($ComputerName in $Computer)
{
$results += Get-ADComputer -Filter " Name -Like '*$ComputerName*' " | Get-PrinterDriver; Start-Sleep -milliseconds 500
}
#Export to CSV file
$results | export-csv 'C:\ScriptResults\InstalledPrinters.csv'
我还使用了Get-Printer命令并得到了以下错误。
Get-Printer : No MSFT_Printer objects found with property 'Name' equal to 'Redacted'. Verify the value of the
property and retry.
根据我提供的$ Computer文件,我会得到不同的错误。我还得到RPC服务器不可用和错误后台处理程序服务未运行。我有域范围的权限,我检查了打印后台处理程序服务,它正在运行。
我认为这很奇怪的原因是我使用的.bat工具从单个主机获取打印机信息而且我没有遇到任何问题。我试图把它放在PowerShell中的原因是因为1)我想做整个域和2)PowerShell以更有用的方式格式化它的输出。
wmic /node:%ComputerIP% path win32_printer get deviceid, drivername, portname
此外,我还在脚本的$ results函数中尝试了以下内容
$results += Get-WmiObject -class Win32_printer -ComputerName name, systemName, shareName
这没有给出错误。它所做的是,对于计算机列表中的每台计算机,它检查了我运行脚本的计算机的打印机和每行输出的打印机安装在我的计算机上。
我很茫然,任何帮助都会受到赞赏。谢谢!
答案 0 :(得分:0)
就这样结束了。维维克的答案最终得到了解决。
$results += Get-WmiObject -class Win32_printer -ComputerName $Computer | Select name, systemName, shareName
我遇到的RPC问题是计算机列表由于某种原因全部关闭(远程站点+不同的时区+在第二班期间进行测试)。通常情况下,一切都会继续。所以这只是一个异常现象。
感谢您的帮助!