Re: Script Need to check disk space on remote servers



forgive me. i was an idiot.
i see machine name after the pipe
drew

"drew" wrote:

hi
this thread was a real eye opener.

i have three questions;
Is it possible to include the remote computer name in the query or its
result ?
Is it possible to keept the process running by skipping over remote computer
name in server.txt for which i do not know or do not have adequate
credentials?
Is it possible to get SQL Server database and log information (like
sp_helpfile for example) from wmi, or must i write SQL Server Alerts and push
them into the Error Log, then retrieve them from there?

I just found out i have 85 SQL Servers to mind, and this looks like a great
leg up!
thanks
drew


"Jeffery Hicks [MVP]" wrote:

You might find this easier using WMIC (PowerShell would be even easier).

A command like this will check one computer, myComputer and create a simple
HTML table with the name, size and freespace.
C:\Scripts>wmic /node:MyComputer /append:"c:\test\report.html" logicaldisk
where drivetype=3 get Name,Size,FreeSpace /format:htable.xsl > NULL

You can easily check a list of computers like this:
C:\Scripts>wmic /node:@servers.txt /append:"c:\test\report.html" logicaldisk
where drivetype=3 get Name,Size,FreeSpace /format:htable.xsl > NULL

This is reporting all fixed logical drives. I thought I'd be able to modify
the query to also check freespace, but that part isn't working. I'll have
to see why.

Here's how easy it is to create the html report in PowerShell:
PS C:\test> get-wmiobject -computer (get-content servers.txt) -query "Select
* from win32_logicaldisk where freespace <=
32212254720 and drivetype=3" | Select SystemName,DeviceID,Size,FreeSpace |
convertto-html | out-file c:\test\report.html

It may look complicated but it is one line that goes through a list of
servers (servers.txt) and uses WMI to find all logical disks with less then
30GB of free space. Any matches are sent to the HTML report. PowerShell
only needs to be installed where you run the script. Not necessarily on the
remote systems. Sending an email through PowerShell is pretty simple as
well.


--
Jeffery Hicks
Microsoft PowerShell MVP
http://www.scriptinganswers.com
http://www.powershellcommunity.org

Now Available: WSH and VBScript Core: TFM
Coming Soon: Windows PowerShell: TFM 2nd Ed.
"screwuphead" <screwuphead.30czze@xxxxxxxxxxxxx> wrote in message
news:screwuphead.30czze@xxxxxxxxxxxxxxxx

I know i could always a program to do this but wheres the fun in that?
so I need a program that will go through a list of servers and then a
list of their drives and check to see how much free space is left on
those drives, from their if it is anything less then 30GB i need it to
send an email to me.
i am using psexec to access these remote servers and run cmd. then to
email myself i am using postie.
the problem i am having is wrapping that all up in a if-then-else
command that will look for the specified free space. It doesnt work
right now beacuse for whatever reason it is bring back a true statement
when the statement is false because i know the server its checking is
more then 30GB free.
This is what i have so far:

@echo off

for /f %%S IN (serverPClist.txt) DO (
echo Checking drives on Server %%S...
for /D %%D IN (C D F G H I J K X V E) DO (

psexec \\%%S cmd /c if exist %%D:\* dir %%D:\ | findstr /c:"bytes" >
%temp%\%%S-%%D.txt
)
)


color 0D


for /f %%S IN (serverPClist.txt) DO (
echo. & echo.
echo ********** Displaying output for server %%S... **********

for /D %%D IN (C D E F G I J K) DO (
for /f "tokens=1,2,3,4" %%F IN ('if exist %temp%\%%S-%%D.txt type
%temp%\%%S-%%D.txt') DO (
if /i "%%G" == "Dir(s)" echo For the %%D: drive: %%H bytes free space.
if /i "%%G" == "bytes" echo For the %%D: drive: %%F bytes free space.
echo.
)
)
echo Done!
)
echo Generating HTML...

REM this part of the script generates an HTML file with all the
relevant information
REM and then launches it using the default browser.

set FileName="C:\Report.html"
echo ^<HTML^> > %FileName%
echo ^<HEAD^> >> %FileName%
echo ^<TITLE^>Free Space on NRCE Servers^</TITLE^> >> %FileName%
echo ^</HEAD^> >> %FileName%
echo ^<BODY^> >> %FileName%
echo ^<CENTER^>^<FONT SIZE=6 COLOR=BLUE^>Free Hard Drive Space
Report^</FONT^>^</CENTER^>^<BR^> >> %FileName%

for /f %%S IN (serverPClist.txt) DO (
REM mark the server
echo ^<FONT SIZE=4^>^<B^>%%S^</B^>^</FONT^>^<BR^> >> %FileName%
for /D %%D IN (C D E F G I J K) DO (
for /f "tokens=1,2,3,4" %%F IN ('if exist %temp%\%%S-%%D.txt type
%temp%\%%S-%%D.txt') DO (
REM add a line for the drive and free space
if /i "%%G" == "Dir(s)" echo ^<FONT SIZE=3^>Free space on
^<B^>%%D:^</B^> drive: ^<B^>^<FONT

COLOR=GREEN^>%%H^</FONT^>^</B^> bytes free^</FONT^>^<BR^> >> %FileName%

if /i "%%G" == "bytes" echo ^<FONT SIZE=3^>Free space on
^<B^>%%D:^</B^> drive: ^<B^>^<FONT

COLOR=GREEN^>%%F^</FONT^>^</B^> bytes free^</FONT^>^<BR^> >> %FileName%

)
)
REM mark some spacing lines into the HTML file
echo ^<BR^> >> %FileName%
)

echo ^</BODY^> >> %FileName%
echo ^</HTML^> >> %FileName%

REM launch the HTML file

set positive=1
set amount="30,000,000,000"
if %%f leq %amount% set violation=1
if %%h leq %amount% set violation=1
echo %violation%
if %violation% equ %positive% postie -host:(SMTP SERVER) -to:(MY EMAIL)
-from:(NETWORK EMAIL) -s:"Server Report" -msg:"THERE IS A VIOLATION!"
-a:"C:\ServerReports\Report.html"
echo Done!

If anybody else has anything better plz show me, otherwise i will keep
playing around with this coding.


--
screwuphead
------------------------------------------------------------------------
screwuphead's Profile: http://forums.techarena.in/member.php?userid=34605
View this thread: http://forums.techarena.in/showthread.php?t=856460

http://forums.techarena.in


.



Relevant Pages

  • Re: Script Need to check disk space on remote servers
    ... Is it possible to keept the process running by skipping over remote computer ... Is it possible to get SQL Server database and log information (like ... echo Checking drives on Server %%S... ... REM and then launches it using the default browser. ...
    (microsoft.public.windows.server.scripting)
  • Re: I want all those MP3 files out of my file server
    ... files that users are saving on server. ... rem It must be in this format: ... echo Copy to %supervisor%>> %msg% ...
    (microsoft.public.win2000.general)
  • RE: Printer Configuration
    ... typed incorrectly or the specified printer has lost connectivity to server. ... REM this command file will add a network printer to a computer remotely ... REM 1 - the name of the computer to which the network printer is to be added ... @Echo On ...
    (microsoft.public.windows.server.sbs)
  • Script Need to check disk space on remote servers
    ... echo Checking drives on Server %%S... ... REM this part of the script generates an HTML file with all the ... REM and then launches it using the default browser. ...
    (microsoft.public.windows.server.scripting)
  • Re: WEB SITE PROJECT DEPLOYMENT ~ Help please??
    ... ECHO When/If prompted with the question: ... The files are all now sitting on my Server, and when I load my web site, ... An error has occurred while establishing a connection to the server. ... The connection string specifies a local Sql Server Express instance using ...
    (microsoft.public.dotnet.framework.aspnet)

Loading