PowerShell 运维菜鸟系列-02-批量取n台Windows KEY(2018年大年初一奉献)

系列博文:

PowerShell 运维菜鸟系列-01-批量为n台服务器导入PFX证书(2017年除夕奉献)

http://blog.51cto.com/dynamic/2071716

项目场景:

2017年,某客户忽然来电:“我们单位正在查正版,我想知道所有加域的Windows电脑的激活KEY分别是什么?”。

详细需求:

1. 操作系统版本

Windows XP、Windows 7、Windows 10、Windows Server 2003、Windows Server 2008 R2等。

主要操作系统为Windows XP、Windows 7。

2. 获取所有加域的Windows KEY

3. 获取所有加域的Windows 计算机配置详细信息

计算机名、IP、域、CPU、内存、网卡名字、硬盘总容量、硬盘可用容量、内存条数、内存插槽等

4. 完成时间

当天!

就当天!

目的:为了向单位提交报告,最后一天!

5. 我的妈,没事就没事,一有事就是急事,而且赶在1天内全部完成,心里没底,因为没这样干过。

干过:单台取KEY,用工具或者PowerShell脚本。

干过:多台取计算机配置的详细信息,但没有这客户要的这么详细!

本博文实现:通过PowerShell循环读取AD中导出的计算机列表,一一读取Windows KEY,写入到CSV中。

首先感谢

一位朋友“唐天浩”几年前提供的PowerShell脚本“Get-ProductKey.PS1”这次派上用场了。

再次感谢

一位朋友“小秋”几年前写的博文“详解bginfo软件在域中的部署和应用,http://blog.51cto.com/jqq1982/1035791”,这次我不但用上了,而且经过改良了,增加很多项,所有数据写入数据库,而且每1台主机1条记录,保持最新。最后将数据通过Sql报表服务,做成网页版,实时看到通过网页查询最新数据,导出数据到Excel表格里面。

废话这么多,准备进入正题:

博文简单但实用,希望有需要的朋友可以好好看看!

1. 导出AD中所有加域的计算机名

Get-ADComputer -Filter * -Property * | Select-Object Name,IPv4Address,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion, LastLogonDate | Export-CSV AllWindows.csv -NoTypeInformation -Encoding UTF8

2. 准备CSV文件Get-ProductKey-Computername.csv

将步骤1中导出的CSV删除所有,仅保留Name这列,如下图所示:

3. 准备PowerShell脚本1,Get-ProductKey-Windows.ps1

此脚本是由“唐天浩”提供,作者仅只是修改了一下脚本名字。

脚本目的:通过些脚本可以取单台加域的Windows KEY。

脚本内容:见附件!

4. 准备PowerShell脚本2,Get-ProductKey.ps1

脚本目的:通过读取Get-ProductKey-Windows.ps1和Get-ProductKey-Computername.CSV产生带有年-月-日的CSV文件,方便区分获取的是否最新的数据。

$importedusers = Import-CSV .\Get-ProductKey-Computername.csv

foreach ($importeduser in $importedusers)

{

$GetDateNow01 = get-date -uformat "%Y-%m-%d-%H"

$GetDateNow02 =Get-Date -Format 'mmmm'

.\Get-ProductKey-Windows -ComputerName $importeduser.Computername | Select ComputerName,OSDescription,OSVersion,ProductKey | Export-Csv -Append C:\Get-ProductKey-Windows\Get-ProductKey-$GetDateNow01-$GetDateNow02.CSV -Encoding UTF8

}

5. 准备BAT,Get-ProductKey.BAT

脚本目的:通过右键以管理员运行,读取Get-ProductKey.PS1,从而自动产生带有年-月-日的CSV文件。

为了客户作想,为了简单化,所以才做到只有一个BAT文件。

6. 执行

看完前面5步,是不是感觉不好玩呢?

其实很简单,以下是我提供给客户的使用方法:

实现效果:

本文结束!

下文将实现本文前面所提的通过Bginfo获取每台Windows的最新数据,最终以报表的形式展现给IT运维人员。

如果有问题,请联系QQ群:

企业统一沟通平台实战 65235615

本讲师其它视频课程:

套餐:

***************************************************************

《私有云部署实战》-5个云计算产品(含:Mircrosoft,Linux)(套餐)

http://edu.51cto.com/pack/view/id-516.html

***************************************************************

《私有云-部署实战-1-微软-第1代-SSP20》

《私有云-部署实战-2-微软-第2代-SC2012R2》

《私有云-部署实战-3-微软-第3代-WAP》

《私有云-部署实战-4-Linux-Cloudstack 4.3》

《私有云-部署实战-5-Linux-OpenStack-juno》

***************************************************************

***************************************************************

《私有云-基本功能-PK-微软-And-Linux》

***************************************************************

http://edu.51cto.com/course/course_id-4875.html

***************************************************************

***************************************************************

从零开始一步一步学习Lync Server 2013(套餐)

http://edu.51cto.com/pack/view/id-65.html

***************************************************************

包括:

第 01 阶段-规划

第 02 阶段-自动-管理-虚拟机

第 03 阶段-准备-基础-架构

第 04 阶段-部署-基础-环境

第 05 阶段-部署-企业语音

第 06 阶段-部署-呼叫管理功能

***************************************************************

《在多林环境中部署 Lync Server 2013》

http://edu.51cto.com/course/course_id-5896.html

***************************************************************

***************************************************************

《Skype for Business Server 2015-企业内部-部署》

http://edu.51cto.com/course/course_id-4158.html

《Skype for Business Server 2015-企业外部-部署》

http://edu.51cto.com/course/course_id-5890.html

***************************************************************

原文地址:http://blog.51cto.com/dynamic/2071725

时间: 2024-10-02 08:51:33

PowerShell 运维菜鸟系列-02-批量取n台Windows KEY(2018年大年初一奉献)的相关文章

PowerShell 运维菜鸟系列-01-批量为n台服务器导入PFX证书(2017年除夕奉献)

作为PowerShell菜鸟,我用PowerShell已有n年了,不怎么使用,但积累不少实用的PowerShell脚本. 将在后续的工作中一一给大家分享. 项目背景: 在测试中使用一个公网证书,每3个月需要更新一次,重新申请.重新颁发.重新导入.重新分配. 但重新导入的时候,如果十台.二十台导入很繁琐,同时也花时间. 本次测试花了我2天时间,从2018年2月14日星期三到2018年2月15日星期四. 本博文写于2018年02月15日 20:00(2018年除夕之夜).边看春节联欢晚会,边写博文.

PowerShell 运维菜鸟系列-03-设置-所有用户-OWA-时区-语言-跳过-时区设置)

项目问题: 新用户登录邮箱的OWA的时候,总是要去设置时区,如果是测试,无所谓. 如果是生产,你有几千人的企业,这样肯定是不行的. 解决方法: 以下解决方法是一个学生提供,我一直不在意,因为我不管企业的IT,但这对各学生有用,我收集整理在此系列 中. 1. 查用户 2. 通过Get-MailboxRegionalConfiguration查询 Get-MailboxRegionalConfiguration -Identity SFBDemo01 3. 通过Set-MailboxRegional

Hadoop运维记录系列(二十四)

从这篇开始记录一下集群迁移的事情 早先因为机房没地方,就已经开始规划集群搬机房的事情,最近终于开始动手了,我会把这次不停机迁移的过程遇到的主要问题和矛盾以及各种解决方法记录下来. 集群规模说大不大,几百台,总容量30PB左右.Hadoop使用CDH 5.5.1加一些自定义patch的rpm打包编译版本. 总的方案是集群不停机,在两个机房之间架设专线,旧机房decommission,拉到新机房recommission.每天不能下线太多机器,要保证计算. 新机房提前架设90台机器,测试带宽.带宽的测

自动化运维Python系列(一)之基础篇

Python介绍 Python是由创始人吉多·范罗苏姆(Guido van Rossum)在1989年圣诞节假期期间,为了打发时间,构思出来的一个新的脚本解释器.由于Guido在开发Python语言过程中,借鉴了很多ABC语言特性,所有后来包括Guido自己也那么认为,Python语言的前身就是ABC语言. Python是一门面向对象的.动态解释型强定义语言:Python崇尚简洁.优美.清晰,是一门优秀的被广泛使用的语言. 在2015年以前,最流行的Python版本还是2.4,但是由于Pytho

openstack运维实战系列(十三)之glance更改路径引发的"血案"

1. 背景说明 glance在openstack中负责镜像相关的服务,支持将运行的虚拟机转换为快照,镜像和快照都存储在glance中,glance的后端支持多种存储方式,包括本地的文件系统,http,glusterfs,ceph,swift等等. 默认情况下,glance采用本地文件系统的方式存储image,存储的路径为/var/lib/glance/images,随着时间的推移,当镜像越来越多的时候,根目录的空间将会越来越大,所以对于glance的路径来说,需要提前做好规划和准备,如划分一个单

轻松精通数据库管理之道——运维巡检系列

巡检是数据库管理员保证数据库健康的必要维护项,全面的巡检可以及早的发现问题.解决问题.预防问题. 很多数据库维护人员其实对数据库了解的并不深入(常常集中在传统行业),不是专业的DBA,同时又身兼多职(业务.软件.网络.硬件),在每天繁杂的工作中已经身心俱疲.这样的一种状态也必然让系统管理员即使有意精心呵护系统,但由于精力有限,不能深入学习,也找不到合适高效的方法去全面巡检自己的系统. 最终会导致什么样的结果的? 系统中存在大量的隐患,经常充当救火队员.拆弹兵的角色. 那么本系列用简单工具.易懂的

自动化运维(一):Cobbler批量部署操作系统

作者:独笔孤行@TaoCloud 前言 Cobbler是自动化运维的必备工具,可通过网络启动(PXE)方式实现操作系统快速批量安装.Cobbler快速安装操作系统基于kickstart实现,但Cobbler功能更完善,管理更加简便.高效.Cobbler通过将安装系统所涉及的服务(tftp.dhcp.kickstart)集中管理,提供全自动化批量快速安装系统的网络环境,以实现大规模机房设备的统一管理. 一.简介 Cobbler支持CLI与WEB两种管理方式.要求所有被安装系统的服务器与Cobble

自动化运维Python系列之ForeignKey、relationship联表查询

一对多和多对多 数据库表结构设计是程序项目开发前的重要环节,后期数据库操作都是围绕着这个已经设计好的表结构进行,如果表结构设计有问题,整个程序项目就有存在需要整个推翻重构的风险... 数据库表结构除了简单的单表操作以外,还有一对多.多对多等. 一对多 基于SQLAlchemy我们可以先创建如下结构的2张表,然后来看看具体怎样通过外键ForeignKey或者relationship联表操作 创建表 from sqlalchemy.ext.declarative import declarative

Hadoop运维记录系列(十六)

应了一个国内某电信运营商集群恢复的事,集群故障很严重,做了HA的集群Namenode挂掉了.具体过程不详,但是从受害者的只言片语中大概回顾一下历史的片段. Active的namenode元数据硬盘满了,满了,满了...上来第一句话就如雷贯耳. 运维人员发现硬盘满了以后执行了对active namenode的元数据日志执行了 echo "" > edit_xxxx-xxxx...第二句话如五雷轰顶. 然后发现standby没法切换,切换也没用,因为standby的元数据和日志是5月