私は完全に動作するscript1.ps1という名前のPowerShellスクリプトを持っています。ここにスクリプトがあります:ローカル 'Administators'グループのメンバーの検索を自動化
Write-Host Script to display members of the local -ForegroundColor Green
Write-Host Administators group of a remote server. -ForegroundColor Green
Write-Host "`n"
$strComputer = Read-Host "Please enter the computer name"
$computer = [ADSI]("WinNT://" + $strComputer + ",computer")
$group = $computer.PSBase.Children.Find("administrators")
Write-Host ""
Write-Host "Computer Name : "$computer.Name
Write-Host "_____________________________________"
Write-Host ""
Write-Host "Group Name : "$Group.Name
Write-Host "_____________________________________"
$domain = $group.Path.Split("/")[2]
$string1 = "WinNT://" + $domain + "/" + $strComputer + "/"
$string2 = $strComputer + "/"
$string3 = "WinNT://"
$members = ($group.PSBase.Invoke("Members") | Foreach-Object {$_.GetType().InvokeMember("Adspath", 'GetProperty', $null, $_, $null)}) -replace ($string1,$string2) -replace ($string3,"")
Write-Host ""
Write-Host "Members : "
Write-Host ""
$members
しかし、わかりますように、私はいつもコンピュータの名前を書く必要があります。 テキストやCSVファイルから自動的にコンピュータ名を取得するなどの機能があるかどうかは自問です。 これはスクリプトの初めで自動的にすべてのコンピュータ名を受け取ります&ローカルの「管理者」グループのメンバーに、1つのテキストファイルまたはCSVファイルにもエクスポートされますか?
編集:が与えられた答えに応じてスクリプトを更新しました。
私は完全に動作しないscript1.ps1という名前のPowerShellスクリプトを持っています。
Write-Host Script to display members of the local -ForegroundColor Green
Write-Host Administators group of a remote server. -ForegroundColor Green
Write-Host "`n"
Get-Content 'C:\Users\herbautr\Desktop\List1.txt' | ForEach-Object {
Write-Host "-$_-"
$computer = [ADSI]("WinNT://" + $_ + ",computer")
$group = $computer.PSBase.Children.Find("administrators")
Write-Host ""
Write-Host "Computer Name : "$computer.Name
Write-Host "_____________________________________"
Write-Host ""
Write-Host "Group Name : "$Group.Name
Write-Host "_____________________________________"
$domain = $group.Path.Split("/")[2]
$string1 = "WinNT://" + $domain + "/" + $_ + "/"
$string2 = $_ + "/"
$string3 = "WinNT://"
$members = ($group.PSBase.Invoke("Members") | Foreach-Object {$_.GetType().InvokeMember("Adspath", 'GetProperty', $null, $_, $null)}) -replace ($string1,$string2) -replace ($string3,"")
Write-Host ""
Write-Host "Members : "
Write-Host ""
$members
} | Set-Content 'C:\Users\herbautr\Desktop\administrators.txt'
私はList1.txtに1つのコンピュータ名を追加します::
01SPEAI-TEST1 01SPEAI-TEST2 02SPHPV-TEST1 01SLCPTAAP-PROD
をそして、それが動作する(しない)完全に(読めないレイアウト)
01SPEAI-PROD1/Administrator
VNF-PRINCIPAL/Admins du domaine
VNF-PRINCIPAL/svceri
01SPEAI-PROD2/Administrator
VNF-PRINCIPAL/Admins du domaine
VNF-PRINCIPAL/svceri
02SPHPV-PROD1/Administrator
VNF-PRINCIPAL/Admins du domaine
01SLCPTAAP-PROD/Administrator
VNF-PRINCIPAL/Admins du domaine
01SLCPTAAP-PROD/maint
VNF-PRINCIPAL/svcoraas
VNF-PRINCIPAL/svcvisionit
VNF-PRINCIPAL/GopOAS
VNF-PRINCIPAL/svcdigora
注ここでスクリプトがあります(午後03時18分午後):ちょうど1名を追加するとき、それは「作品」なぜ私は...それは仕事を続け、5名としてみてください
がありますか? OO」
'$ _'があなたの考えであることを確認してください。 'Write-Host 'の出力は何ですか? - $ _-" '? –
@Ansgar私は、このチェックを$ _ = "lol"としました。 Write-Host "$ _"(私を笑って表示)私は理解しています。しかし、Get-Contentの前に$ _を定義する必要がありますか、または$ _を私が望むものに置き換えることはできますか? – Skyxia
'Write-Host" - $ _- "をループの中に置き、出力が何であるかを報告してください。私がここに書いている通り、*正確に*のステートメントを使用してください。何も出さないでください。何も追加しないでください。 –