2017-10-17 7 views
0

ローカル管理者を提供する監査プロセスを自動化したいのですが、現在はスクリーンショットで行われています。以下のコードを一緒に書きました。これは、サーバー名の入力を促し、ローカルの管理メンバーとファイルを作成します。しかし、これは私にファイルの名前を変更する必要があります。
私はサーバ名を入力して、アウトファイル名にしたいと思っています。私は森を通って木を見ていないだけです。ファイル名を追加するためのものはたくさんありますが、作成したファイルの名前を変更するためのものは何も見つかりませんでした。 おかげPowershellのファイル名を変更してファイル名を指定してください。

function get-localadmins { 
    [cmdletbinding()] 
    Param(
     [string]$computerName 
    ) 
    $group = get-wmiobject win32_group -ComputerName $computerName -Filter "LocalAccount=True AND SID='S-1-5-32-544'" 
    $query = "GroupComponent = `"Win32_Group.Domain='$($group.domain)'`,Name='$($group.name)'`"" 
    $list = Get-WmiObject win32_groupuser -ComputerName $computerName -Filter $query 
    $list | % {$_.PartComponent} | % {$_.substring($_.lastindexof("Domain=") + 7).replace("`",Name=`"", "\")} 
} 

$Workstation = Read-Host "Computer Name" 
get-localadmins $Workstation | Out-File c:\temp\ENTERSERVERNAME_LocalAdmin.txt 

答えて

1

私は鉱山を削除した

| Out-File -FilePath "C:\Temp\${Workstation}_LocalAdmin.txt" -Append 
+0

これを試してみてください。あなたが私が作ったことに気付かなかったエラーを修正します。 –

+0

ちょうどヒントでは、変数の互換性のある文字をマージするのを避けるために、文字列の部分式を過度に複雑にする必要なしに中括弧を使用することができます@JeffZeitlinこれにより、スコープを指定することもできます。 '$ {script:Workstation}' – TheIncorrigible1

+0

ええ、それは私が忘れていることです。しかし、あなたの投稿後に私が見つけたのはエラーではありませんでした。私が関数の外にいたときには、関数内の '$ ComputerName'を使用していました。私の面倒な読書。 –

関連する問題