小编bha*_*ash的帖子

Powershell脚本启动服务如果它已停止并等待一分钟并发送电子邮件通知

我是Powershell的新手,在学习阶段,我尝试创建一个脚本来执行自动化任务.此脚本无法正常工作.你能否回顾一下,给我一些帮助.

我的任务是,

我试图找出处于停止状态并尝试启动它的SQL服务(多个服务器中的多个SQL服务),等待一分钟完成服务启动并再次验证服务状态.如果它仍然停止状态我正在尝试发送电子邮件以设置人员进行操作.

你能否检查下面的代码并纠正错误,我试图找到它但无法做到

#Define servers & Services Variables
$Servers = GC "E:\Bhanu\SQLServer.txt"
$Services = GC "E:\Bhanu\SQLService.txt"

#Function Call
Function ServiceStatus ($Servers, $Services)
{
    foreach ($Server in $Servers)
    {
        foreach ($Service in $Services)
        {
            $Servicestatus = get-service -ComputerName $Server -Name $Service
            if ($Servicestatus.Status -eq "Stopped")
            {
                Start-service $Service          
                Start-Sleep -Seconds 60            
                $ServiceStatus1 = Get-Service -ComputerName $Server -Name $Service
                if ($Servicestatus1.Status -eq "Stopped")
                {            
                FuncMail -To “abc@gmail.com” -From “abc@gmail.com” -Subject $Server + $Service "fails to Start, Take immediate Action to avoid …
Run Code Online (Sandbox Code Playgroud)

sql-server powershell

6
推荐指数
1
解决办法
1659
查看次数

用于远程获取多个服务器的网站证书到期的 Powershell 脚本

我正在尝试创建一个脚本来远程获取多个服务器的网站的证书到期日期。我有一个适用于单个服务器的脚本(需要登录服务器并执行),我需要为多个服务器远程运行它。如何修改此脚本以远程执行多个服务器。请指教。

 $servers = get-content D:\Certificate.txt
$DaysToExpiration = 60 #change this once it's working 
$expirationDate = (Get-Date).AddDays($DaysToExpiration)

foreach ($server in $servers)
{

$sites = Get-Website | ? { $_.State -eq "Started" } | % { $_.Name }
$certs = Get-ChildItem IIS:SSLBindings | ? {
           $sites -contains $_.Sites.Value
         } | % { $_.Thumbprint }


Get-ChildItem CERT:LocalMachine/My | ? {
  $certs -contains $_.Thumbprint -and $_.NotAfter -lt $expirationDate
}
}
Run Code Online (Sandbox Code Playgroud)

powershell certificate renewal iis-7.5

1
推荐指数
2
解决办法
2万
查看次数

标签 统计

powershell ×2

certificate ×1

iis-7.5 ×1

renewal ×1

sql-server ×1