今天一个哥们问我是否用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 如下:
这个文件还可以根据需求做些扩展,大家可以根据需求进行一些自己的定制了!