PowerShell SQL Update Computer
5) Finally we will have a Update Computer Script to allow a user to
update the services for a server already listed in the system. This
allows updates to the system, for example if IIS was installed;
these running services will need added to the SQL Table for that server.
​
The execution of the Update Computer Script will simply delete
all the service entries for the server and then add the current
running services to the SQL Database table.
#=====================================================
# Get Service Information and Export \ Import CSV
#=====================================================
#Get List of Servers
$UpdateServers = Get-Content C:\temp\Computers.txt
#Query Each Server for a List of Running Services
$UpdateResults=Invoke-Command -ComputerName $UpdateServers -ScriptBlock {Get-Service | Where{$_.Status -eq "Running"}}
#Export & Import Select Results
$UpdateResults | Select PSComputerName,Name, DisplayName | Export-csv C:\temp\UpdateServices.csv -NoTypeInformation
$UpdateImportData=Import-CSV C:\temp\UpdateServices.csv
#Popup to Assure you Want to Add to SQL
$ReturnValue2=[System.Windows.MessageBox]::Show('Would you like to update SQL Table?','Game input','YesNo','Error')
If($ReturnValue2 -eq "Yes"){
#Downloads and Installs SQL Module and Will Overwrite and Older Version Module Installed
Install-Module -Name SqlServer -AllowClobber
#List of Unique Servers
$UpdateServerList=$UpdateImportData.PSComputerName | Select-Object -Unique
#Da Loop
Foreach($UpdateComputer in $UpdateServerList){
# Delete Each Computer in List by Server Name
Invoke-Sqlcmd -ServerInstance Desktop-Main -ErrorAction SilentlyContinue -database ServerManager -Query "Delete From ComputerServices Where PSComputername = '$UpdateComputer'"
}
}
#Loop Through Each Record and Add to SQL Table
Foreach($UpdateComp in $UpdateImportData){
$insertquery2="
INSERT INTO [dbo].[ComputerServices]
([PSComputerName]
,[Name]
,[DisplayName])
VALUES
('$($UpdateComp.PSComputerName)'
,'$($UpdateComp.Name)'
,'$($UpdateComp.Displayname)')"
#Command to Insert to SQL
Invoke-Sqlcmd -ServerInstance Desktop-Main -database ServerManager -Query $insertquery2
}