Run a powershell command through AutoHotKey script

10,215

Solution 1

If you want to run a PowerShell script from ahk and it contains several lines and you don't want to use an external file, this is an example how do it:

AutoHotkey code:

psScript =
(
    param($param1, $param2)

    new-item -path $param1 -name logfiles -itemtype directory
    new-item -path $param2 -name logfiles -itemtype directory
    remove-item -path 'c:\temp'
    # etc, write any code, use this quotes for strings: '
    # if you need ", then write: \":
    $import = '[DllImport(\"ntdll.dll\")] public static extern int RtlAdjustPrivilege(ulong a, bool b, bool c, ref bool d);'
)

param1 = C:\temp
param2 = D:\temp

RunWait PowerShell.exe -Command &{%psScript%} '%param1%' '%param2%',, hide

; use this call if you want to see powershell output
Run PowerShell.exe -NoExit -Command &{%psScript%} '%param1%' '%param2%'   

Solution 2

Try:

Run, PowerShell "new-item -path c:\ -name logfiles -itemtype"

Seemed to work for me.

Edit based on newly provided information:

Command found @ http://exchangeserverpro.com/install-exchange-2013-pre-requisites-windows-server-2012/

Try:

Run, PowerShell "Install-WindowsFeature AS-HTTP-Activation
                , Desktop-Experience
                , NET-Framework-45-Features
                , RPC-over-HTTP-proxy
                , RSAT-Clustering
                , Web-Mgmt-Console
                , WAS-Process-Model
                , Web-Asp-Net45
                , Web-Basic-Auth
                , Web-Client-Auth
                , Web-Digest-Auth
                , Web-Dir-Browsing
                , Web-Dyn-Compression
                , Web-Http-Errors
                , Web-Http-Logging
                , Web-Http-Redirect
                , Web-Http-Tracing
                , Web-ISAPI-Ext
                , Web-ISAPI-Filter
                , Web-Lgcy-Mgmt-Console
                , Web-Metabase
                , Web-Mgmt-Console
                , Web-Mgmt-Service
                , Web-Net-Ext45
                , Web-Request-Monitor
                , Web-Server
                , Web-Stat-Compression
                , Web-Static-Content
                , Web-Windows-Auth
                , Web-WMI
                , Windows-Identity-Foundation"
Share:
10,215
samisda1
Author by

samisda1

Updated on June 18, 2022

Comments

  • samisda1
    samisda1 almost 2 years

    I want to be able to run a following PowerShell command through AutoHotKey script:

    new-item -path c:\ -name logfiles -itemtype directory
    

    I am unable to find a way to achieve this task. Please help.

  • samisda1
    samisda1 over 8 years
    @Chad .. The command I provided was just an example. Actually I wanted to run the 'Add-Windowsfeature' command from the following article: exchangeserverpro.com/… and I am unable to run it because of an error that says VARIABLE NAME TOO LONG. Please suggest.
  • samisda1
    samisda1 over 8 years
    The one you provided works for me too. But when I use 'Add-Windowsfeature' command instead of that in the example, I get an error saying VARIABLE NAME TOO LONG. Any suggestions please.
  • errorseven
    errorseven over 8 years
    I edited the code to include Add-Windowsfeature code into it, but you haven't reported back if it is working or not?
  • samisda1
    samisda1 over 8 years
    I am getting the same error after running this. Any other way you could think of? Thank you so much.
  • bgoodr
    bgoodr almost 3 years
    Use get-help about_PowerShell_exe | more from PowerShell prompt to get an explanation for why &{...} call operator is used.