2017-04-11 8 views
0

クライアントマシン情報(単純な部分ではない)も含める必要がある単純なデータ収集フォームを作成するように求められます。基本的には、クライアントマシンのプリンタリストにフォーム値をあらかじめ入力しておきたいと考えています。彼らは優雅に私に彼らが必要とするものを示すためのパワーシェルスクリプトを提供しました。クライアントマシンでPowershellスクリプトを実行しますか?

"Printers" >> c:\Printers.txt 
get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt 

私はクライアントの関与を最小限に抑える方法でこれを達成する方法についていくつか考えてきました。

たとえば、スクリプトをダウンロードして実行すると、それをクリックしてテキストファイルを開いて、収集した情報をコピーしてWebページのフォームフィールドに貼り付けることができます。しかし、これは非技術的な人々のために関与しているようです。

これをもう少し自動化する方法はありますか?スクリプトを自動的に実行するかもしれません。私はサーバー側でPHPを使って作業しています。JavaScriptはファイルシステムへのアクセス権がないので、私がやることができるオリジナルのアイデアよりもはるかに多いことはわかりません。

クライアントが取らなければならないステップ数を最小限に抑えながらこれを達成する方法について提案はありますか? 「ListOfTargetComputers.csv」:

+0

クリックするとPowerShellスクリプトが起動され、すべての情報が取得され、スクリプトが完了するとすぐに呼び出されるHTMLレポートが作成されます。 –

+0

クライアントシェル上にパワーシェルスクリプトが存在しません。それはそれにダウンロードする必要があります。 – GRowing

+1

必要はありません。 Get-wmiobjectはスイッチ-computernameを持っています。これをリモート操作に使用します。 –

答えて

0

あなたはそう、あなたはこの反対を実行し、この場合には、csvファイルでそれらを固執するコンピュータの一覧を取得

$computers = Import-Csv C:\ListOfTargetComputers.csv 
$cred = (Get-credential) 

foreach ($comp in $computers) { 

get-WmiObject -class Win32_printer -ComputerName $comp -Credential $cred | ft name, systemName, shareName | Out-File \\share\PublicFolder\project\printers-$comp.txt 

} 

下のような何かを行うことができます。

ループは、リスト内の各コンピュータを対象とし、指定された資格情報を使用します(これらはマシンのローカル管理者である必要がありますので、ドメイン管理者アカウントなど)。ファイル共有上のパブリックフォルダ内のファイル。

このように設定する必要がありますが、動作するはずです。この意志:

  • パブリック共有フォルダ誰もがしていることを読み書きアクセス
  • ターゲットコンピュータのリスト
  • NOTEにすべてのマシン上でローカル管理者として設定されている

    1. アカウントエンドユーザーの入力が不要で、リモートで実行できる必要があります。

    +0

    私はこれで遊ぶだろう... – GRowing

    関連する問題