リストの一番上には、管理者がこの製品をより快適に使用できるように設計された最も小さな変更があります。
- PowerShellエディターウィンドウのサイズを変更できるようになりましたが、これは疑わしい成果ですが、今ではウィンドウを全画面表示に拡大できます。
比較してみましょう:
PowerShell 2.0
PowerShell 5.1
- スクリーンショットに表示される次の明らかな違いは、構文の強調表示です。これはすでに非常に大きなプラスです。
- その後、別の技術革新が続きます-これからは、異なるバージョンのモジュールとコマンドレットをサポートする必要があります。
この例はスクリーンショットで最もよく見られます:
PowerShell 2.0
PowerShell 5.1
スクリーンショットからわかるように、新しいコマンドが表示されました。これは、ヘルプを更新するための既知のUpdate-Helpと同様に、Update-Moduleモジュールのバージョンを更新するのに役立ちます。
- クラスが登場しました;このテーマに関する別の記事があります。
- comオブジェクトの処理速度が向上しました。
最後の点については別にお話ししたいと思います。 組織内のActive Directoryのサイズは異なります。ユーザー数が20〜60人の場合もあり、数万人以上の場合もありました。最初の場合はグラフィカルインターフェイスでしかできなかった場合、2番目の場合はそれを行うことができますが、それは非常に困難です。 Active Directoryがデータリッチなデータベースであり、作業に必要なデータを数分で取得し、これに適切なアプローチを適用できると考える管理者はほとんどいません。
いくつかの広告
Windows Server 2016の画像は、Microsoftパートナーディレクトリにダウンロードするために昨日表示されただけで、今日はvpsvilleで250ルーブルのみのすべての機能に精通することができます。
叙情的な余談...
Microsoftは当初、Active Directoryをシステム管理者だけでなく人員向けのツールとして提供しました。 前者には、サーバーとソフトウェアアーキテクチャの観点から、すべてが正常に機能する必要があります。後者は、ディレクトリを正しく埋める役割を果たします。 したがって、この問題に関する情報を収集できるすべてのソースから理解するのが慣習であるように、管理者はユーザーアカウントを作成し、Active Directoryのイデオロギーに従ってグループを作成するべきではありませんが、厳しいロシアの現実では、すべてが少し異なります。
技術仕様の代わりに。
私たちが最も小さな組織で働いていないことを想像してみてください。たとえば、私たちの広大な故郷に散在するブランチにある複数のドメインコントローラーを制御できます。たとえば、従業員数は少なくとも1,000人です。 私たちの国は多くのタイムゾーンに分割されていることを思い出してください。一部の従業員は仕事に就くと、すでに就寝しているため、Active Directory管理モデルは部分的に集中化されます。これは、セントラルオフィスだけでなく、地域の管理者の存在を意味します。 また、Active Directoryを保守するための要件を備えた内部の技術文書も用意されており、すべてが統一されて便利になっていますが、これはクールなデータベースであり、失敗ではないことを覚えています。
それで、解決する必要がある知識とタスクがあります。それをやってみましょう。
私たちの参照条件によれば、私たちが持っているデータは非常によく構造化されているという事実のため、標準的なクエリを使用してそれらに連絡できます。そのような例の1つは各企業で使用される従業員のディレクトリです。
PowerShellでの表示は次のとおりです。
Get-ADUser -Filter * -SearchBase "OU=Users,OU=Main Office,DC=MyCompany,DC=ru" -Server 'Domain Controller Name' -Properties displayName, description, physicalDeliveryOfficeName, telephoneNumber, mail, title, department, company, manager | Select displayName, description, physicalDeliveryOfficeName, telephoneNumber, mail, title, department, company, manager | Export-CSV "C:\Export\MainOffice.csv" -NoType -UseCulture -Encoding Unicode
コードコメント
Get-ADUser --Propertiesパラメーターの後にカンマで指定されたプロパティを持つ検索領域(-SearchBase)からユーザーの配列を取得するコマンドレット。
Export-CSV-この配列をファイルにエクスポートします。
Export-CSV-この配列をファイルにエクスポートします。
その結果、名前、キャビネット番号、電話番号、メールアドレス、役職、部門名、支店名、名前が必要なフィールドを備えた既製のテーブルを取得します。 この従業員の頭。 このスクリプトは数秒間機能し、検索領域(-SearchBase)でパラメーターを
$Template_Excel = "C:\PS\.xlsx" $SaveAs = "C:\PS\.xlsx" $AllExcel = @(Get-Process [e]xcel | %{$_.Id}) $MyExcel = New-Object -ComObject Excel.Application $ExcelId = Get-Process excel | %{$_.Id} | Where {$AllExcel -notcontains $_} $MyExcel.Visible = $False $WorkBook = $MyExcel.workbooks.open($Template_Excel) $WorkSheet = $WorkBook.sheets.item("") $Users = Get-ADUser -Filter * -SearchBase "OU=Users,OU=Main Office,DC=MyCompany,DC=ru" -Server 'Domain Controller Name' -Properties displayName, description, physicalDeliveryOfficeName, telephoneNumber, mail, title, department, company, manager | Select sAMAccountName, displayName, description, physicalDeliveryOfficeName, telephoneNumber, mail, title, department, company, manager For($x = 0; $x -le $Users.count; $x++) { $WorkSheet.Rows.Item($x+2).Columns.Item(1) = $Users[$x].displayName $WorkSheet.Rows.Item($x+2).Columns.Item(2) = $Users[$x].description $WorkSheet.Rows.Item($x+2).Columns.Item(3) = $Users[$x].physicalDeliveryOfficeName $WorkSheet.Rows.Item($x+2).Columns.Item(4) = $Users[$x].telephoneNumber $WorkSheet.Rows.Item($x+2).Columns.Item(5) = $Users[$x].mail $WorkSheet.Rows.Item($x+2).Columns.Item(6) = $Users[$x].title $WorkSheet.Rows.Item($x+2).Columns.Item(7) = $Users[$x].department $WorkSheet.Rows.Item($x+2).Columns.Item(8) = $Users[$x].company $WorkSheet.Rows.Item($x+2).Columns.Item(9)= $Users[$x].manager } $Workbook.SaveAs($SaveAs) $MyExcel.quit() Stop-Process -Id $ExcelId -Force -ErrorAction SilentlyContinue
コードコメント
Get- Process-プロセスのリストを取得します。この例では[e] xcel;
New-Object-新しいCOMオブジェクトを作成し、Excelプロセスを開始します。
Stop-Process-作成されたオブジェクトを削除します。
New-Object-新しいCOMオブジェクトを作成し、Excelプロセスを開始します。
Stop-Process-作成されたオブジェクトを削除します。
PowerShellのコードはもう少し多くなりましたが、出力では、何も修正する必要のない既製のファイルが得られました。 大きなことは1つしかありませんでしたが、Windows 8.1のこのコードは、処理中のオブジェクトの数と、ほとんどの場合COMオブジェクトを処理するのにかかる時間に応じて、25〜40分実行されます。 したがって、私の人生でPowerShell 5が登場する前に使用するこのアプローチは、ファイルの作成に時間がかかったため不便でした。 Windows 10またはWindows Server 2016では、このスクリプトは数分で実行されるため、機能の範囲を拡大できます。
*
*-コードへのコメントでは、コマンドレットの名前は公式ドキュメントへのリンクです。
最後まで読んでくれてありがとう。 チュクチは作家ではなく、チュクチは読者です。