-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathGetSoftware.ps1
58 lines (54 loc) · 3.65 KB
/
GetSoftware.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
$servers = @()
$servers = Get-QADComputer -SizeLimit 0 -OSName 'Windows Server*' | where {($_.Name -like "AL*")} | sort name
FOREACH ($server in $servers)
{
$report=@()
$row=@()
#$row = "" | Select-Object Software
$computername=$server.dNSHostName
$servershort = $server.Name
$Branch='LocalMachine'
$SubBranch="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
$continue = $true
try
{
$registry=[microsoft.win32.registrykey]::OpenRemoteBaseKey('Localmachine',$computername)
$registrykey=$registry.OpenSubKey($Subbranch)
$SubKeys=$registrykey.GetSubKeyNames()
Foreach ($key in $subkeys)
{
$exactkey=$key
$NewSubKey=$SubBranch+"\\"+$exactkey
$ReadUninstall=$registry.OpenSubKey($NewSubKey)
$Value=$ReadUninstall.GetValue("DisplayName")
# Write-Host $value
$row += $Value
}
$Branch='LocalMachine'
$SubBranch="SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
$registry=[microsoft.win32.registrykey]::OpenRemoteBaseKey('Localmachine',$computername)
$registrykey=$registry.OpenSubKey($Subbranch)
$SubKeys=$registrykey.GetSubKeyNames()
Foreach ($key in $subkeys)
{
$exactkey=$key
$NewSubKey=$SubBranch+"\\"+$exactkey
$ReadUninstall=$registry.OpenSubKey($NewSubKey)
$Value=$ReadUninstall.GetValue("DisplayName")
$row += $Value
}
}
catch
{
$continue = $false
}
if ($continue)
{
$sort = $row | sort
$sort | Out-File "c:\Users\stiles.john\Desktop\Tools\Server Info\Software\$servershort.csv"
}
else
{
$servershort | out-file "c:\Users\stiles.john\Desktop\Tools\Server Info\Software\$servershort IS NOT ACCESSIBLE"
}
}