PowerShell Studio 创建可视化工具- 扫描软件1.0

最近PowerShell的QQ群里面流行用GUI界面装B,为了紧跟潮流,豆子也做了个小程序,这个小程序的可以根据操作系统和关键字,扫描域内的计算机是否安装了对应的软件。

界面如下

这个界面是通过PowerShell Studio 2015做的,主要使用了label,combox, textbox, datagridview,savafilediag, button几个控件。

几个关键点

1. 根据操作系统和关键字查询

function Get-Software
{
[cmdletbinding()]
param (
[parameter(mandatory = $true, position = 1)][string]$software,
[string]$computername = "*",
[string]$OS
)
Write-Verbose "Scanning Computers..."
if ($computername -ne ‘*‘)
{
$a = Get-ADComputer -Filter "operatingsystem -like ‘*$OS*‘ -and name -like ‘*$computername*‘ " -Properties operatingsystem, ipv4address | Where-Object{ $_.ipv4address -ne $null } | select -ExpandProperty name
}
else
{
$a = Get-ADComputer -Filter "operatingsystem -like ‘*$OS*‘ " -Properties operatingsystem, ipv4address | Where-Object{ $_.ipv4address -ne $null } | select -ExpandProperty name
}
$progressbaroverlay1.Maximum=100
$progressbaroverlay1.Value=20
#$MainForm.Refresh()
Write-Verbose "Scanning Software ..."
$s = Invoke-Command -ComputerName $a -erroraction SilentlyContinue -ErrorVariable disconnect{
param ([string]$name)
if ([System.IntPtr]::Size -eq 4)
{
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object{ $_.displayname -like "*$name*" } | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
}
else
{
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object{ $_.displayname -like "*$name*" } | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
}
} -ArgumentList $software
$progressbaroverlay1.Value=80
#$MainForm.Refresh()
#Write-Verbose "Disconnected Computers"
#$disconnect.targetobject
$progressbaroverlay1.Value | Out-String|Write-Host
$s 
}

2. 把上面生成的对象绑定到datagridview 里面 注意 ConvertTo-DataTable 是通过自带的Snippet生成的(拖曳Snippet到自己的脚本块即可)

$table = ConvertTo-DataTable -InputObject $result
Load-DataGridView -DataGridView $datagridview1 -Item $table
$progressbaroverlay1.Visible = $false

3. DataGridView排序

$datagridview1_ColumnHeaderMouseClick = [System.Windows.Forms.DataGridViewCellMouseEventHandler]{
#Event Argument: $_ = [System.Windows.Forms.DataGridViewCellMouseEventArgs]
if ($datagridview1.DataSource -is [System.Data.DataTable])
{
$column = $datagridview1.Columns[$_.ColumnIndex]
$direction = [System.ComponentModel.ListSortDirection]::Ascending
if ($column.HeaderCell.SortGlyphDirection -eq ‘Descending‘)
{
$direction = [System.ComponentModel.ListSortDirection]::Descending
}
$datagridview1.Sort($datagridview1.Columns[$_.ColumnIndex], $direction)
}
}

4. 保存

Function Set-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") |Out-Null
$savefiledialog1.InitialDirectory = $initialDirectory
$savefiledialog1.Filter="All files (*.*) | *.*"
$savefiledialog1.ShowDialog() | Out-Null
$savefiledialog1.FileName
#model:Set-FileName -initialDirectory "D:\Scripts\例子"
}
$button保存_Click = {
#TODO: Place custom script here
$file = set-FileName
Write-Verbose "Print Out"
$datagridview1.Rows |
select -expand DataBoundItem |
export-csv $file -NoType
}

5.进度条

我是手动在对应的地方配置的进度比例。当然也可以根据循环自动的增加进度step。

比如快结束的时候,我设定进度为90%

$progressbaroverlay1.Value = 90

附件里整个project的源代码,感兴趣的可以下载看看。

时间: 2024-08-02 13:39:27

PowerShell Studio 创建可视化工具- 扫描软件1.0的相关文章

Visual Studio给Powershell 程序创建可视化界面

豆子经常写些Powershell的小脚本用来管理Windows服务器.有的时候我希望能够把这些小工具分享给同事,不过有些同事对于Powershell一窍不通,对于脚本控制台界面更是深恶痛绝,如果有些傻瓜化的图像界面便于操作就好了.豆子在网上做了些小研究,写了个简单的测试界面,下面分享一下心得. 网上有一些第三方的付费工具可以直接进行GUI的开发,穷人舍不得花钱,豆子用的是微软的Visual Studio 2015的社区版.这个是版本是免费下载的,下载安装很费时间,大概花了2个小时.这个是下载链接

mysql创建和用户授权,可视化工具Navicat的基本使用,pymysql模块的使用

一.创建mysql,授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限).那么这时就需要我们来简单了解一下: 如何创建用户和密码 给当前的用户授权 移除当前用户的权限 如果你想创建一个新的用户,则需要以下操作: 1.进入到mysql数据库下 mysql> use

VS Visual Studio 魔兽插件开发工具 AddOn Studio for WOW 1 0 含有LUA编辑

AddOn Studio for World of Warcraft 1.0 Release 原文 http://www.codeplex.com/WarcraftAddOnStudio/Wiki/View.aspx 发表于 CodePlex ,由SilverFox翻译,本文版权归属于CWDG.概要 AddOn Studio for World of Warcraft 是一款开源的开发工具,其目标为使用Visual Studio环境开发World of Warcraft插件.这是此项目的第一个版

Android Studio快速创建常用工具类的插件Utils

现如今Android开发,开发工具Android Studio已成为主流,而为Android Studio打造的插件也越来越多,今天为大家介绍一个快速创建常用工具类的插件Utils.其实Android中有关工具类的库有很多,但我们开发中一般只会用到某个库的一个或几个类,所以这时候Utils就有了很大的优势了,它直接创建自己所需要的工具类,而且每个工具类是相互解耦的.下面,我们就来一起看看它的集成及使用. 首先,我们看一下集成方式 下载jar包导入1.下载最新jar包Utils.jar-v1.32

windows本地安装mongoDB并且安装可视化工具studio 3t

1.首先去mongoDB官网下载自己对应的电脑版本: 下载地址: https://www.mongodb.com/download-center#community 2.然后开始安装,在安装的时候左下角可能会出现让你安装可视化工具,请不要选择,因为选择下载它之后, 可能会消耗大量的时间去安装这个mongoDB,然后接下来的步骤就是next->next->next->finish; 3.安装完以后,通过cmd检测一下自己是否安装成功,因为安装完以后肯定要能用,不能用要它干嘛呀. 测试办法:

MongoDB可视化工具 Studio 3T

可视化工具Studio 3T对MongoDB进行数据库的操作 简单的使用步骤介绍 1. 启动MongoDB服务器 2. 连接MongoDB服务器 新建连接: 测试连接是否成功: 3. 操作数据库 原文地址:https://www.cnblogs.com/qiqi715/p/9190795.html

MongoDB的可视化工具(Studio 3T)的安装

通过可视化工具,我们可以不用在命令行操作MongoDB了,可以直接使用类似于SQLyog的软件进行相关操作 1.下载地址(二者择其一即可),可使用迅雷来进行下载,否则下载速度极其慢 2018.4.6版  https://download.studio3t.com/studio-3t/windows/2018.4.6/studio-3t-x64.zip 2019.2.1版  https://download.studio3t.com/studio-3t/windows/2019.2.1/studi

如何在Mac上安装可视化系统优化工具Sensei 1.0.0

Sensei是适用于任何运行macOS 10.15(Catalina)或更高版本的Mac的应用程序.如何在Mac上安装可视化系统优化工具Sensei 1.0.0,我们设计Sensei来帮助您优化,监控和清洁Mac,以使其性能最大化.Sensei提供了一些与硬件和软件相关的功能,例如超级易于使用的应用程序卸载程序,快速的磁盘清理程序,电池和存储驱动器的运行状况信息等等. Sensei for Mac https://www.macdown.com/mac/6473.html Sensei mac版

漫谈可视化Prefuse(五)---一款属于我自己的可视化工具

伴随着前期的基础积累,翻过API,读过一些Demo,总觉得自己已经摸透了Prefuse,小打小闹似乎已经无法满足内心膨胀的自己.还记得儿时看的<武状元苏乞儿>中降龙十八掌最后一张居然是空白页,在千钧一发之际以为自己要嗝屁了,一阵东风让苏乞儿明白了,最后一章要做的原来是——整合.没错,今天我们就来好好谈谈整合! 看懂API不代表你会灵活运用某个类,会用一些类不代表能实现小功能,耍的了小功能不一定会做可视化工具整合,整合之道,奥妙无穷! 前篇回顾:上篇<漫谈可视化Prefuse(四)---被