[解決済み] Get-ADUserとフィルタを含むForEach-Objectループ
2022-03-04 01:52:09
質問
私の会社では、O365のライセンスを処理するスクリプトがあり、現在、次のようなすべてのユーザーに同じ国を割り当てています。
$Location = "US"
$E2Users = Get-ADGroupMember lg.o365.Office | Select SamAccountName
$E2Users | ForEach-Object{
$UPN = $E2Users[$Counter].SamAccountName + "@company.com"
Set-MsolUser -UserPrincipalName $UPN -UsageLocation $Location
##lots of other code
各ユーザーの国を取得し、文字列ではなくそれを使用する必要があります。 正しい国を取得するために、out-putを使用して結果を確認するための小さなテストを設定しましたが、動作させるためにそれを理解することができないようです。 他のフォーラムで$username = $_を見かけ、それを使用しようとしました。
$E2Users = Get-ADGroupMember lg.o365.Office | Select SamAccountName
$E2Users | ForEach-Object{
$username = $_
$Location = Get-ADUSer -filter {samaccountname -like "*$username*"} -properties * | Select country
write-output $Location
}
あるいは、フィルタが必要なのか?下記を使用すると、国の出力が得られますが、各ユーザーに正しくマッチングされていることを確認するにはどうしたらよいでしょうか。 いくつかの結果の行は、国またはcを使用して空白があり、ユーザーアカウントをチェックすると、これらの属性は値を持っています。
$E2Users = Get-ADGroupMember lg.o365.Office.PlanK1 | Select SamAccountName
$E2Users | ForEach-Object{
$Location = Get-ADUSer -filter * -properties * | Select country
write-output $Location
}
最終的には、次のようなものになります。
$E2Users = Get-ADGroupMember lg.o365.Office | Select SamAccountName
$E2Users | ForEach-Object{
$UPN = $E2Users[$Counter].SamAccountName + "@company.com"
$Location = Get-ADUSer -filter {not sure what to use} -properties * | Select country
Set-MsolUser -UserPrincipalName $UPN -UsageLocation $Location
##lots of other code
何が足りないのか、理解できていないのか。 何かありましたら、よろしくお願いします。
どのように解決するのですか?
ここで問題となるのは、各メンバーが
$E2Users
という単一のプロパティを持つオブジェクトです。
samaccountname
そして、そのオブジェクトをループ内で$username変数に代入していますが、これはフィルタとして使用することができません。 この問題を解決する方法はいくつかありますが、最も簡単なのは、プロパティを拡張することでしょう。
$E2Users = Get-ADGroupMember lg.o365.Office | Select -expandproperty SamAccountName
また、フィルタを-likeから-eqに変更し、"**"を不要なものとして削除します。
関連
-
[解決済み】powershellにターミネーターがない。"
-
[解決済み] [System.Web.Security.Membership]::GeneratePassword() - Type Not found
-
[解決済み] 配列、ハッシュテーブル、ディクショナリーを作成しますか?
-
[解決済み] PowerShellを使用してSFTPにファイルをアップロードする
-
[解決済み] Write-ErrorとThrowはいつ使い分ける?終端エラーと非終端エラー
-
[解決済み] グローバル変数名が関数に渡された変数である関数からPowerShellのグローバル変数を設定する
-
[解決済み] Join-Pathを使って、2つ以上の文字列をファイルパスに結合するにはどうすればよいですか?
-
[解決済み] PowerShellスクリプトのファイルシステムの場所を取得するにはどうすればよいですか?
-
[解決済み] PowerShellでコマンド出力に改行を追加するにはどうすればよいですか?
-
[解決済み] Powershell プロセスの開始、タイムアウトによる待機、Kill、終了コードの取得
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] powershell で再利用するために資格情報を保存すると、ConvertTo-SecureString : Key not valid for use in specified state というエラーが発生する。
-
[解決済み] Powershellスクリプトから7-Zipを実行する
-
[解決済み] [System.Web.Security.Membership]::GeneratePassword() - Type Not found
-
[解決済み] Get-ADUserとフィルタを含むForEach-Objectループ
-
[解決済み] PowerShellで遠隔地からファイルをコピーする
-
[解決済み] PowerShellでLDAPクエリ
-
[解決済み] Powershell New-ScheduledTaskTrigger -RepetitionIntervalを使った反復タスクの実行
-
[解決済み] Powershell Get-ChildItem -Filter は、同じ値でWhere句とは異なる動作をします。
-
[解決済み] Write-ErrorとThrowはいつ使い分ける?終端エラーと非終端エラー
-
[解決済み] powershell内でキーストロークを実行する方法は?