在客户端计算机上执行Powershell脚本?

时间:2017-04-11 14:44:14

标签: javascript php powershell

我被要求创建一个简单的数据收集表单,该表单还需要包含一些客户端机器信息(非简单部分)。基本上,该公司希望我使用客户机的打印机列表预先填充表单值。他们慷慨地为我提供了一个PowerShell脚本来演示他们需要什么。

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

我一直在研究如何以最小化客户参与的方式实现这一目标。

例如,我会让用户下载脚本,单击它以执行,然后打开文本文件,以便他们可以将收集的信息复制并粘贴到网页表单字段中。但这似乎涉及非技术人员。

有没有办法让我能够自动化这一点。也许自动执行脚本。我正在服务器端使用PHP,我可以随意使用我想要的任何JavaScript,因为JavaScript无法访问文件系统,我无法看到除了最初的想法之外还有更多的东西。我能做到。

您是否对如何实现此目标有任何建议,同时尽量减少客户必须采取的步骤数量?

1 个答案:

答案 0 :(得分:0)

你可以做类似下面的事情

$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

}

因此,请获取要运行此计算机的计算机列表并将其粘贴到csv中,在这种情况下:“ListOfTargetComputers.csv”。

循环然后定位列表中的每台计算机,使用指定的凭据(这些将需要是机器上的本地管理员,所以域管理员帐户等?),然后将数据粘贴到.txt文件中在文件共享上的公用文件夹中。

所以这一切都需要设置,但应该有效。

  1. 在所有计算机上设置为本地管理员的帐户
  2. 每个人都具有
  3. 的读写权限的公共共享文件夹
  4. 目标计算机列表
  5. 注意:这不需要最终用户输入,并且应该能够远程运行。