azure - 使用 powershell 在 Azure VM 上启动和停止 Windows 服务
问题描述
使用 powershell,我需要执行以下步骤。
1. 登录 Azure 帐户。
2. 从镜像创建一个虚拟机。
3. 镜像中有windows服务。所以当我们创建VM的时候,那个windows服务已经在上面运行了。停止那个服务。
4. 将一些二进制文件复制到 VM 中的特定文件夹中。
5. 再次启动服务。
在所有这些中,我能够完成 1 和 2 步。而且我找不到其他步骤的任何相关程序。下面是我用来做 1 和 2 的脚本。
Login-AzureRMAccount
$UserName = "username@organization.com"
$Password = ConvertTo-SecureString "password" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)
New-AzureRmVm `
-ResourceGroupName "RGN" `
-Name "VMName" `
-ImageName "ImageName" `
-Location "West US" `
-Credential $psCred
所以任何人都可以帮助我或指导我如何完成其余步骤。
在此先感谢您的时间。
编辑:停止服务的命令是
Stop-Service -Name "CPS Dev UniSimServices" -Force
但是,如果我登录到 VM 并运行此命令,这将有效。我想从远程机器本身通过powershell连接到新创建的VM(不登录),然后停止服务。我怎样才能做到这一点?
解决方案
您可以使用扩展与 VM 交互,而无需连接到它。您可以将 PowerShell 命令与自定义脚本一起使用:
Set-AzureRmVMExtension -ResourceGroupName "myResourceGroupAutomate" `
-ExtensionName "IIS" `
-VMName "myVM" `
-Location "EastUS" `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.8 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
更新
如果您真的想为扩展使用自定义脚本,可以使用如下命令:
Set-AzureRmVMCustomScriptExtension -ResourceGroupName myResourceGroup `
-VMName myVM `
-Location myLocation `
-FileUri myURL `
-Run 'myScript.ps1' `
-Name DemoScriptExtension
有关更多详细信息,请参阅Set-AzureRmVMCustomScriptExtension。
推荐阅读
- powershell - 无法使用字符串在 PowerShell 中设置别名
- php - MYSQL查询海量泵
- python - Python:将矩阵转换为排列表
- python - 如何表示 unittest.mock.call().__str__()
- python - Numpy:如何在 numpy 中选择项目并为其赋值
- javascript - 如何刷新与我在 mvc 中的第一个下拉列表相关的第二个下拉列表的新数据
- woocommerce - 每个产品统一运费 WooCommerce
- c++ - 关于在需要常量表达式的上下文中使用的泛左值常量表达式的问题
- html - 如何将视频导入我的 HTML 文件?我只知道怎么加GIF和IMG
- python - 如何在实时视频中将 python 代码从 2.5 加速到 30 FPS 或更高?