Good morning everyone and please excuse the interruption.
I found this particular script online that when executed can tell me the uptime of a computer (from the looks of it, it only works on the computer it is run on)
Is there a way to modify the script so it can do the following:
- prompt me to enter a computer name
- display the uptime of said computer entered
This script says I would need to insert a line with all the computer names i want it to look for, which to me, is too much info.
############################################################################# # Get-Uptime.ps1 # This script will report uptime of given computer since last reboot. # # Pre-Requisites: Requires PowerShell 2.0 and WMI access to target computers (admin access). # # Usage syntax: # For local computer where script is being run: .\Get-Uptime.ps1. # For list of remote computers: .\Get-Uptime.ps1 -ComputerList "c:\temp\computerlist.txt" # # Usage Examples: # # .\Get-Uptime.ps1 -Computer ComputerName # .\Get-Uptime.ps1 -ComputerList "c:\temp\computerlist.txt" | Export-Csv uptime-report.csv -NoTypeInformation # # Last Modified: 3/20/2012 # # Created by # Bhargav Shukla # http://blogs.technet.com/bshukla # http://www.bhargavs.com # # DISCLAIMER # ========== # THIS CODE IS MADE AVAILABLE AS IS, WITHOUT WARRANTY OF ANY KIND. THE ENTIRE # RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS CODE REMAINS WITH THE USER. ############################################################################# #Requires -Version 2.0 param ( [Parameter(Position=0,ValuefromPipeline=$true)][string][alias("cn")]$computer, [Parameter(Position=1,ValuefromPipeline=$false)][string]$computerlist ) If (-not ($computer -or $computerlist)) { $computers = $Env:COMPUTERNAME } If ($computer) { $computers = $computer } If ($computerlist) { $computers = Get-Content $computerlist } foreach ($computer in $computers) { $Computerobj = "" | select ComputerName, Uptime, LastReboot $wmi = Get-WmiObject -ComputerName $computer -Query "SELECT LastBootUpTime FROM Win32_OperatingSystem" $now = Get-Date $boottime = $wmi.ConvertToDateTime($wmi.LastBootUpTime) $uptime = $now - $boottime $d =$uptime.days $h =$uptime.hours $m =$uptime.Minutes $s = $uptime.Seconds $Computerobj.ComputerName = $computer $Computerobj.Uptime = "$d Days $h Hours $m Min $s Sec" $Computerobj.LastReboot = $boottime $Computerobj }