博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
powersheel远程连接方法操作
阅读量:5878 次
发布时间:2019-06-19

本文共 5556 字,大约阅读时间需要 18 分钟。

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 -ForceWrite-Host '-----------3.删除D:\web\kpi_dev\BackEnd 文件夹下除了wwwroot文件夹,其他的全删除-----------'#Remove-Item -Path $DelFilePath -Recurse -ForceGet-ChildItem -Path  $DelFilePath -Recurse -exclude  wwwroot | Select -ExpandProperty FullName |Where {$_ -notlike $DelFileExcludePath} |sort length -Descending |Remove-Item -forceWrite-Host '-----------4.复制最新绩效后端到IIS发布的文件夹-----------'#Copy-Item -Path "D:\web\WebFTP\publish_kpi_BackEnd_dev\$banben\*" "D:\web\kpi_dev\BackEnd\" -Recurse -ForceWrite-Host '-----------5.复制web.config到IIS发布的文件夹-----------'#Copy-Item -Path "D:\web\kpi_dev\web.config" "D:\web\kpi_dev\BackEnd\" -Recurse -ForceWrite-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,$passInvoke-Command -ComputerName 192.168.0.100 -Port 5985 -ScriptBlock {   dir D:\web\Backup   #查看当前远程服务器这个文件夹下得目录列表情况  } -credential $Cred

转载于:https://www.cnblogs.com/jbps/p/10348270.html

你可能感兴趣的文章
runloop与线程的关系
查看>>
[Bzoj2246]迷宫探险(概率+DP)
查看>>
[译] 感受 4px 基线网格带来的便利
查看>>
oracle常用函数
查看>>
MYBATIS
查看>>
详解消息队列的设计与使用
查看>>
iOS 项目优化
查看>>
筛选出sql 查询结果中 不包含某个字符
查看>>
8进制与16进制
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
mybatis:Invalid bound statement (not found)
查看>>
电脑中毒的现象
查看>>
django表单操作之django.forms
查看>>
webSocket vnc rfb
查看>>
列表推导式 生成器表达式
查看>>
控制子窗口的高度
查看>>
Linux 防火墙iptables命令详解
查看>>
打造笔记本电脑基地重庆要当全球“老大”
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
《JAVA与模式》之简单工厂模式
查看>>