如何在远程服务器上运行PowerShell命令

如何在远程服务器上运行PowerShell命令,第1张

PowerShell在用户管理和维护Windows方面是一个强大的命令行环境。虽然PowerShell是一个本地管理工具,但是它也用于管理远程服务器。事实上,管理员可以针对大量的服务器创建PowerShell脚本来执行管理任务。Invoke-Command和New-PSSession都是在远程服务器中PowerShell的执行命令。
Invoke-Command
如果你只需要针对单台或者多台远程服务器执行一个命令(或者一系列的管道命令),那么最便利的方法就是使用Invoke-Command命令。Microsoft的文档列出了绝大多数的参数和语法,导致人人皆知Invoke-Command命令的复杂性。即使如此,使用Invoke-Command在远程系统上执行命令仍然出奇地容易。
对于基本的远程命令执行,你只需要提供远程计算机的名称和想要执行的代码块。假设你想要在名称为Production1的远程服务器上执行Get-VM命令,你可以使用下面的命令:
Invoke-Command –ComputerName Production1 {Get-VM}
虽然这看起来很简单,但是你也要对使用这个方法了解以下几点。
首先,Invoke-Command命令不限制你在一个远程系统上执行命令,你可以在多个计算机上指定命令,你需要做的就是使用命令区分开这些计算机的名称。例如,在Production1,Production2和Production3计算机上执行命令如下:
Invoke-Command –ComputerName Production1, Production2, Production3 {Get-VM}
第二点,你必须要知道虽然这个方式的设计目的只是简单地在单个远程系统上运行的单一命令,但是你也可以运行多个命令。如果查看之前的几行代码,你会注意到允许在远程计算机上运行的Get-VM命令是包含在花括号里面的。任何在花括号里面的命令都会在指定的远程计算机行运行。同样的,只要所有的命令都包含在花括号里面,你可以使用管道符号把命令把它们链接在一起。
第三点你必须知道上面的语法只有在所有计算机中使用了Kerberos认证才会运行,同时包括有命令输入和已经加入了域。否则,你必须使用>ubuntu下的git服务器禁止用户shell登录
(1)禁止的原因
为了进行团队项目开发,我们经常会使用分布式版本管理系统,其中git是现今最为重要和常用的分布式管理系统。
著名的gitHub是在git系统的基础上为各种有内容托管需求的人提供托管服务的一个网站,但是GitHub的免费服务只能创建公开的仓库。如果我们不想把自己的代码开源,想私有代码,那么建立一台git服务器也是一个不错的选择。
在建立好git服务器后,大家都可以通过
登录后复制
$ git clone git@103099:projectgit
登录后复制
克隆代码到本地。
这同时说明了大家也可以通过
登录后复制
$ ssh git@103099
登录后复制
ssh连接服务器,登录到服务器上,对服务器进行各种 *** 作,这通常很不安全,也不合适,成员只需要能对仓库 *** 作就可以了,不需要更大的权限。
登录后复制
(2)禁止方法
编辑/etc/passwd文件完成。找到类似下面的一行:
登录后复制
git:x:1001:1001:,,,:/home/git:/bin/bash
登录后复制
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
登录后复制
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

我们平时 *** 作远程Linux服务器的时候经常需要XShell工具进行连接,那么如何 *** 作呢?下面我给大家演示一下。

工具/材料

XShell

01

首先我们打开XShell工具,点击顶部的打开选项,如下图所示

02

接下来会d出一个会话界面,我们点击新建按钮,如下图所示

03

然后我们在Linux系统中用ifconfig命令查看一下系统的地址信息,如下图所示

04

接下来在新建会话界面中我们输入Linux的地址,端口,协议信息,如下图所示

05

点击确定以后我们添加的连接信息就自动加载到会话列表中了,我们选择刚才新建的会话,然后点击连接按钮,如下图所示

06

接下来会d出一个是否接受秘钥的提示,我们点击接受并保存按钮,如下图所示

07

然后就会d出让我们输入账号的界面,这个账号是linux系统的账号,默认都是root,如下图所示

08

接下来输入root对应的密码,如下图所示,当然如果你有Public Key也可以选择的

09

最后登录系统以后我们可以用ll命令查看一下当前的文件夹内容,看是否真正的进入了远程Linux系统,如下图所示

首先,脚本并不需要知道本身所在主机的IP,所以,用不到101014191这个源地址。
再次,ftp命令中不支持直接在服务器端新建文件,只能先在本地新建后上传。其实,ftp客户端软件,如CuteFTP也都是这么做的,只是你觉察不到。
#!/bin/bash
host="101014272"
username="xxxx"
#这里写你的FTP登录用户名
password="xxxxxxx"
#这里写你的FTP登录密码
file1="testexam1"
file2="testexam2"
touch
$file1
touch
$file2
(
ftp
-ni
$host
<<EOF
quote
USER
$username
quote
PASS
$password
cd
/home/query
#切换服务器目录
binary
put
$file1
put
$file2
lcd
/home/query
#切换本地目录
get
$file1
delete
$file1
bye
EOF
)
>/dev/null
2>errlog

  在xshell连接上服务器,然后点击菜单栏上的 xftp
  首先连接上服务器后,安装 lrzsz 的软件

  安装完后服务器切换到对应的目录,直接拉取即可上传

可以啊,curl可以,>

首先

假如 远程服务器有这些文件php脚本和shell脚本(分析数据的脚本)是在目标服务器上

aphp

dataphp

datash

然后在a脚本里面运行shell命令,exec("cd ~/php/ && php /dataphp &");

这样php就会运行dataphp 可以在dataphp里面在运行sh脚本

或者直接在aphp里面运行sh脚本

然后把计算好的数据存入数据库

这样你就可以用>

大概了解没?

大哥 你看明白没啊  是要给远程发送shell命令 不是本地执行好吧?

远程动态输入命令?貌似不太安全啊~!

可以这样。aphpcmd=cd ~/ && sh datash

然后aphp里面这样写

exec("{$_GET["cmd"]}");

太危险,相当不推荐

可以做好命令,然后去执行

aphpcmd=a

然后aphp里面这样写

switch ($_GET["cmd"]}){

case "a":

  exec("cd ~/php/ && php /dataphp &");

break;

case "b":

  exec("cd ~/php/ && php /xxxxphp &");

break;

}

在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。用途 一般情况下: 使用用户的缺省凭证和环境执行 shell。shell 命令重新初始化用户的登录会话。当给出该命令时,就会重新设置进程的控制终端的端口特征,并取消对端口的所有访问。然后 shell 命令为用户把进程凭证和环境重新设置为缺省值,并执行用户的初始程序。根据调用进程的登录用户标识建立所有的凭证和环境。
"web" - 显然需要服务器开放web服务,"shell" - 取得对服务器某种程度上 *** 作权限。

webshell常常被称为匿名用户(入侵者)通过WEB服务端口对WEB服务器有某种程度上 *** 作的权限,由于其大多是以网页脚本的形式出现,也有人称之为网站后门工具。
webshell有什么作用?

一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。

另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB

脚本木马,目前比较流行的asp或php木马,也有基于NET的脚本木马。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13461512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-11
下一篇 2023-08-11

发表评论

登录后才能评论

评论列表(0条)

保存