#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 }