powersheel远程连接方法操作

powersheel远程连接密码加密连接高级玩法

ConvertTo-SecureStringConvertFrom-SecureString 命令都支持选项 -Key。在处理密码时通过使用 Key 选项可以提供额外的安全性,并且允许在不同的环境中使用密码文件。

先生成 32 位的 Key 并保存在文件 aes.key 中:

    $keyFile = "C:\powersheel\aes.key"  #加密的key准备放在这个D盘,最好放在一个文件夹里面
    $key = New-Object Byte[] 32
    [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key)
    $key | out-file $keyFile

使用 Key 生成并保存密码文件:

    Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString -key $key | Out-File "C:\powersheel\pwd.txt"

使用密码文件创建和 Key 文件创建 Credential 信息:

    $userName = "YourUserName"
    $passwdFile = "C:\powersheel\pwd.txt"
    $keyFile = "C:\powersheel\aes.key"
    $key = Get-Content $keyFile
    $Cred = New-Object -TypeName System.Management.Automation.PSCredential `
                       -ArgumentList $userName, (Get-Content $passwdFile | ConvertTo-SecureString -Key $key)

通过这种方法,把 pwd.txtaes.key 文件拷贝到其它的机器上也是可以工作的。但是我们需要额外维护一个 key 文件的安全,这一般通过设置文件的访问权限就可以了。

以上是将密码通过32位的key加密到文件里面,下面的第一个远程连接会用到

第1种方法远程连接(密码加密):

    $userName = "administrator"
    $passwdFile = "C:\powersheel\pwd.txt"
    $keyFile = "C:\powersheel\AES.key"
    $key = Get-Content $keyFile
    $cred = New-Object -TypeName System.Management.Automation.PSCredential
                       -ArgumentList $userName, (Get-Content $passwdFile | ConvertTo-SecureString -Key $key)
    $remoteServer='www.bai.com'

    #连接方法
    function connRemoteSever {
        #连接远程服务器
        Param ($remoteServer,$cred)
        #$passwordSecure = ConvertTo-SecureString $pwd -AsPlainText -Force
        #$cred = New-Object pscredential($userName, $passwordSecure)
        Write-Host '-----------powersheel默认Port是5985、5986-----------'
        $mySession = New-PSSession -ComputerName $remoteServer -Port 55985  -Credential $cred
        return $mySession
    }

    #连接到远程服务器
        $webSession=connRemoteSever  $remoteServer  $cred

        Invoke-Command -Session $webSession -ScriptBlock {

                dir d:
                Write-Host '-----------1.在覆盖网站内容前,先停止网站-----------'
                #Import-Module WebAdministration; Stop-WebAppPool -Name "$appPoolName"
                #Import-Module WebAdministration; Stop-WebSite -Name "$appWebSiteName"

                Write-Host '-----------2.备份IIS中绩效的网站-----------'
                #Copy-Item -Path "D:\web\kpi_dev" "D:\web\Backup\kpi_dev_$backtime" -Recurse -Force

                Write-Host '-----------3.删除IIS绩效后端-----------'
                #Remove-Item -Path $DelFilePath -Recurse -Force

                Write-Host '-----------4.复制最新绩效后端到IIS发布的文件夹-----------'
                #Copy-Item -Path "D:\web\WebFTP\publish_kpi_BackEnd_dev\$banben\*" "D:\web\kpi_dev\BackEnd\" -Recurse -Force

                Write-Host '-----------5.复制web.config到IIS发布的文件夹-----------'
                #Copy-Item -Path "D:\web\kpi_dev\web.config" "D:\web\kpi_dev\BackEnd\" -Recurse -Force

                Write-Host '-----------6.启动网站-----------'
                #Import-Module WebAdministration; Start-WebAppPool -Name "$appPoolName"
                #Import-Module WebAdministration; Start-WebSite -Name "$appWebSiteName"

       }

第2种方法远程连接(密码不加密):

$userName = 'opsadmin'
$pwd = 'ywX*'
$remoteServer='192.168.0.100'

function connRemoteSever {
    # 连接远程服务器
    Param ($userName,$pwd,$remoteServer,$port) #参数

      $passwordSecure = ConvertTo-SecureString $pwd -AsPlainText -Force
        $cred = New-Object pscredential($userName, $passwordSecure)
        $mySession = New-PSSession -ComputerName $remoteServer -Port 5985  -Credential $cred
        return $mySession
}

# 连接到远程服务器
$webSession=connRemoteSever $pwd $userName $remoteServer

$banben='V'+$env:BUILD_NUMBER  #这边是在windows中的jenkins中使用到的
$backtime=Get-Date -Format 'yyyy_M_d_Hms'
$DelFilePath='D:\web\kpi_dev\BackEnd\*'
$DelFileExcludePath='D:\web\kpi_dev\BackEnd\wwwroot*'
$appPoolName='kpi_dev'
$appWebSiteName='kpi_dev'

Invoke-Command -Session $webSession -ScriptBlock {
  param($appPoolName,$appWebSiteName,$backtime,$DelFilePath,$banben)

#以下都是一些操作都是一些基本操作命令,大家有用到的话借鉴下
dir d:
Write-Host '-----------1.在覆盖网站内容前,先停止网站-----------'
#Import-Module WebAdministration; Stop-WebAppPool -Name "$appPoolName"
#Import-Module WebAdministration; Stop-WebSite -Name "$appWebSiteName"

Write-Host '-----------2.备份IIS中绩效的网站-----------'
#Copy-Item -Path "D:\web\kpi_dev" "D:\web\Backup\kpi_dev_$backtime" -Recurse -Force

Write-Host '-----------3.删除D:\web\kpi_dev\BackEnd 文件夹下除了wwwroot文件夹,其他的全删除-----------'
#Remove-Item -Path $DelFilePath -Recurse -Force

Get-ChildItem -Path  $DelFilePath -Recurse -exclude  wwwroot | Select -ExpandProperty FullName |
Where {$_ -notlike $DelFileExcludePath} |
sort length -Descending |
Remove-Item -force

Write-Host '-----------4.复制最新绩效后端到IIS发布的文件夹-----------'
#Copy-Item -Path "D:\web\WebFTP\publish_kpi_BackEnd_dev\$banben\*" "D:\web\kpi_dev\BackEnd\" -Recurse -Force

Write-Host '-----------5.复制web.config到IIS发布的文件夹-----------'
#Copy-Item -Path "D:\web\kpi_dev\web.config" "D:\web\kpi_dev\BackEnd\" -Recurse -Force

Write-Host '-----------6.启动网站-----------'
#Import-Module WebAdministration; Start-WebAppPool -Name "$appPoolName"
#Import-Module WebAdministration; Start-WebSite -Name "$appWebSiteName"

} -ArgumentList $appPoolName,$appWebSiteName,$backtime,$DelFilePath,$banben

第3种方法远程连接:

$Username = 'opsadmin' #远程电脑的用户名
$Password = 'ywX*^R'   #远程电脑的密码
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
Invoke-Command -ComputerName 192.168.0.100 -Port 5985 -ScriptBlock {

   dir D:\web\Backup   #查看当前远程服务器这个文件夹下得目录列表情况

  } -credential $Cred

原文地址:https://www.cnblogs.com/jbps/p/10348270.html

时间: 2024-10-09 13:14:53

powersheel远程连接方法操作的相关文章

powersheel远程连接遇到的坑

powersheel远程连接密码加密连接高级玩法 1.ConvertTo-SecureString 和 ConvertFrom-SecureString 命令都支持选项 -Key.在处理密码时通过使用 Key 选项可以提供额外的安全性,并且允许在不同的环境中使用密码文件. 先生成 32 位的 Key 并保存在文件 aes.key 中: $keyFile = "D:\aes.key" $key = New-Object Byte[] 32 [Security.Cryptography.R

基于Git项目管理客户端SourceTree的免注册安装及远程连接方法

作为程序员,不可避免的要在github上查询代码,而在企业项目中,为了使得项目好管理需要使用项目管理客户端,所以接下来详细讲解一下基于git的sourceTree在windows系统下的安装及与GitHub上的账号进行远程连接同步更新的过程. 由于sourceTree的安装过程中有内嵌git的安装,所以我们不需要单独到git的官方网站上去下载安装git,直接通过sourceTree的安装来安装git. 一.sourcetree的免注册安装过程  首先,下载windows版本的sourceTree

Mysql开启远程连接方法

解决MySQL不允许从远程访问的方法 开启 MySQL 的远程登陆帐号有两大步: 1.确定服务器上的防火墙没有阻止 3306 端口. MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的. 如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号. 如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询. 2.增加允许远程连接 MySQL 用户并授权. 1)首先以 r

AIX加入能telnet远程连接方法的帐户

AIX 加入该账户可以使用命令mkuser 和 SMIT 两种方法,这里有SMIT方式 1.采用root 帐户登录AIX 2.输入 smitty user 3.选择Add a User 4.输入"User Name"  "HOME directory"  按回车创建用户 输入 #finger test  能够查看用户创建情况 5. 为新创建的用户 创建password 6.此时建的用户是没有权限登录的,须要给该账号创建远程登录权限 设置方法是编辑/etc/secur

远程连接mysql 授权方法详解

今在服务器上有mysql数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,接下来为您详细介绍 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY

MySQL远程连接时出现10061以及1045错误时的解决方法

以前对于MySQL数据库的管理基本都是在本地,今天了解到一个比较轻便,不需安装,直接解压可用的图形界面管理工具HeidiSQL(下载地址:链接:http://pan.baidu.com/s/1nvuP2Et 密码:vry9),界面非常简洁. 1)解决10061问题 本人在按照提示进行远程连接Linux系统下的MySQL数据库时,首先遇到的是下面的问题: 图1: '10061'问题 于是乎,按照提示的错误代码查找资料,网上很多平台都说是MySQL的权限问题,需要对root用户赋予足够权限,能够允许

【转】通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法

错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题 Navicat for mysql 1130错误 用Navicat连接远程MYSQL,提示如下错误,我以为是自己的防火墙问题,但是关了,依然不行. 我认为这段英文,有点误导,让人感觉是自己这边出了问题. 看解决方法吧 ERROR 1130: Host '192.168.1.3' is n

MySQL数据库远程连接开启方法

第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL>

Linux远程连接图形界面的几种方法

1.利用Xmanager,linux启用XDMCP协议(可直接修改配置文件,也 可以采用在Xshell中运行gdmconfig或gdmsetup,选择XDMCP选项卡,勾选启动XDMCP即可),Xbrowser即可发现 linux主机, 以图形化方式访问linux. #vim /usr/share/gdm/defaults.conf     --编辑这个文件,更改配置成如下正确结 AllowRoot=true AllowRemoteRoot=true Enable=true 更改完成后,重启gd