今天一个哥们问我是否用Powershell 实现。我好久没有写脚本,脚本的协作和调试还是费了一些时间,兴许调试了下。运作没有问题,大家能够參考以下的脚本来丰富您企业须要做的一些事情,脚本代码例如以下:
#requires -version 2
#脚本撰写人:徐鹏 假设须要脚本的话,请发邮件到10853913@qq.com,为我写脚本创建一些机会。提升更快。 param($templogpath="c:\"#定义生成的文件的默认路径
)Import-Module ac*#导入当中的AD 模块
$computeraccount=(Get-ADComputer -Filter * -resultsetsize 11000).name#获取当前AD 计算机中的全部机器NETBIOS名称
$allcomputername=@()#定义全部计算机的初始空值
foreach ($currentcomputename in $computeraccount)#依据计算机对象进行轮询
{ $currentname= (Get-ADComputer -Identity $currentcomputename).name#获取机器的NETBIOS名称
$currentclass= (Get-WmiObject -class Win32_BIOS -computername $currentcomputename -namespace "root\cimv2").SerialNumber#通过获取WMI中的bios 类获取到机器对应的序列号,存放在BIOS的SN
$computerproperty=New-Object psobject#定义一个新PS 对象
$computerproperty| Add-Member -MemberType NoteProperty -Name "计算机名称" -Value $currentname# 为新的对象定义计算机名称属性
$computerproperty| Add-Member -MemberType NoteProperty -Name "序列号" -Value $currentclass #为计算机对象定义序列号属性 $allcomputername=$allcomputername+$computerproperty#依据对象的轮询将当前对象的属性增加到哈希数组中
} $tmplogfile=$templogpath+"\"+$(get-date -Format "yyyy-MM-dd")+".csv"#定义输出文件的路径和文件格式
$allcomputername| Export-Csv -Encoding default -NoTypeInformation -Path $tmplogfile#将数据导出为csv 文件,我们直接通过CSV 文件来获取希望拿到的信息
将以上文件保存为ps1,然后我们执行后。
生成的文本文件的CSV 例如以下:
这个文件还能够依据需求做些扩展,大家能够依据需求进行一些自己的定制了!