Условие тестового пути PS — код возврата ведение журнала

#powershell #cluster-computing #powershell-2.0 #powershell-3.0 #sysadmin

#powershell #кластерные вычисления #powershell-2.0 #powershell-3.0 #системный администратор

Вопрос:

У меня есть следующий скрипт, который содержит дефект: ЕСЛИ «$ fswmain» доступен, я хотел бы вернуть OK и остановить скрипт, скрипт работает нормально, но на самом деле независимо от статуса, даже если «$ fswmain» доступен, он будет продолжать устанавливать нового свидетеля общего доступа к файлу кворума сЗначение $ fswmain… Мне нужно остановиться, если «$ fswmain» отвечает на тестовый путь как True / valide

конфигурация файла: FSW_pathConf.txt

clustername=my CLuster

fswmain=\myserver01SQL-FSW1

Fswdr=\myserver02SQL-FSW2

сценарий PS:

 ### BEGIN OF Passing as Variables, the configuration values separated with '=' and Retrieved from the indicated TXT file:
Get-Content '.FSW_pathConf.txt' | Foreach-Object {
   $Vconfvalue = $_.Split('=')
   New-Variable -Name $Vconfvalue[0] -Value $Vconfvalue[1] }
### END OF Passing values as Variables
### Testing Each Path defined into configuration file
$ReadyFswpath = if(Test-Path $fswmain) { $fswmain }else{ $fswDr }
Write-Host "`r"
echo 'The Valid File Share Witness is:' $ReadyFswpath
Write-Host "`r"
### End of testing Each Path defined into configuration file
Write-Host "Now Setting up a New Location for File Share Witness: '$($ReadyFswpath)' On Cluster: '$($Clustername)'" -ForegroundColor Yellow
Write-Host "`r"
### As quorum file share witness is a cluster core ressource, we may need to switch the voting cluster type to node majority for being able to create a new File Share Witness
Set-ClusterQuorum -Cluster $ClusterName -NodeMajority
Write-Host "`r"
### Set a New Quorum File Share Witness location for the cluster
Set-ClusterQuorum -Cluster "$Clustername" -NodeAndFileShareMajority $ReadyFswpath
Write-Host "`r"
### Last Availablity check for new FSW location
Write-Host "Re-Checking New File Share Witness Availablity: '$($ReadyFswpath)' on Cluster: '$($Clustername)':" -ForegroundColor Yellow
Get-clusterresource -cluster $Clustername | where-object {$_.ResourceType -like "File Share Witness"} | get-clusterparameter -Name "sharepath" 

Может ли кто-нибудь мне помочь?

  • протоколирование всех этих действий в файл с отметкой даты и времени
  • при остановке скрипта «if (Test-Path $ fswmain)» >>> перезапускается как OK, только если возврат $ fwsmain завершается неудачей, затем выполняются следующие действия с «set-cluster», как описано в этом скрипте .

Большое вам спасибо.

С уважением, Уиллем

Комментарии:

1. [‘протоколирование всех этих действий в файл с отметкой даты и времени’], затем используйте командлеты Start-Transcript / Stop-Transcript. [‘с остановкой скрипта «if(Test-Path $fswmain)»] Для этого и предназначена условная логика. Если / То или попробуйте / поймайте. Смотрите файлы справки или ищите видео на Youtube по условной логике PowerShell, if / then, try / catch и т. Д. Для назидания.

2. спасибо, я попробую это!

Ответ №1:

Если я вас правильно понял, вы хотите остановиться, когда путь $fswmain доступен?

Тогда вам просто нужно использовать оператор return в вашем If-предложении.

 $ReadyFswpath = if (Test-Path $fswmain) { return 'OK' } else { $fswDr }