1

一部の古いアプリに問題があり、AD から環境変数を設定する必要があります (万歳)

私は PS スクリプティングにまったく慣れていないので、助けを借りることができます。

私のADでは、属性departmentNumberに情報を入力しました。その部分は正常に機能します。

ここで、現在のユーザー (属性: departmentNumber、派生元: inetOrgPersonUser) からこのフィールドを読み取り、これを という環境変数として設定するログオン スクリプトを作成する必要がありますAFDELING

これは VB スクリプトを使用して実行できることは知っていますが、私は PS を好みます。誰でもこれで私を助けることができますか?

よろしくお願いいたします。

ピーター

4

1 に答える 1

0

PowerShell で環境変数を操作するには、特別な変数$Envが必要です。残念ながら、コマンドレットが存在しないため (少なくとも v2 では)、.NET メソッドを使用して環境変数を設定する必要があります。

[Environment]::SetEnvironmentVariable("AFDELING", "DeptNo", "User")

最初の文字列パラメーターは変数名、2 番目は値、3 番目は基本的に変数に要求された持続性レベルです: MachineUserまたはProcess- マシンとユーザーの両方が再起動後も存続し、将来のアプリケーションはそれらにアクセスできますが、マシン レベルの変数を変更するには、管理者アカウントで PowerShell を実行する必要があります。

ユーザー情報の取得も同様に簡単です。Active Directory にアクセスするにはさまざまな方法がありますが、この場合の最も簡単な方法の 1 つはSystem.DirectoryServices.DirectoryEntryクラスを使用することです。

$de = New-Object System.DirectoryServices.DirectoryEntry
$DeptNo = $de.Properties["departmentNumber"]

これにより、ドメイン コントローラーから現在のユーザー レコードを照会し、departmentNumber 属性の値を $DeptNo 変数に割り当てる必要があります。次に、その変数を最初の例の 2 番目のパラメーターにポップするだけです。

于 2012-08-27T20:29:47.910 に答える