远程推送脚本,创建任务计划

  1 #############################脚本功能及说明#######################################
  2 #该脚本用来在各台服务器上运行创建任务计划,可以将位于本地的脚本拷贝到远程服务器
  3 #通过查看Task_Result.txt文件可以查看任务计划的创建结果,如果任务计划创建失败,控制台会有输出
  4 #创建时间:2014-10-21
  5
  6 #################################################定义函数##############################################################
  7 #定义函数CCopy,比较远程目录下的文件是否与本地一致(根据文件名称和文件修改时间进行比较),如果不一致则进行拷贝(远程服务器已存在文件不会影响)
  8 Function CCopy($CLocalPath,$CRemotePath)
  9    {
 10     $ERPScripts_Local = Gci -Path $CLocalPath -ErrorAction SilentlyContinue
 11     If ($? -eq $true)
 12        {
 13         If (!(Test-Path -Path $CRemotePath))
 14            {
 15              $Null = New-Item -Path $CRemotePath -ItemType Directory
 16              Copy-Item $CLocalPath\* $CRemotePath -Force
 17             }
 18         Else
 19            {
 20             Foreach ($ERPScript_Local in $ERPScripts_Local)
 21                {
 22                 $ERPScript_RemotePath = Join-Path $ScriptFolder_Remote_Path $ERPScript_Local.Name
 23                 If (!(Test-Path -Path $ERPScript_RemotePath))
 24                    {Copy-Item $ERPScript_Local.FullName $ScriptFolder_Remote_Path -Force}
 25                 Else
 26                    {
 27                     $ERPScript_Remote = Gci -Path $ERPScript_RemotePath -ErrorAction SilentlyContinue
 28                     If ($? -eq $true)
 29                        {
 30                         If ($ERPScript_Local.LastWriteTime -ne $ERPScript_Remote.LastWriteTime)
 31                             {Copy-Item $ERPScript_Local.FullName $ScriptFolder_Remote_Path -Force}
 32                         }
 33                     Else {"Failed. Can not find Remote directory."}
 34                    }
 35                }
 36            }
 37        }
 38     Else {"Failed. Can not find local directory."}
 39
 40       }
 41
 42
 43 #######################################定义变量#########################################################
 44 $CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf(‘\‘)+1)
 45 #定义服务器列表
 46 $server_list = "server_list.txt"
 47 #定义任务计划输出结果保存文件
 48 $task_resultfile = "Task_Result.txt"
 49 #定义本地服务器脚本存放文件夹
 50 $Scriptfolder_Local =  "DNSCheck"
 51 #定义脚本名称
 52 $scriptName = "DNSCheck.ps1"
 53 #定义远程服务器脚本存放路径
 54 $ScriptFolder_Remote = "D:\Scripts_Production"
 55 #定义使用到的用户名和密码
 56 $UserName = "administrator"
 57
 58 #定义任务计划的名称、启动时间、启动日期和启动脚本路径
 59 $TaskWatchName = "DNSCheck"
 60 $TaskWatchtime = "00:00"
 61 $TaskWatchDate = "2014/10/30"
 62 $TaskWatchScriptPath0 = Join-Path $ScriptFolder_Remote $scriptName
 63 $TaskWatchScriptPath = "%windir%\system32\WindowsPowerShell\v1.0\powershell.exe $TaskWatchScriptPath0"
 64
 65 #######脚本开始###############################################
 66 #删除已有的IPC会话连接
 67 $Null = NET USE * /del /y
 68 $servers = gc $server_list
 69 foreach ($server in $servers)
 70     {
 71      If ( Test-Connection $server  -Count 1 -Quiet )
 72         {
 73          Write-Host $server -ForegroundColor green
 74          #获取远程计算机的密码
 75          $UserPass = $serverpass
 76          $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force
 77          $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
 78          cmd /c  "NET USE \\$Server $UserPass /user:$UserName >nul 2>nul"
 79          If ($Lastexitcode -eq 0)
 80             {
 81              #将脚本拷贝到远程计算机
 82              $Script_Path_Local = $CurrentPath + $Scriptfolder_Local
 83              $ScriptFolder_Remote_Path = "\\" + $Server  + "\" + $ScriptFolder_Remote.Split(":")[0] + "$" + $ScriptFolder_Remote.Split(":")[1]
 84              CCopy $Script_Path_Local $ScriptFolder_Remote_Path
 85              #创建任务计划
 86              $Tresult =  invoke-command -ComputerName $server -Credential $cred -ScriptBlock {param($TaskWatchName,$UserName,$UserPass,$TaskWatchtime,$TaskWatchDate,$TaskWatchScriptPath,$server)
 87              $Taskq = cmd /c "chcp 437 >null && schtasks /query" |select-string $TaskWatchName  -Encoding default -quiet
 88              If ($Taskq -eq "true")
 89                   {$Null = schtasks /change /tn $TaskWatchName /ru $UserName /rp $UserPass /st $TaskWatchtime /sd $TaskWatchDate /tr $TaskWatchScriptPath}
 90              Else {$Null = schtasks /create /tn $TaskWatchName /sc minute /mo 1 /ru $UserName /rp $UserPass /st $TaskWatchtime /sd $TaskWatchDate /tr $TaskWatchScriptPath}
 91              $result = cmd /c "chcp 437 >null && schtasks /query" |select-string $TaskWatchName  -Encoding default
 92              If ($result -ne $null)
 93                   {$server + " " + $result.Line}
 94              Else {"$server $TaskWatchName Task Created Failed"}
 95                                                                   } -ArgumentList $TaskWatchName,$UserName,$UserPass,$TaskWatchtime,$TaskWatchDate,$TaskWatchScriptPath,$server #|Tee -Variable TmpVarLog
 96              $Tresult |Out-File $task_resultfile -append
 97              #03包含逗号,08包含Ready
 98              If (!($Tresult.contains(",") -or $Tresult.contains("Ready")))
 99                 { Write-Host $Tresult -ForegroundColor Red}
100
101             }
102          Else
103             {
104              Write-Host "$server 不符合密码规则"  -ForegroundColor Red
105              $server + "不符合密码规则" |Out-File $task_resultfile -Append
106             }
107
108         }
109      Else
110         {
111          Write-Host "无法Ping通"  -ForegroundColor Red
112          $server + "无法Ping通" |Out-File $task_resultfile -Append
113         }
114     }
115
116
117
118 $Null = NET USE * /del /y
119
120 "任务计划创建完成!"
121 #cmd /c pause
时间: 2024-10-21 05:57:47

远程推送脚本,创建任务计划的相关文章

iOS-项目远程推送1

一.苹果开发者账号分类 从价格分类: 1.$99 (1).个人账号 (2).公司账号:需要法人信息,营业执照,邓白氏编码 使用:用于上传App到AppStore 2.$299 企业账号:需要邓白氏编码 使用:用于公司内部测试,不用于盈利 3.免费 (1).个人申请账号:仅可以用于真机调试 (2).院校账号:仅可以用于真机调试,通过苹果认证的高校,可以使用 二.关于账号的使用 1.证书 (1).测试证书 每个账号最多能创建2个,生成证书需要使用创建CSR文件[1.通过钥匙串生成 2.文件包含:当前

IOS远程推送证书的制作步骤

今天还在看环信的使用方法,在环信的官网上发现了这组制作远程推送证书的一组图片,正好之前本人没有写过关于远程证书的笔记,这里要写一篇博文,整理一下远程推送证书的制作流程,尽管如此,本篇博文依然是作者原创,方便自己学习.参考使用.(声明本文的图片全部来自网络,是为了节省时间) (1)打开开发者中心,并登陆自己的开发者账号(或者公司的开发者账号) (2)从Member Center进入Certificates, Identifiers & Profiles (3)选择要制作的证书为推送证书 对于开发环

APNs 远程推送

APNs 远程推送 生成推送证书     1.登陆开发者中心: https://developer.apple.com     2.点开 certificates identifiers 和 proversionprofiles 里面     3.创建APPID. 勾选 push notification servers服务     4.搜索刚才创建的APPID, 点击edit, 配置证书, 下载双击    5.证书创建完成, 钥匙链内右键导出p12     1.App key     2.真机

IOS8下的远程推送(转载)

原文地址:http://blog.sina.com.cn/s/blog_71715bf80101615c.html 昨天做了一下远程推送,今天写下来,分享给需要的人.参考了很多篇文章,或许是iOS8的改动,没有一篇可以完整的看下来,所以打算自己写一篇. 后台我也写了,用的是SAE,PHP代码,很简单,调用SAE封装好的一个类就可以向APNS发推送信息. 首先,来说一下苹果的推送机制.顾名思义,推送,是指服务器向客户端发送消息,那么在iOS中,应用是被后台挂起的,并不能一直连接网络,那么服务器怎么

iOS开发之远程推送

远程推送应用配置过程 1.创建支持远程推送功能的App 2.申请开发者证书,并选中刚刚创建的App ID 3.下载CER文件,并导入钥匙串管理 4.申请发布证书,并选中刚刚创建的App ID 5.下载CER文件,并导入钥匙串管理 6.检查App ID,确认证书已经指定 远程推送应用程序开发过程 1.新建应用程序 2.指定AppID,在developer.apple.com上设置AppID

iOS开发中的远程推送实现(最新,支持iOS9)

我的个人项目<丁丁印记>中加入了远程推送功能,按照操作说明去做还是比较容易实现的,但是学的不够不系统,因此这篇文章希望总结一下最新的iOS推送功能,因为iOS8之后的推送和致之前的版本是有所不同的,也希望想能帮助到需要的朋友.这篇文章将从零开始,向大家介绍远程推送功能的原理和使用. 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services). 为什么程序中需要远程推送功能 1.传统

IOS远程推送

一.关于推送通知 推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能.是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的.一般说来,当要显示消息或下载数据的时候,通知是由远程服务器(程序的提供者)发送,然后通过苹果的推送通知服务(Apple Push Notification Service,简称apns)推送到设备的程序上. 推送的新消息可能是一条信息.一项即将到期的日程或是一份远程服务器上的新数据.在系统上展现的时候,可以显示警告信息或

IOS测试,远程推送证书

程序上传:准备工作证书创建流程 1:证书:证书用来为我们的应用程序签名,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的.证书的创建过程: 登陆开发者中心 点击Certificates(证书)该项,进入下面的界面 点击Certificates(证书)进入 看到左边栏有一个Certificates(证书)一项,我们发现该项中有Developerment和Production两个类型,其中Developerment类型的证书用于开发使用(比如我们的真机测试),Prod

iOS注册远程推送消息证书后提示此证书签发者无效的解决办法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们在编写关于远程推送消息的App时需要注册一个相关的证书,我们可以到Apple开发网站的Certificates, Identifiers & Profiles页面首先创建一个App ID. 其中进入Push Notifications选项,并且在其子项Development SSL Certificate中选择创建证书(因为该证书是调试用的,所以在Deve