- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写 PowerShell 脚本来重新启动远程系统上的服务?是否可以根据脚本输出启动服务?例如,如果服务的状态返回“已停止”状态,则执行类似以下伪代码的操作...
if {service-status = Stopped | Get-Service -Name ServiceName | Start-Service}
这是我当前代码的示例(如果其中任何一个有意义的话):
# Display status of Sophos Services
$Computer1 = Read-Host -Prompt 'Enter the computer name to check Sophos Services'
Get-Service -DisplayName sop* -ComputerName $Computer1
# Service Stop
$Service1 = Read-Host -Prompt 'Enter the service needed to be restarted'
Echo "Stopping service"
Read-Host -Prompt "Press Enter to continue"
Get-Service -Name $Service1 -ComputerName $Computer1 | Stop-Service
# Service Stop
Echo "Starting service"
Read-Host -Prompt "Press Enter to continue"
Get-Service -Name $Service1 -ComputerName $Computer1 | Start-Service
如果能够让这个过程更加自动化那就太好了。希望这是有道理的。
谢谢...
最佳答案
您可以使用 Invoke-Command
通过 Powershell 远程处理(通过 WinRM)使用 Restart-Service
cmdlet 来执行此操作。请注意,虽然您可以使用管道通过Get-Service
获取服务并将其通过管道传输到Stop-Service
,Start- Service
,或Restart-Service
,这里并不是真正必要的,而且你无论如何也不能直接在远程服务器上调用它们:
$Computer1 = Read-Host -Prompt 'Enter the computer name to check Sophos Services'
$Service1 = Read-Host -Prompt 'Enter the service needed to be restarted'
Write-Output "Restarting service ${Service1} on ${Computer1}"
Read-Host -Prompt "Press Enter to continue"
# Restart the service on the remote computer
Invoke-Command -ComputerName $Computer1 -ArgumentList @{ Service1 = $Service1 } -ScriptBlock {
Restart-Service -Name $args.Service1 -Force
}
Invoke-Command
-ComputerName
- 运行命令的计算机/服务器的名称。默认情况下,您的用户帐户必须位于您要连接的服务器上的Administrators
组或Remote Management Users
组中。如有必要,您可以使用 -Credential
参数指定备用凭据。作为额外的好处,您可以传入一组计算机来一次性运行相同的 ScriptBlock
。
-ArgumentList
- 要传递给脚本的参数数组。当 ScriptBlock
在远程计算机上运行时,它无法解析您的本地变量。通常,您可以按 $args[0]
、$args[1]
等形式访问每个变量,按照变量传入的顺序进行。我喜欢使用一个技巧这是传递命名参数的 HashMap ,以便您可以以更易读的方式访问它们,就像我在下面的 ScriptBlock
中使用 $args.Service1
的方式一样。 p>
-ScriptBlock
- 这是您要执行的远程代码,最好放置在 ScriptBlock
对象中,该对象由两个大括号之间的代码表示 {}
。在本例中,我们在远程计算机上调用 Restart-Service
。
Restart-Service
Cmdlet我之前提到过,您的用户至少需要属于远程服务器上的Remote Management Users
组,才能使用 Powershell 远程处理进行连接。虽然这是事实,但在大多数环境中,您需要成为同一远程服务器上的 Administrators
组的成员才能管理服务,包括启动和停止服务。因此,为了使其端到端工作,您需要成为要重新启动服务的远程机器的管理员。
关于windows - 远程系统服务重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51144811/
我有这个代码: System.err.print("number of terms = "); System.out.println(allTerms.size()); System.err
我有以下问题:在操作系统是 Linux 的情况下和在操作系统是 MacOs 的情况下,我必须执行不同的操作。 所以我创建了以下 Ant 脚本目标: /u
我正在调用 system("bash ../tools/bashScript\"This is an argument!\"&"),然后我正在调用 close(socketFD) 直接在 system
使用最初生成的随机元素来约束随机数组的连续元素是否有效。 例如:我想生成一组 10 个 addr、size 对来模拟典型的内存分配例程并具有如下类: class abc; rand bit[5:0
我正在创建一个必须使用system(const char*)函数来完成一些“繁重工作”的应用程序,并且我需要能够为用户提供粗略的进度百分比。例如,如果操作系统正在为您移动文件,它会为您提供一个进度条,
我即将编写一些项目经理、开发人员和业务分析师会使用的标准/指南和模板。目标是更好地理解正在开发或已经开发的解决方案。 其中一部分是提供有关记录解决方案的标准/指南。例如。记录解决/满足业务案例/用户需
在开发使用压缩磁盘索引或磁盘文件的应用程序时,其中部分索引或文件被重复访问(为了论证,让我们说一些类似于 Zipfian 分布的东西),我想知道什么时候足够/更好地依赖操作系统级缓存(例如,Debia
我们编写了一个 powershell 脚本,用于处理来自内部系统的图像并将其发送到另一个系统。现在,业务的另一部分希望加入其中,对数据进行自己的处理,并将其推送到另一个系统。打听了一下,公司周围有几个
我正在尝试朗姆酒我的应用程序,但我收到以下错误:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
所以我在其他程序中没有收到此错误,但我在这个程序中收到了它。 这个程序是一个我没有收到错误的示例。 #include int main() { system("pause"); } // en
我在 c# System.URI.FormatExption 中遇到问题 为了清楚起见,我使用的是 Segseuil 的 Matlab 方法,并且它返回一个图片路径 result。我想为其他用户保存此
我正在尝试像这样设置文本框的背景色: txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 它不喜欢它,因为它要我在前面添加系统,例如: txtCo
请帮助我解决 System.StackOverflowException我想用 .aspx 将记录写入数据库我使用 4 层架构来实现这一切都正常但是当我编译页面然后它显示要插入数据的字段时,当我将数据
我使用了一些通常由系统调用的API。 因此,我将 android:sharedUserId="android.uid.system" 添加到 manifest.xml, 并使用来自 GIT 的 And
我正在尝试创建一个小型应用程序,它需要对/system 文件夹进行读/写访问(它正在尝试删除一个文件,并创建一个新文件来代替它)。我可以使用 adb 毫无问题地重新挂载该文件夹,如果我这样做,我的应用
我想从没有 su 的系统 priv-app 将/system 重新挂载为 RW。如何以编程方式执行此操作?只会用 Runtime.getruntime().exec() 执行一个 shell 命令吗
我正在尝试制作一个带有登录系统的程序我对此很陌生,但我已经连续工作 8 个小时试图解决这个问题。这是我得到的错误代码 + ServerVersion 'con.ServerVersion' threw
当我“构建并运行”Code::Blocks 中的程序时,它运行得非常好!但是当我从“/bin”文件夹手动运行它时,当它试图用 system() 调用“temp.bat”时,它会重置。这是为什么?它没有
我想使用 system/pipe 命令来执行具有特殊字符的命令。下面是示例代码。通过系统/管道执行命令后,它通过改变特殊字符来改变命令。我很惊讶地看到系统命令正在更改作为命令传递的文本。 run(ch
我是一名优秀的程序员,十分优秀!