Scripting with "Expect"

I have just started working with "Expect" with hopes of automating password changes. I wanted to know if anyone has any Expect scripts of their own that they could share that would doing something like the following:
1) ssh to remote server A as user jdoe, change the password for jdoe
2) As jdoe, sudo to userB, change userB's password
I want to run an expect script that will do the above from cron so that the script will go out and change both passwords prior to their expiration. Password aging is as follows on the servers:
MAXWEEKS=8
MINWEEKS=0
PASSLENGTH=8
HISTSIZE=10 (remembers last 10 passwords, so they cannot be reused)
I think the mkpasswd utility that comes with Expect could be used, but I could use a good example if someone has one to share.
Thanks for any help !!

I have an update on this that I would like to post in hopes of helping others that may be using Expect to automate password changes. I need some help with the looping if anyone has any suggestions. Here is what I have comeup with so far:
1) The shell script for calling the Expect Script is posted below. Basically, the script will read the old password and new password from pass.old and pass.new. It gets a list of servers, usernames, and sudo accounts from the file servusers which is in the format of:
servername | username | sudo acct
The script then calls the expect script passing.exp and passes information to it required to login, change the password, sudo to a user, and change it's password too. My problem is, the script is not looping. It will read in the first server | user | sudo account from the file and go out and make the change, but when it exits from the first server, it does not move onto the second server in the file which contains a different username and sudo account.
#!/usr/bin/ksh
MYDIR="/scripts/Expect_Scripts/pass_control"
OLDPASS=$(cat ${MYDIR}/pass.old)
NEWPASS=$(cat ${MYDIR}/pass.new)
set -x
for LINE in $(grep -v "^#" ${MYDIR}/servusers);
do
SERVER="$(echo "${LINE}" | awk -F\| '{print $1}')"
LOGINUSER="$(echo "${LINE}" | awk -F\| '{print $2}')"
SUDOACCT="$(echo "${LINE}" | awk -F\| '{print $3}')"
echo "${SERVER},${LOGINUSER},${SUDOACCT}"
${MYDIR}/passing.exp ${LOGINUSER} ${SUDOACCT} ${SERVER} ${OLDPASS} ${NEWPASS}
done
2) Below is the passing.exp Expect script that the Shell script above is calling:
#!/usr/local/bin/expect -f -d
# Script Usage: ./passing.exp user sudoacct host oldpass newpass
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
set progname [lrange [split "$argv0" "/"] end end]
if {$argc < 5} {
send_error "$progname: usage: $progname user sudoacct host oldpass newpass\n"
exit 2
set user [lindex $argv 0]
set sudoacct [lindex $argv 1]
set host [lindex $argv 2]
set oldpass [lindex $argv 3]
set newpass [lindex $argv 4]
set timeout -1
spawn $env(SHELL)
match_max 100000
send -- "ssh $user@$host\r"
expect -exact "ssh $user@$host\r
$user@$host's password: "
send -- "$oldpass\r"
expect -exact "\r
\$ "
send -- "passwd $user\r"
expect "assword:"
send -- "$oldpass\r"
expect "assword:"
send -- "$newpass\r"
expect "assword:"
send -- "$newpass\r"
expect -exact "\r
passwd: password successfully changed for $user\r
\$ "
#### SUDO SECTION ####
send -- "sudo su - $sudoacct\r"
expect -exact "sudo su - $sudoacct\r
Password:"
send -- "$newpass\r"
expect -exact "\r
\$ "
send -- "passwd $sudoacct\r" # Change the password for the sudo account
expect "assword:"
send -- "$oldpass\r"
expect "assword:"
send -- "$newpass\r"
expect "assword:"
send -- "$newpass\r"
expect -exact "\r
passwd: password successfully changed for $sudoacct\r
\$ "
send -- "exit\r"
# expect -exact "exit\r
# \$ "
send -- "exit\r"
expect -exact "exit\r
Connection to $host closed.\r
\r
\$ "
expect eof
Any help on the looping part would be appreciated.

Similar Messages

  • Using scripting with networking equipment under Windows

    It can be a challenge to use scripting to automate working with Cisco devices. The Cisco IOS does not seem to directly provide a command line interface. You are forced to find a way to automate interaction with a telnet or ssh session.
    The PERL language provides a number of object-oriented methods to help manage an interactive session, most notably Net::SSH::Expect and Net::Appliance::Session. These options can work well in a Unix environment, but not under MS Windows.
    There are PERL for Windows options, the best probably being Strawberry PERL. There is also a Unix under Windows option known as CYGWIN that is freely available. Unfortunately none of these will work well with the way Windows manages low-level terminal I/O. The curious can google "windows pseudo terminal" to see all the technical details.
    One way that does work under Windows is Tcl.  It was initially named Tool Command Language. It is sometimes shown as Tcl/Tk.
    Interestingly enough, Tcl is included within Cisco IOS as tclsh. There is no interaction with the tclsh and this example. It is just a bit of a curious coincidence.
    A Tcl port to Windows can be downloaded from http://www.activestate.com/activetcl/downloads. Select Download ActiveTCL for Windows. A direct link to the download that worked at the time of writing is Download ActiveTcl 8.5.14 for Windows (x86)
    Once base Tcl has been downloaded and installed there is one other component that will need to be installed from the Tcl Extension Archive, the expect package.
    The teacup program that is installed with the base Tcl package makes this easy. The teacup program will work with a proxy.
    You can set these Windows environment variables to specify proxy details:
    set http_proxy=
    set http_proxy_user=
    set http_proxy_pass=
    Then run teacup install expect
    The plink tool from the PuTTY download is also needed. It can be obtained from http://www.putty.org/.
    The sample that follows assumes that the data files, script and plink.exe executable all reside in the same directory.
    A sample Tcl script follows that reads a file of devices and a file of commands. It will run the list of commands against each device in the device file. It has some basic error checking, but should best be considered a ‘beta’ version. You could do more complex interactions in the Tcl script by adding exp_send and expect command statements. In short, if you can type it you could script it!
    Change directory to where your script, plink.exe  and data is stored and run with  tclsh <script_name>
    devices.list
    # Comment lines are allowed if they start with a hash mark
    # <IP_Addr> <userid> <password> <ssh|telnet> <timeout_in_secs>
    nnn.nnn.nnn.nnn    <userid>    <password>  ssh         <timeout_in_secs>
    nnn.nnn.nnn.nnn    <userid>    <password>  telnet      30
    commands.list
    # term length 0 needed or else IOS will wait for an enter to be pressed at the  --More-- prompts
    term length 0
    show run
    exit
    Script:
    # Run batch commands against one or more devices
    package require Expect
    exp_log_user 0
    set exp_internal 0
    set exp::nt_debug 0
    set prompt "(#\s*$|>\s*$)"
    set env(TERM) dumb
    set file_channel  [open "devices.list" r]
    set DEVICES      [read $file_channel]
    close $file_channel
    set file_channel  [open "commands.list" r]
    set COMMANDS      [read $file_channel]
    close $file_channel
    set command_entries [split $COMMANDS "\n"]
    set device_entries  [split $DEVICES "\n"]
    proc timedout {{msg {none}}} {
          send_user "Timed out (reason: $msg)\n"
          if {[info exists ::expect_out]} { parray ::expect_out }
          exit 1
    foreach device_entry $device_entries {
          if {[string length $device_entry] == 0 || [regexp {[ \t]*#} $device_entry]} { continue }
          set device  [lindex $device_entry 0]
          set user    [lindex $device_entry 1]
          set pass    [lindex $device_entry 2]
          set mode    [lindex $device_entry 3]
          set wait    [lindex $device_entry 4]
          set serial  [lindex $device_entry 5]
          # puts "Device=$device"
          # puts "User=$user"
          # puts "Mode=$mode"
          # puts "Wait=$wait"
          set timeout $wait
          # Spawning the Session
          # If you are logging on to the remote machine using "ssh", "slogin" or "rlogin", the information
          # gets processed in a slightly different manner. With any of these methods, it is necessary to
          # include an additional -l option to specify a username.
          # Next, the $spawn_id variable is captured, storing information about this spawn session in
          # memory for future reference.
          # If you are logging in via Telnet, the final code block in this section is required to pass the
          # username to Telnet. If the login is completed before the script times out, the exp_send command
          # passes the username.
          switch -exact $mode {
                "telnet" { set pid [spawn plink -telnet -l $user $device] }
                "ssh"   { set pid [spawn plink -ssh -l $user -pw $pass $device] }
                "serial" { set pid [spawn plink -serial $serial -l $user -pw $pass $device] }
          set id $spawn_id
          if {$mode == "telnet"} {
                expect -i $id timeout {
                timedout "in user login"
                } eof {
                timedout "spawn failed with eof on login"
                } -re "(login|Username):.*" {
                exp_send -i $id -- "$user\r"
          # Handling Errors
          # The error-handling section of the script is a while loop that anticipates a number of problems
          # that could occur during login. This section is not exhaustive. For example, you could also add
          # provisions for invalid usernames and passwords.
          # If the login is not completed during the allotted time frame, which is set from the devices.list file
          # and specified with expect -i $id timeout, the program displays an appropriate error message.
          # The remainder of this loop makes use of the exp_send command to allow for other scenarios, such
          # as the user typing "yes" when prompted to proceed with the connection, entering a password, or
          # resetting the terminal mode.
          set logged_in 0
          while {!$logged_in} {
                expect -i $id timeout {
                timedout "in while loop"
                break
                } eof {
                timedout "spawn failed with eof"
                break
                } "Store key in cache? (y/n)" {
                exp_send -i $id -- "y\r"
                } -re "\[Pp\]assword:.*" {
                exp_send -i $id -- "$pass\r"
                } "TERM = (*) " {
                exp_send -i $id -- "$env(TERM)\r"
                } -re $prompt {
                set logged_in 1
          foreach command $command_entries {
                if {[string length $command] == 0 || [regexp {[ \t]*#} $command]} { continue }
                # Sending the Request
                # If the login is successful, the code in the if statement below is used to send the "cmd" request
                # to display files and directories. After the request is sent with exp_send, the resulting output
                # is captured in the dir variable, which is set on the fourth line of the code shown below.
                if {$logged_in} {
                      exp_send -i $id -- "$command\r"
                      expect -i $id timeout {timedout "on prompt"} -re $prompt
                      puts "$expect_out(buffer)"
                # Closing the Spawned Session
                # The exp_close command ends the session spawned earlier. Just to be sure that session
                # does indeed close, the exp_wait command causes the script to continue running until a result is
                # obtained from the system processes. If the system hangs, it is likely because exp_close was not
                # able to close the spawned process, and you may need to kill it manually.
          catch { exp_close -i $id }
          exp_wait -i $id
          set logged_in 0
    *** End of Document ***

    Your friend will have to save the templates as CS6, which he can do.

  • Maxl Clear Script with Substitution Variables

    Hi,
    I am new to Maxl and I am trying to write a clear script with Maxl on an ASO Cube. The script should only clear data on a certain version and year that changes every month. I am using the following syntax and it doesn't work.
    alter database ASOSamp.Sample clear data in region '{[&SV_CurrentPeriod]}';
    What is the correct syntax here?
    thanks,

    alter database ASOSamp.Sample clear data in region '{[&Test]}';...with the subvar 'Test' set to Jan...works on my 11.1.2 test system.
    Incidentally, when you say "it doesn't work", do you mean you get a MaxL error, or it doesn't clear the expected region? I was assuming the former, but you don't say.

  • Trouble using Run Shell Script with python in Automator

    Hi. I have a python script I want to run in Automator (update_puzzles.py). All it does is check, rearrange and update files and there is not supposed to be any input. I can get the script to run outside of Automator, in Terminal, by navigating to the right directory and typing "python update_puzzles.py"
    I must not be setting up Run Shell Script correctly. I have it set to /bin/bash and Pass Input to stdin. The command line simply reads python /pathname/update_puzzles.py (where pathname is the path to the .py file, which I got by dragging the file onto the Run Shell Script command window). There are no actions before this in my workflow and the action after is View Results.
    The log says Run Shell Script failed, and the error is "Traceback (most recent call last):"
    Any suggestions?
    Thanks so much.

    If the script is expecting to do stuff with files in the same directory as the executable, you will probably need to add a statement to change to the appropriate working directory. The shell used in the Automator *Run Shell Script* action is a generic one that does not share any of the environment variables that the Terminal uses.

  • Which is better approach to manage sharepoint online - PowerShell Script with CSOM or Console Application with CSOM?

    Which is better approach to manage sharepoint online - PowerShell Script with CSOM or Console Application with CSOM?
    change in sharepoint scripts not require compilation but anything else?

    Yes, PowerShell is great, since you can quick change your code without compilation.
    SP admin can write ps scripts without specific tools like Visual Studio.
    With powershell you can use cmdlets,
    which could remove a lot of code, for example restarting a service.
    [custom.development]

  • ECATT Script with SAPGUI Commando works in consolidation but not in prod.

    Hi experts,
    I created a eCATT script with commando SAPGUI Rec. In our consolidation system it works fine but when I try to let it run in production it is not working. User scripting is enabled (in options and in rz11). I am starting the script, the production system is getting opened but afterwards there happens nothing anymore. Also the scriptingsign in the bottom right corner is not active.
    When I am running a script with TCD Rec, it works fine in production. Is there a difference between settings for scripting for TCD Rec and SAPGUI scripting? Do you have any idea which kind of influences there could be that make this difference between TCD Rec and SAPGUI Rec scripts?
    Best regards and thank you in advance!
    Jan

    Hello,
    Ideally we should not run the ecatts in the production system as this would hamper the system environment or change systems.
    Also check in RZ11 enter sapgui/user_scripting , here the values for the last three parameters are set to TRUE.
    Thanks & Best regards,
    Ajay

  • Calling an rss script with rs.exe fails to result in a report pdf from VB6 w/ ShellEx.

    Sql 2008 R2
    Calling an rss script with rs.exe fails to result in a report pdf from VB6 w/ ShellEx. 
    If I call rs.exe with the various parameters from the command prompt I  have success(other than rs.exe using the temp folder, which is a different issue).  But when I try to execute the same process from a Visual Basic 6.0 application utilizing
    the ShellEx api call, the report creation and output to PDF format do not occur.   There is no error raised.
    Yes, I wish I could use a newer dev tool but that isn't an option right now. I think this should work.  Can ya'll tell me what I'm doing wrong?
    sArgs = "-i " & Chr(34) & "'C:\Program Files\Dura Supreme\OrderEntry\RunOrdReports.rss'" & Chr(34) & _
    " -s 'http://walnut/reportserver' -v 'DuraOrderNum=" & _
    Chr(34) & sOrdDuraID & Chr(34) & "' -e Exec2005 -t"
    ShellEx Chr(34) & "C:\Program Files\Dura Supreme\OrderEntry\rs.exe" & Chr(34), EShellShowConstants.essSW_SHOWNORMAL, sArgs
    TIA,
    Jim M.

    ShellEx Chr(34) & "C:\Program Files\Dura Supreme\OrderEntry\rs.exe" & ....
    Hello Jim,
    The path for rs.exe includes spaces, you should set it in hyphen, as you already did for file "RunOrdReports.rss" in variable "sArgs2
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • SOS! Please help me with Expectation Maximization Algorithm!

    I have to image processing with Expectation Maximization Algorithm. I have loaded image into Georaster Object. But I do not know how to prepare data for image processing with EM algorithm. Please help me more details!
    Thanks!
    Thoa

    Hi Thoa,
    This is a general DB question. Try posting your question to that forum:
    General Database Discussions
    Thanks, Mark

  • Data exchange Mainscript (SCRIPT) with script block (DAC)

    Is there any way to exchange data beetwen a Mainscript (SCRIPT) with
    user-dialoges and script block (DAC) in this way that the script in
    scriptblock can access to this data?
    Background: I write a DAC-Application with some script-blocks for
    reading and writing data to/from real devices. During the development
    I'd like to simulate all device accesses because I don'd have the
    devices in my office. I write all scripts with a branch for simulation
    an real measurement on startup.
    How can I execute a swich (simulation / mesurement) without changing
    all my scripts all times? Can a script read a variable anyway (Variable
    from Mainscript, Diadem-Uservariable or "Hilfsvariable" like L1)? 
    Can I fill "DeviceParam1V" with content of a variable?
    I could use a input channel connected with a formula-block for it. (The
    formula-block can read a variable.) But this way is uncomfortable an
    don't work for input blocks.
    Martin Bohm
    [email protected]

    Because the DAC Script is executed in its own runtime environment you cannot use the DIAdem variables as in a normal VBS or a SUD.
    Still, there are ways to exchange information.
    First of all by an extra channel as Input (you named it)
    Secondly, there are several variables you can use. Have a look at the Script DAC block. There are two fields called Parameter1 and Parameter2. And each signal you configure has a parameter of its own.
    Prior to starting the scheme, you can use a script to change the value of those parameters:
    Call DACObjOpen("Script-in1")
      VBSSignalParam(1) = "abc"
    Call DACObjClose("Script-in1")
    Is changing the parameter of the first signal that is configured.
    Call DACObjOpen("Script-in1")
      VBSParameter1 = "1st device parameter"
      VBSParameter2 = "2nd device parameter"
    Call DACObjClose("Script-in1")
    is changing the global device parameters.
    On the side of the Script DAC driver VBS you cann use the paramP funtion to access the signal parameter that corresponds to the actual channel (as referenced by ChannelnumberP)
    ' SFD_ReadChannel
    ' Zweck               : Lesen eines Wertes für den Kanal "ChannelNumberP"
    ' ChannelNumberP      | Kanalnummer aus dem Block-Dialog
    ' ParamP              | Vom Anwender definierte Variable aus dem Block-Dialog
    ' DataP               | Variable zur Rückgabe des neuen Kanalwertes. Diese
    '                     | Variable sollte zumindest auf einen gültigen Wert
    '                     | initialisiert werden.
    ' ErrorP              | Variable zur Rückgabe einer Fehlermeldung. Wird diese
    '                     | Variable gesetzt, stoppt DIAdem die Messung
    Sub SFD_ReadChannel( ChannelNumberP, ParamP, DataP, ErrorP )
    End Sub
    To acces the device Parameters, use the init function:
    ' SFD_Init
    ' Zweck               : Diese Prozedur wird während des Messungsstarts aufgerufen
    ' DeviceParam1V       | Erster Parameter, der vom Anwender im DAC-Block
    '                     | eingegeben werden kann
    ' DeviceParam2V       | Zweiter Parameter, der vom Anwender im DAC-Block
    '                     | eingegeben werden kann
    ' ErrorP              | Variable zur Rückgabe einer Fehlermeldung. Wird diese
    '                     | Variable gesetzt, stoppt DIAdem die Messung
    Sub SFD_Init( DeviceParam1V, DeviceParam2V, ErrorP )
    End Sub
    Ingo Schumacher
    Systems Engineer Sound&VibrationNational Instruments Germany

  • Execution of Coded UI scripts with least possible test execution time in Windows7 Operating system using Visual Studio Test Agent 2010 without VS2010 installed

    Hi All,
    We are trying to execute coded UI scripts without Visual Studio installed. We are using “Visual Studio Test Agent 2010” for executing coded UI scripts without VS2010 in Windows 7, it is working fine. Also we verified executing the same script with VS2010
    Premium, it works fine as well.
    Here the challenge we are facing is with the Test execution time.
    When we run the coded UI script with IE11-Windows 7 OS-Visual Studio 2010 Premium it takes
    3min 36sec to complete the execution whereas with IE11-Windows 7 OS-Visual Studio Test Agent 2010  it takes
    6min 40sec for the same script to execute (which is almost double the time it takes while executing using VS2010).
    My question is what may be the reason for this difference? and how we can reduce the test execution time when running from Test Agent 2010?
    Kindly let us know what is the best practice to execute the coded UI scripts with least test execution time in Windows 7 Operating system using Visual Studio Test Agent 2010 without VS2010
    installed.
    Looking forward for your positive response.
    Thanks in advance..!!

    Tina-Shi, Thanks for the information.
    As you mentioned, we tried to execute the coded UI test using Mstest.exe in command on VS2010 Premium and checked on the execution
    time, there was a slight difference.
    Please find below execution time.
    Using Mstest.exe in command on VS2010 Premium/Win7 – 3.47 minutes
    Using VS2010 Premium/Win7 – 3.53 minutes
    Using Test Agent/Win7 – 7.3 minutes
    Also, I closed all the other processes in Task manager before starting up the execution.
    Still , I am facing the same Issue. Could you please suggest any other way to reduce the scripting time of coded UI script execution
    through Test agent 2010.
    Looking forward for your earliest response.

  • SQL script with a prompt functionality.

    Hello experts,
    I tried searching this on the net but was unsucessful...
    Bascially I need to update an sql script with a prompt functionality..Basically I would like a user prompt that would enter 'Yes or No' to compile invalid objects using utlrp.
    If Yes, it should compile it
    If No it should exit out...
    Can anyone please help.. Need to do this today.
    Edited by: user568296 on Oct 2, 2009 8:18 AM

    Hi,
    As someone suggested, you're probably better off doing this at the OS level.
    SQL*Plus does not have any good mechanism for conditional branching. One trick you can do in SQL*Plus is to run one script from another by saying <tt>@@filename</tt>. By using a substitution variable (which can be defined based on the results of a query) in place of a literal filename, you can make this dynamic.
    For example, the following script runs either
    recompile.sql or
    goodbye.sql
    based on the answer to a prompt:
    ACCEPT     recompile_now      PROMPT        'Do you want to recompile objects now?  '
    COLUMN     next_script_col        NEW_VAL next_script
    SELECT     CASE     
              WHEN  UPPER ('&recompile_now') LIKE 'Y%'
              THEN  'recompile'
              ELSE  'goodbye'
         END     AS next_script_col
    FROM     dual;
    @@&next_script<tt>@@filename</tt> assumes filename.sql is on the same directory as the calling script. You could also give a full path name using only one @-sign:
    <tt>@pathname</tt>

  • Remote Execution of a script with Get-Child Item cannot find path

    Hello!
    I have been tackling this problem for a few days now and I just can't find the answer.
    I want to execute scripts remotely in parallel so that each of remote machine will run the script with their own resources.
    Below is just the simple script in the local machine server1
    $Folder = \\server1\folder\subfolder
    GCI $folder
    It works fine it I call that through my client with this I am using in my client
    invoke-command -computername server -scriptblock {powershell.exe C:\filepath\script.ps1}
    But if I change the script inside to look at another machine server 2 and do
    $folder = \\server2\folder\subfolder
    It generates an error that it cannot find that path when trying to call GCI remotely. Note that it still works if the script is run locally.
    I did some research and I see about the double-hop using credssp but I just can't get it to work.
    Any help would be appreciated.

    Each system that you're remoting into (or calling Invoke-Command against) will need to have the WSManCredSSP server role enabled. You can do this through group policy, or you can do it on a per-machine basis. Here's what you would run on a computer if you
    want to only enable it on certain computers (you should be able to run this remotely):
    Enable-WSManCredSSP -Role Server
    The system that you're running everything from will be the CredSSP client. You'll need to run this from it:
    Enable-WSManCredSSP -Role Client -DelegateComputer *.yourdomain.com
    You'll need to change the 'yourdomain.com' to your domain name (or, you could simply put a * for the delegate computer, just be aware that this will allow your computer to pass credentials along to any computer when you tell a cmdlet to use CredSSP authentication).
    Now, to use Invoke-Command, do this:
    $cred = Get-Credential
    Invoke-Command -computername server.yourdomain.com -scriptblock {"Commands go here"} -Authentication CredSSP -Credential $cred
    Notice that the -ComputerName parameter is using a fully qualified domain name. If your -DelegateComputer parameter above used a domain name, you'll have to have the FQDN here.
    Let me know if that works for you. If you want more information, you can check out the Enable-WSManCredSSP and Disable-WSManCredSSP help topics.
    Hi Rohn,
    I tried doing your instruction but it gives me this error
    Connecting to remote server failed with the following error message : The WinRM client cannot process the request because the server name cannot be resolved. For more information, see the about_Remote_Troubleshooting Help topic.
    After enabling the client and server with the wsmancredssp
    Here is the command I executed that produced the error
    invoke-command -computername server01.domain01 -scriptblock {get-process} -authentication credssp -credential $cred.
    Thank you very much for all the help.

  • What is the best way to run a powershell script with parameters in the Task Scheduler?

    Hello, 
    Want to run the following from a scheduled task in the Task Scheduler on a server.  What is the best approach?
    .\pscript.ps1 -csvfile "\\Srv1\Share\File.txt"
    Thanks for your help! SdeDot

    Hi,
    To run a powershell script with parameters in the Task Scheduler:
    Program: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    Add argument (optional): -Command "& c:\scripts\test.ps1 -par1 2 -par2 3"
    Hope the below two articles be helpful for you:
    Schedule PowerShell Scripts that Require Input Values
    https://blogs.technet.com/b/heyscriptingguy/archive/2011/01/12/schedule-powershell-scripts-that-require-input-values.aspx
    How to Schedule a PowerShell Script
    http://dmitrysotnikov.wordpress.com/2011/02/03/how-to-schedule-a-powershell-script/
    Regards,
    Yan Li
    Regards, Yan Li

  • I have a bare minimum script with the following line (also had the line echo Hello World, but removed for simplicity).

    I have a bare minimum script with the following line (also had the line echo Hello World, but removed for simplicity).
    #!/bin/sh  <-- only line of code currently in the file
    when I try to run, I get the following error.  Likewise if the line is #!/bin/bash, but /bin/bash is then the bad interpreter.
    -bash: ./test.sh /bin/sh: bad interpreter: Operation not permitted
    I'm running from a terminal window.
    Any helpful hints for resolution?  Thank you in advance.

    I did some more searching and found the answer here: https://discussions.apple.com/thread/3733470?start=30&tstart=0
    I obtained TextWrangler and recreated the file.
    Thank you for your input.

  • Give some refrence to learn Java Script with HTML5lo mates,

    Hello mates,
    Can anybody please prvodi me a good refrence to learn java script with HTML5. Yes, i am new to HTML5 and Java.
    Anybody have a good refrence.
    Please Share.
    Thanks

    Sorry for misspell in thread heading.

Maybe you are looking for

  • XPlod car adapter no longer works after installing OS 4.0

    I have a Sony car stereo with the Xplod adapter that allows me to hook up my iPod to my stereo and control it from there. After the recent update to OS 4.0 this no longer works. Now when I plug it in; the iPod stops playing sound through it's speaker

  • Questions on OTL Configuration

    Hi, I have couple of questions to all OTL gurus.. 1. Can a custom LOV be defaulted with some value which can also be overwritten by the user action? 2.Can a package choice list be hidden and still be executed as it is a mandatory parameter for eg:Hou

  • Home Hub 3.0B Management interface unresponsive.

    This month (2 weeks ago) I upgraded to Infinity 2 and got a new Home Hub 3.0 Type B. I was able to get it all working as I wanted to - home network using 172.16.0.1/23 (because of conflicts with vpning into work which already routes 192.168./16 and 1

  • Web sites

    when opening web sites they do not display correctly and I am asked to continually confirm that I accept sites authenticity. How do I delete this program?

  • How do you open  the pallet/styles/ box or any other if it gets closed

    my nephew has closed my pallet/styles box which i have never closed and have no clue how to reopen it. as my nephew is 4yrs old he wasn't of much help either. i can find nothing anywhere in photoshop CS2 version that allows me to reopen that or any o