PowerShell Script to execute same command and get some information from multiple servers:
PS Script to run remotely on multiple servers:
Ways to execute the script and capture output in text\csv file :
PS Script to run remotely on multiple servers:
#path of the text file with the list of all the servers
$path = C:\PSScripts\serverslist.txt
$computers = Get-Content -Path $path
$software = "SQL Server*";
$installed = (Get-Service | Where-Object {$_.DisplayName -like $software}) -ne $null
#Another way is to use like below
#$computers = @("Server1",”Server2”,Server3)
#Can also ask\save for credential who have access on all servers before execution
#$Cred = Get-Credential # Add Credentials for all Servers (Domain or non-Domain)
# Run Command
foreach($computer in $computers){
Write-Host "Running process on $computer" -ForegroundColor green
if (Test-Connection -ComputerName $computer -Count 1 -ErrorAction SilentlyContinue)
{
#With $cred option
#Invoke-Command -ComputerName $computer -ScriptBlock `
#{Get-WmiObject -Class Win32_Volume -EA silentlyContinue | `
#Select-Object $env:computername,Name,Label,BlockSize | Format-Table -AutoSize} -Credential $cred
#Without $cred option
Invoke-Command -ComputerName $computer -ScriptBlock `
{Get-WmiObject -Class Win32_Volume -EA silentlyContinue | `
Select-Object $env:computername,Name,Label,BlockSize | Format-Table -AutoSize}
#additional check on running particular script on SQL Server
If(-Not $installed) { Write-Host "'$software' is not installed." }
else { Invoke-Sqlcmd -InputFile `
"C:\PSScripts\TempDBValidation.sql" -ServerInstance $computer}
}
else{ Write-Host "$computer Server is not accessiable" -ForegroundColor red }
#For loop end
}
Save the script as ".ps1" extension.Ways to execute the script and capture output in text\csv file :
1. Open PowerShell as admin mode 2. Go to path where ".ps1" file is saved. 3. Two ways to execute- Simple way to execute & output on PowerShell console: .\Remote_PS-Script.ps1 Capture Output in csv: .\Remote_PS-Script.ps1 | ` Out-File -FilePath C:\output\PS_Script-$(Get-Date -format yyyyMMdd_hhmmsstt).csv -Append
No comments:
Post a Comment