PS Script to prompt for a computer name to obtain up time information
good morning , please excuse interruption.
i found particular script online when executed can tell me uptime of computer (from looks of it, works on computer run on)
is there way modify script can following:
- prompt me enter computer name
- display uptime of said computer entered
this script says need insert line computer names want for, me, info.
############################################################################# # get-uptime.ps1 # script report uptime of given computer since last reboot. # # pre-requisites: requires powershell 2.0 , wmi access target computers (admin access). # # usage syntax: # local computer script being run: .\get-uptime.ps1. # 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 # bhargav shukla # http://blogs.technet.com/bshukla # http://www.bhargavs.com # # disclaimer # ========== # code made available is, without warranty of kind. entire # risk of use or results use of code remains 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 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 }
i think understand instead of parameter reading computer list should remove , use calculated properties param?
no, calculated property output. here's quick example:
$computerlist = read-host 'enter computer name' foreach ($computer in $computerlist) { get-wmiobject win32_operatingsystem -computername $computer | select @{n='computername';e={$computer}}, @{n='lastbootuptime';e={[system.management.managementdatetimeconverter]::todatetime($_.lastbootuptime)}}, @{n='uptime';e={(get-date) - ([system.management.managementdatetimeconverter]::todatetime($_.lastbootuptime))}} } don't retire technet! - (don't give yet - 13,225+ strong , growing)
Windows Server > Windows PowerShell
Comments
Post a Comment