PowerShell升级远程机器的windows service的脚本(最终版)
2011-04-13 15:50
405 查看
$s = Get-WmiObject -computer 10.10.zz.zz Win32_Service -Filter "Name='XXX'" -credential (Get-Credential XXXXXX\fanwx)
$s.stopservice()
copy-item D:\.....\aaa.exe -destination \\10.10.zz.zz\c$\vvv\
copy-item D:\.....\aaa.pdb -destination \\10.10.zz.zz\c$\vvv\
$s.startservice()
最让人奔溃的是每次执行这段脚本,Get-Credential都会导致弹出要求输入密码的提示框。。。
哪位高手知道如何让这段脚本不再弹?
在windows credential vault里有这个ip的了。
不提sc,太慢。。。无法忍受。。。
-------------------------------------------牛逼的分割线---------------------------------------------------
该问题已解决 :
$cred = New-Object System.Management.Automation.PsCredential "fanweixiao", (Get-Content c:\my.cred | ConvertTo-SecureString)
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
if($s.state -eq "Running"){
Write-Host "Service is Running, begin to stop it"
$s.stopservice()
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
while($s.state -ne "Stopped"){
Write-Host "Waiting Stop...State=" $s.state
Start-Sleep -Seconds 1
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
}
Write-Host "Stopped"
}
copy-item D:\GitRepo\src\base\ServiceName\ServiceName\bin\Debug\ServiceName.exe -destination \\IPAddress\c$\PROJ\ServiceName\
copy-item D:\GitRepo\src\base\ServiceName\ServiceName\bin\Debug\ServiceName.pdb -destination \\IPAddress\c$\PROJ\ServiceName\
$s.startservice()
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
$s.state
while($s.state -ne "Running"){
Write-Host "Waiting Start...Current state is " $s.state
Start-Sleep -Seconds 1
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
}
Write-Host "Service Started!"
其中,这个cred文件可以这样生成:
$cred = Get-Credential "fanweixiao"
$cred.Password | ConvertFrom-SecureString | Set-Content c:\my.cred
感谢薛强, 孟大~
$s.stopservice()
copy-item D:\.....\aaa.exe -destination \\10.10.zz.zz\c$\vvv\
copy-item D:\.....\aaa.pdb -destination \\10.10.zz.zz\c$\vvv\
$s.startservice()
最让人奔溃的是每次执行这段脚本,Get-Credential都会导致弹出要求输入密码的提示框。。。
哪位高手知道如何让这段脚本不再弹?
在windows credential vault里有这个ip的了。
不提sc,太慢。。。无法忍受。。。
-------------------------------------------牛逼的分割线---------------------------------------------------
该问题已解决 :
$cred = New-Object System.Management.Automation.PsCredential "fanweixiao", (Get-Content c:\my.cred | ConvertTo-SecureString)
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
if($s.state -eq "Running"){
Write-Host "Service is Running, begin to stop it"
$s.stopservice()
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
while($s.state -ne "Stopped"){
Write-Host "Waiting Stop...State=" $s.state
Start-Sleep -Seconds 1
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
}
Write-Host "Stopped"
}
copy-item D:\GitRepo\src\base\ServiceName\ServiceName\bin\Debug\ServiceName.exe -destination \\IPAddress\c$\PROJ\ServiceName\
copy-item D:\GitRepo\src\base\ServiceName\ServiceName\bin\Debug\ServiceName.pdb -destination \\IPAddress\c$\PROJ\ServiceName\
$s.startservice()
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
$s.state
while($s.state -ne "Running"){
Write-Host "Waiting Start...Current state is " $s.state
Start-Sleep -Seconds 1
$s = Get-WmiObject -computer IPAddress Win32_Service -Filter "Name='ServiceName'" -credential $cred
}
Write-Host "Service Started!"
其中,这个cred文件可以这样生成:
$cred = Get-Credential "fanweixiao"
$cred.Password | ConvertFrom-SecureString | Set-Content c:\my.cred
感谢薛强, 孟大~
相关文章推荐
- 利用putty在windows上通过脚本在远程Linux机器执行指令
- [5月29日的脚本] 检索远程机器上所有本地用户的账户信息 (PowerShell)
- saltstack远程操作WINDOWS的POWERSHELL脚本
- 在远程机器上跑PowerShell脚本
- 一键帮你复制多个文件到多个机器——PowerShell小脚本(内附PS远程执行命令问题解析)
- Windows脚本初探之PowerShell流程控制if
- 升级sp3后出现"一个问题阻止windows正确检测此机器许可证"解决方案
- 使用PowerShell关闭远程机器上的进程
- 设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封
- 如何在运行 Windows XP Service Pack 2 的系统上使用脚本以编程方式打开端口供 SQL Server 使用
- 【分析】Windows Workstation Service远程溢出的分析
- 【技术分享】Windows环境渗透技巧之PowerShell Payload的远程执行
- 在windows机器上远程登录ubuntu
- 用python脚本执行ssh远程登录多台机器
- 自动备份远程机器的脚本
- 如何使用windows命令行(cmd)脚本远程下载文件
- Vshell+SftpDrive实现Windows远程机器文件系统映射到本地文件系统
- [PowerShell]- 通过WMI连接远程机器并不提示输入密码
- nagios通过nrpe远程执行linux脚本,通过nsclient++远程执行windows脚本
- 如何在windows计划中调用备份sharepoint2010网站集的powershell脚本