私は Powershell で静かな短い時間プログラミングを行っていることをお伝えする必要があります。
したがって、私がやろうとしているのは、データを XML ファイルに事前入力してそれらのデータを使用し、$var を powershell に入力してから、それらの var を使用して Active Directory 属性を変更することです。AD属性の変更については問題ありませんが、XMLファイルを呼び出して変数を埋める自動化プロセスはまったく機能していません。私は got メソッドを使用していないと思うので、助けを求めています。
これが私のXMLファイルです(ここでは2つのサイトのみが宣言されています)
<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>
変数名 $Destination を使用して、location.site.city を "-match" したいと考えています。$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
}
}
次に、これらの変数を使用して、他の 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 ステートメントが続くと、実行したいプロセスに対して適切ではないと思うからです。何かアドバイス ?
ありがとうジョン