Windows PowerShell自动化实践指南

在软件开发和系统管理中,自动化是一个提高效率和减少人为错误的重要手段。本文将介绍如何使用Windows PowerShell来实现自动化任务。

在自动化构建生成并进行安装测试的过程中,寻找了一些免费的工具来解决问题,但未能找到合适的。在此之前,对脚本或编程一无所知,因此决定尝试自己动手。最初,尝试了批处理命令和PSTools,但发现它们不够可靠。于是,又开始寻找一个好的脚本工具,最终选择了Windows PowerShell。

Windows PowerShell简介

Windows PowerShell是由微软开发的一种强大的脚本语言,它允许通过用户界面自动化几乎所有的操作。

工具的先决条件

在开始之前,需要确保一些基本的设置已经完成。

首先,需要在虚拟机上安装Windows PowerShell 3.0。可以从下载。

以管理员身份启动PowerShell,并运行以下命令:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted Enable-PSRemoting –SkipNetworkProfileCheck –Force

这些命令分别用于设置执行策略和启用远程管理。

更新可能会花费大量时间,并且可能会影响后续代码的执行,因此需要禁用。

将计算机加入域,并将域用户添加到管理员组。

在注册表中启用自动登录:

New-Item -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name AutoAdminLogon New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name AutoAdminLogon -Value 1 New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name DefaultUsername -Value "domain\user" New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name DefaultPassword -Value "password"

在完成上述设置后,创建一个快照以便于后续的恢复。

工具要求

Windows PowerShell3.0

支持的平台包括Windows 2012 Server, Windows 8, Windows 7 SP1和Windows 2008 R2 Server SP1。

使用代码

工具的工作流程如下:

  • 验证给定位置(共享位置)中是否存在MSI/MSP文件。
  • 将VM Workstation恢复到所需的快照并启动虚拟机。
  • 将远程计算机加入域。
  • 将所需文件复制到远程计算机。
  • 使用msiexec.exe静默安装MSI。
  • 发送带有良好HTML报告的电子邮件。

工具解释

工具分为三个部分:

  • 核心脚本:DailyBuildModule.psm1,包含构建工具所需的核心函数。
  • 触发脚本:Trigger.ps1,用于触发工具,无需更改核心脚本文件。
  • 配置/初始化脚本:InstallConfig.ps1,包含所需的变量。

所有工具所需的函数都写在这个脚本中,以下是简要描述:

  • 脚本的入口点是获取运行工具所需的详细信息(变量)。这通过函数“Set-Configuration”完成,它从脚本“InstallConfig.ps1”中读取变量。
  • “Resume-SnapShot”和“Start-VM”函数将VM Workstation恢复到所需的快照并启动虚拟机。
  • “Join-Domain”函数将计算机加入域。
  • “New-RemotePSSession”创建一个新的PSSession到所需的机器,包含所有所需的凭据,这些凭据从“InstallConfig.ps1”中读取。
  • “Copy-ResourceFiles”函数用于将所需文件从源复制到目标(远程机器文件夹),远程机器上的文件夹使用“New-RemoteFolder”创建。
  • “Get-ProductRegKey”函数用于读取已安装产品的注册表。
  • “New-HTMLReport”函数获取系统信息,可以添加产品信息,“Send-eMail”函数发送电子邮件。
  • 函数“Start-Log”,“Write-Log”,“Write-ErrorLog”和“Complete-Log”创建工具的漂亮日志。

导入“DailyBuildModule.psm1”,并使用cmd-lets触发工具。

这是分配整个变量的脚本。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485