我需要告诉我,我在 Powershell 中编程的时间很短,而且有一些基本的东西我暂时不能很好地处理。
所以我要做的是将数据预先输入到 XML 文件中以使用这些数据并将 $var 填充到 powershell 中,然后使用这些 var 来更改 Active Directory 属性。对于更改 AD 属性我很好,但是通过调用 XML 文件来填充我的 var 的自动化过程根本不起作用。我想我没有使用 got 方法,这就是我寻求帮助的原因。
这是我的 XML 文件(我只声明了两个站点)
<Location>
<Site>
<City>Alma</City>
<Street>333 Pont Champlain Street</Street>
<POBox></POBox>
<State>Ontario</State>
<Zip>G1Q 1Q9</Zip>
<Country>CA</Country>
<OfficePhone>+1 555-555-2211</OfficePhone>
</Site>
<Site>
<City>Dolbeau</City>
<Street>2525 Avenue du Pinpont</Street>
<POBox></POBox>
<State>Quebec</State>
<Zip>G2Q 2Q9</Zip>
<Country>CA</Country>
<OfficePhone>+1 555-555-3000</OfficePhone>
</Site>
</Location>
我想使用 var 名称 $Destination 来“匹配”location.site.city。如果 $destination 匹配城市,则填充 var
$Newcity = location.site.city
$NewStreet = location.site.street
$NewState = location.site.state
等等等等
这是我做的脚本的一部分,但我无法得到我想要的结果。
$var1 = ""
$Street = ""
$Destination = "Alma"
[xml]$SiteAttribute = Get-Content SitesAttributes.xml
foreach( $City in $SiteAttribute.location.Site){
$var1 = $site.city
If ($var1 -match $Destination){
$NewStreet = $Site.Street
$NewCity = $Site.city
$NewPoBox = $site.POBox
$NewState = $site.State
$Newzip = $Site.zip
$NewCountry = $Site.country
$NewPhone = $Site.OfficePhone
}
}
然后我会使用这些 var 用另一个 Powershell 命令更改我的 AD 属性
##Normal AD module come with W2k8
Import-Module ActiveDirectory
Set-ADUser $username -server $dc -StreetAddress $NewStreet -City $NewCity -State $NewState -PostalCode $NewZip -OfficePhone $NewPhone -Country $NewCountry
但是我所有的尝试都失败了,因为我认为我的 Foreach 语句后面跟着我的 If 语句对于我想做的过程来说是不够的。有什么建议吗?
谢谢约翰