#powershell-3.0
#powershell-3.0
Вопрос:
Я безуспешно искал правильный ответ.
У меня есть командный файл, который выполняет сценарий PowerShell.
Пакетный файл — это;
PowerShell C:scriptsGetStatus.ps1
Работающий скрипт PowerShell — это;
Get-Service -Name svcUdpLogger -Computer Name server01 | Start-Service
Что я ищу, так это как мне передать server01 в качестве переменной в этот скрипт из командного файла.
В зависимости от того, остановилась ли серверная служба, этот пакетный файл будет запущен автоматически для перезапуска этой службы.
Я пытался использовать следующее;
param([string]$computername=)
Я продолжаю получать недопустимый аргумент.
Спасибо,
ОБНОВЛЕНИЕ — Я думаю, что решил проблему. Возможно, это неправильный способ сделать это, однако он работает таким образом;
PowerShell C:scriptsGetStatus.ps1 -ComputerName server01
Если есть более элегантный способ сделать это, я был бы признателен за ясность!
Спасибо,
Ответ №1:
Я думаю, проблема была в том, как вы вызывали скрипт.
Если вы хотите пофантазировать:
param([string]$computername)
if ($computername) {
Write-Host "Starting Service on: $computername"
try {
Get-Service -Name svcUdpLogger -ComputerName $computername -ErrorAction Stop | Start-Service -ErrorAction Stop
Write-Host "...Service Started"
} catch {
$ErrorMessage = $_.Exception.Message
Write-Host "...Error Occurred Starting Service: $ErrorMessage"
}
} else {
Write-Host "Computer Name Not Passed on the Command Line"
}
И вызвать его следующим образом:
PowerShell C:scriptsGetStatus.ps1 HostName
Комментарии:
1. Отлично! Спасибо. Я не представлял, что смогу написать сценарий PowerShell с кодировкой типа C # / Java. Это было очень полезно.