i want to execute a .ps1 powershell script in red hat linux server

25,667

Solution 1

Four years later from original question microsoft releases powershell for linux. And it's opensource: https://github.com/PowerShell/PowerShell

In linux environment you can use syntax like this: (script.ps1, executable)

#!/usr/bin/powershell -Command

write-host -fore Green "executing PowerShell!";

Solution 2

Pash is a cross-platform mono clone of Powershell which is under active development. You only need to download, build it with xbuild, and run it. Just like with Powershell on Windows you can execute your script with

& '/path/to/script.ps1'

Solution 3

After installing powershell, easy enough:

thufir@dur:~/powershell$ 
thufir@dur:~/powershell$ ./hello_world.ps1
hello world
done
thufir@dur:~/powershell$ 
thufir@dur:~/powershell$ cat hello_world.ps1 
#!/usr/bin/pwsh -Command


echo "hello world"
"done"


thufir@dur:~/powershell$ 

Not sure why it's pwsh and not powershell, but that's Linux for you.

Share:
25,667
Admin
Author by

Admin

Updated on July 09, 2022

Comments

  • Admin
    Admin almost 2 years

    i am having a .ps1 powershell script which executes in window, but my whole data is in linux server, is there any possible way via which i can execute the powershell script in red hat server

    the powershell script is :

    Clear-Host
    $path="D:\Deep Backup 26-04-2013\New folder"
    $systemname=Read-Host 'Enter System Name'
    
    
    
    $files=Get-ChildItem $path -Recurse -Force -Include *_Registrar.zip*,*.reg.zip*
    
    
    $counter=1
    
    foreach($file in $files)
    {
        $name=$file.name
        [void][system.reflection.Assembly]::LoadFrom("C:\Program Files\MySQL\MySQL Connector Net 6.5.4\Assemblies\v2.0\MySql.Data.dll")
        $dbconnect=New-Object MySql.Data.MySqlClient.MySqlConnection
        $dbconnect.ConnectionString="server=localhost;userid=root;password=nPr123*;database=test3;"
        $dbconnect.Open()
    
        $sql="insert into eid values('"+$name + "','"+$systemname+"')"
    
    
        $command=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$dbconnect)
        $command.ExecuteNonQuery()
    
    
    }
     $sql="insert into eid_unique
           select distinct Packet_name, System_name from eid a
           where not exists (select 1 from eid_unique b
           where a.Packet_name=b.Packet_name);"
    
    
        $command=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$dbconnect)
        $command.ExecuteNonQuery()
    $dbconnect.close()