我只是创建一个简单的PowerShell脚本来检查服务是否正在运行,如果没有,则发送电子邮件。 (这已经有效了。)
我想做的是拥有配置文件,我可以在其中设置一些属性,如邮件收件人,服务名称等等。
问题:我应该为配置文件选择哪种类型(有比.txt更好的方法吗?)? 这个问题的背景是,我不想在我的powershell脚本中解析txt文件来获取所有这些属性值。有没有办法在我的配置文件中声明这些属性,以便稍后在powershell中轻松获取并解决它们? (就像配置文件中设置的全局变量,可以在我的.ps1文件中检索;)
答案 0 :(得分:2)
我会创建配置的哈希表,并将这些设置存储在json文件中。您可以使用以下代码段转换哈希表:
$config = @{
"mail" = "test@test.com"
"service names" = @("srv1", "srv2")
}
$config | ConvertTo-Json | Out-File "c:\test.json"
使用以下方法将其转换回来:
$config = (gc "c:\test.json" -raw) | ConvertFrom-Json
现在,您可以使用$config.mail
答案 1 :(得分:2)
我建议使用xml。
创建XML文件,如下所示,
Setting.xml
<?xml version="1.0"?>
<Settings>
<EmailSettings>
<SMTPServer>smtp.server.net</SMTPServer>
<SMTPPort>25</SMTPPort>
<MailFrom>mail@from.net</MailFrom>
<MailTo>mail@to.net</MailTo>
</EmailSettings>
</Settings>
然后在您的脚本.ps1
[xml]$ConfigFile = Get-Content "your_path\Settings.xml"
$smtpsettings = @{
To = $ConfigFile.Settings.EmailSettings.MailTo
From = $ConfigFile.Settings.EmailSettings.MailFrom
Subject = "I am a subject"
SmtpServer = $ConfigFile.Settings.EmailSettings.SMTPServer
}