Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re^3: Need to Execute msiexec using Net::Telnet

by philiprbrenan (Monk)
on Aug 27, 2012 at 19:19 UTC ( #990040=note: print w/replies, xml ) Need Help??

in reply to Re^2: Need to Execute msiexec using Net::Telnet
in thread Need to Execute msiexec using Net::Telnet

We are making progress. The nest step is to prove that you can execute a simple command on the target machine via Telnet. The ideal command would be perl -v so that we can see that we can start perl remotely. Once that done we can put the desired msiexec command in a perl script on the target machine and start that. So: can you execute perl remotely via Telnet on the target machine?

  • Comment on Re^3: Need to Execute msiexec using Net::Telnet

Replies are listed 'Best First'.
Re^4: Need to Execute msiexec using Net::Telnet
by tarunmudgal4u (Sexton) on Aug 28, 2012 at 05:29 UTC

    Hi Philip,

    Here, I want to mention a point. Actually, I wanted to remove the dependencies of installing something on remote machine. That is why I came up with this "Telnetting" idea. Otherwise, earlier I was doing this stuff using Jenkins(a tool that allows us to add client machine and fire commands on the client). In that case, there were so many dependencies of installing Java, Perl with required modules etc. So, I thought to get rid of it and just use telnetting and fire commands from there. In this way, I don't require to install anything on remote machine. just need one machine with everything installed as a server from where I can initiate this telnet script.

    I hope, you have understood my problem. Now, as you were asking about any simple command to run using this script, please see below script with its output-

    use Net::Telnet; BEGIN { $|=1 } $user = "administrator"; $pass = 'crt@123'; $telnet = new Net::Telnet ( Timeout=>20, Errmode=>'die', Prompt => '/[ +%#>] ?$/', Dump_Log=>"dumplogs.txt", Input_log=>"inputlogs.txt", O +utput_log=>"outputlogs.txt"); $telnet->open(''); $telnet->login(Name=>$user, Password=>$pass, Prompt => '/[%#>:] ?$/'); $command = qq(ipconfig && hostname); print "command is: [$command]\n"; @output = $telnet->cmd(String=>$command); print "output is:\n@output\n"; exit;
    And the output of this script is-
    C:\Compatibility_Automation_Temp>perl command is: [ipconfig && hostname] output is: Windows IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::a489:bdd0:bbd7:748a%11 IPv4 Address. . . . . . . . . . . : Subnet Mask . . . . . . . . . . . : Default Gateway . . . . . . . . . : Tunnel adapter Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : WIN-3K3OARCE05I C:\Users\Administrator
    Here, you can see it's working fine. Please suggest me for further.

      I am beginning to think that your Telnet session does not have enough priviledges to run msiexec, and that msiexec is objecting via a pop up which is ruining your telnet session. MS might have come to the conclusion that it would be bad for remote users to install software.

      If you wish to continue to the bitter end:

      So now we know that you can execute simple commands via telnet. The next command to execute is perl -v

      Then a perl script that executes the msiexec command for you. This script should be first tested on the target machine (i.e. not via telnet). Then via telnet.

      Once this has been done we know that msiexec can be started remotely and there is not some Windows weirdness that prevents it from happening, we can concentrate on the final step of eliminating the need for the perl wrapper on the target machine - which I agree is an excessive requirement in general but useful as a stepping stone to finding asolution.

      By taking these small steps we are eventually going to run into the actual problem that is occurring here, its tedious, but as Edison said: 1% inspiration, 99% perspiration.

        I fear that from here we are departing into that unknown country from whose bourne no traveler returns: namely Windows system administration. No doubt somewhere there is a method for granting Telnet the appropariate system priviledges. However, I suspect Microsoft will have their own ideas about how to do remote administration, and it may be better to abandon this approach for the moment and see what the standard MS way of doing this is. Once this is knowm, I am sure Perl will come back into play to drive their approved system programatically, but clearly, before advancing further we need to know how to do it manually.

        Hi Philip,

        Thanks for your help. As per your suggestion, I copied a Perl script on remote machine that executes the command line i was trying. Then I initiated this perl script on remote machine using local perl script that uses Net::telnet module. Please see below output I saw on the command line-

        C:\Compatibility_Automation_Temp>perl command is: [perl C:\Compatibility_Automation_Temp\ - +i sep] output is: T h i s i n s t a l l a t i o n p a c k a g e c o u l d n o t + b e o p e n e d . V e r i f y t h a t t h e p a c k a g + e e x i s t s a n d t h a t y o u c a n a c c e s s i t , o r +c o n t a c t t h e a p p l i c a t i o n v e n d o r t o v + e r i f y t h a t t h i s i s a v a l i d W i n d o w s I n s t a +l l e r p a c k a g e . C:\Users\Administrator
        This simply says that we can't execute msiexec using remote mahcine :( (the same you predicted earlier). So is there any workaround for this like get the privilege to access this msiexec utility from remote machine.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://990040]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (6)
As of 2018-03-23 01:51 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (287 votes). Check out past polls.