Accessing Windows actions(Shutdow.Restart)

  • Thread starter Raveendran Perumalsamy
  • Start date
R

Raveendran Perumalsamy

Hi All,

I want to access the windows functionalities such as Shut down, Restart,
Log off etc..

Please guide to me..

Because i tried win32OLE, Watir and few gems.. But still there is no
improvement to access those things.

Awaiting reply.

Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com
 
D

David Mullet

Raveendran said:
Hi All,

I want to access the windows functionalities such as Shut down, Restart,
Log off etc..

Please guide to me..

Because i tried win32OLE, Watir and few gems.. But still there is no
improvement to access those things.

Awaiting reply.

Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com

One method is to run the command "shutdown.exe" with parameters:

system('shutdown.exe -r -f -t 0')

To get a list of parameters, open a console window and enter

shutdown.exe /?

David

http://rubyonwindows.blogspot.com
 
G

Gordon Thiesfeld

Hi All,

I want to access the windows functionalities such as Shut down, Restart,
Log off etc..

Please guide to me..

Because i tried win32OLE, Watir and few gems.. But still there is no
improvement to access those things.

Awaiting reply.

Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com

Here are a few ways. You'll need admin privileges on any box you run
it against.

Using WMI via win32ole locally.
<code>

LogOff = 0
ForcedLogOff = 4
Shutdown = 1
ForcedShutdown = 5
Reboot = 2
ForcedReboot = 6
PowerOff = 8
ForcedPowerOff = 12

require 'win32ole'

wmi = WIN32OLE.connect("winmgmts:\\\\.\\root\\cimv2")
list = wmi.execquery("Select * from Win32_OperatingSystem",nil,48)

list.each do |item|
item.win32Shutdown(LogOff)
end
</code>

Using ruby-wmi (gem install ruby-wmi) locally.
<code>

require 'ruby-wmi'
#you'll need the same constants as above

host = 'computername'
os = WMI::Win32_OperatingSystem.find:)first)
os.win32shutdown(LogOff )

</code>


Using win32ole remotely.
<code>
require 'win32ole'
# constants
computer_name = 'host'
wmi = WIN32OLE.connect("winmgmts:\\\\#{computer_name}\\root\\cimv2")
list = wmi.execquery("Select * from Win32_OperatingSystem",nil,48)

list.each do |item|
item.win32Shutdown(LogOff )
end

</code>

Using ruby-wmi remotely.
<code>

require 'ruby-wmi'
# constants
host = 'computername'
os = WMI::Win32_OperatingSystem.find:)first, :host => host)
os.win32shutdown(LogOff )

</code>

Gordon
 
G

Gordon Thiesfeld

Thank for David and Gardon.

Hi Gardon,

Very good code from u. But i have some trouble when i change LogOff to
Shutdown. I herewith attached the file shows my problem to u.

Ok, you'll need the 'Shutdown' privilege for a local machine and the
RemoteShutdown privilege for a remote machine.

LogOff = 0
ForcedLogOff = 4
Shutdown = 1
ForcedShutdown = 5
Reboot = 2
ForcedReboot = 6
PowerOff = 8
ForcedPowerOff = 12

require 'rubygems'
require 'ruby-wmi'


os = WMI::Win32_OperatingSystem.find( :first, :privileges =>
[WMI::privilege::Shutdown] )
os.win32shutdown( Shutdown )

Some links:

http://ruby-wmi.rubyforge.org/doc/classes/WMI/Privilege.html
http://msdn2.microsoft.com/en-us/library/aa394058(VS.85).aspx
http://msdn2.microsoft.com/en-us/library/aa392758.aspx

hope that helps,

Gordon
 
R

Raveendran Jazzez

Hi All,

I got simple solution. But need t sharp it.

I got code to shutdown my machine, getting ipconfig in my machine
etc..,(whatever possible to get via command prompt.)

My Code:

system('ipconfig')

I got my IP Address.

Problem:

a= system('ipconfig')

puts a

I got only true. Please help to store the content in single variable.

Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com
 
L

luka luka

Raveendran said:
My Code:

system('ipconfig')

I got my IP Address.

Problem:

a= system('ipconfig')

puts a

I got only true. Please help to store the content in single variable.

Hi..
I tried your code and all OK!

Try this:

def myIpConfig
system('ipconfig') // or puts system('ipconfig')
end

myIpConfig // print your ip config
 
R

Raveendran Jazzez

Hi..
I tried your code and all OK!

Try this:

def myIpConfig
system('ipconfig') // or puts system('ipconfig')
end

myIpConfig // print your ip config

Hi Luka,

i did this already. But need to get in a single variable. I think it is
not possible. Anyway thanks a lot ..


Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com
 
H

Heesob Park

Hi,

Raveendran said:
Hi All,

I got simple solution. But need t sharp it.

I got code to shutdown my machine, getting ipconfig in my machine
etc..,(whatever possible to get via command prompt.)

My Code:

system('ipconfig')

I got my IP Address.

Problem:

a= system('ipconfig')

puts a

I got only true. Please help to store the content in single variable.
Try with backtick operator:
a = `ipconfig`

If you want only IP Address, you can do something like this:
a = `ipconfig`.scan(/IP Address.+?: (.+)\r/).to_s

Regards,
Park Heesob
 
G

Gordon Thiesfeld

i did this already. But need to get in a single variable. I think it is
not possible. Anyway thanks a lot ..

Use backticks:
=> "\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter Wireless
Network Connection 2:\r\n\r\n Connection-specific DNS Suffix .
: \r\n IP Address. . . . . . . . . . . . : 192.168.1.101\r\n
Subnet Mask . . . . . .
. . . . : 255.255.255.0\r\n Default Gateway . . . . . . . . .
: 192.168.1.1\r\n"=> "\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter Wireless
Network Connection 2:\r\n\r\n Connection-specific DNS Suffix .
: \r\n IP Address. . . . . . . . . . . . : 192.168.1.101\r\n
Subnet Mask . . . . . .
. . . . : 255.255.255.0\r\n Default Gateway . . . . . . . . .
: 192.168.1.1\r\n"
 
M

Marc Heiler

def myIpConfig
system('ipconfig') // or puts system('ipconfig')
end
myIpConfig // print your ip config


i did this already. But need to get in a single variable.


Solution:
a = `ipconfig`
 
L

luka luka

Raveendran said:
Hi Luka,

i did this already. But need to get in a single variable. I think it is
not possible. Anyway thanks a lot ..


Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com

No no, it's possible, i tried:
var = system('ipconfig')
puts var
and all is fine.

try this:
var = "#{system('ipconfig')}"
puts "#{var}"

I think it must work.
 
R

Raveendran Jazzez

Try with backtick operator:
a = `ipconfig`

If you want only IP Address, you can do something like this:
a = `ipconfig`.scan(/IP Address.+?: (.+)\r/).to_s

Regards,
Park Heesob

Hi Park,

Fantastic idea from u. Thank a lot.

Hi All,

We will continue with more problems very soon.....

Regards,
P.Raveendran
RailsFactory,Chennai.
http://raveendran.wordpress.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,196
Messages
2,571,036
Members
47,631
Latest member
kukuh

Latest Threads

Top