使用Powershell

时间:2015-09-06 23:25:28

标签: windows google-chrome powershell

我们有一个带两个屏幕的信息亭,一个用于与用户互动,第二个用于一些促销内容。我需要确保Chrome在启动时始终在特定网页的第二个屏幕上打开。它在Windows机器上运行......

我一直在寻找首先使用任务计划程序打开Chrome的方法,而不是将窗口移动到第二个屏幕。但经过一些研究和测试后,我最终在" kiosk模式" (有用的东西btw)使用Powershell脚本提供的URL。值得庆幸的是,如果我在第二个屏幕上关闭Chrome窗口,它将记住位置,下次Chrome窗口打开时,它将被放置在"我离开它的位置"。但是,我想确保即使出现一些错误,Chrome"偏好"文件(在AppData文件夹中)将始终将位置设置为我的第二个屏幕。

我遇到了(Change Chrome Settings via Powershell),但我仍然无法在启动时(打开Chrome窗口之前)编写工作代码来修改此文件。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但是我的任务是让Chrome自动打开.ica文件。

我写了下面的脚本来做到这一点:

get-childitem -path "$env:systemdrive\Users" | foreach-object {

  $path = "$env:systemdrive\Users\$_\appdata\local\google\chrome\user data\default\preferences"

  if(test-path $path){
    $prefs = get-content $path | convertfrom-json 
    if($prefs){

      if(!($prefs.download.extensions_to_open)){
        $prefs.download | add-member -name "extensions_to_open" -value "ica" -MemberType NoteProperty #-Force
      } else {
        if(!($prefs.download.extensions_to_open -match "ica")){
          write-host "No ICA"
          $prefs.download.extensions_to_open = $prefs.download.extensions_to_open + ":ica"
        } else {
          write-host "ICA file type will already auto-open, ignoring."
        }
      }
      $prefs | convertto-json -depth 100 | out-file $path -encoding utf8
    }
  }

}

您应该能够重构它。它将所有内容写入机器上每个用户的首选项文件,并且运行良好。

为了节省您一些时间,我为您重构了脚本:

get-childitem -path "$env:systemdrive\Users" | foreach-object {

  $path = "$env:systemdrive\Users\$_\appdata\local\google\chrome\user data\default\preferences"

  if(test-path $path){
    $prefs = get-content $path | convertfrom-json 
    if($prefs){

        $prefs.browser.window_placement.left = 500 # pixel value 
        $prefs.browser.window_placement.top = 100 # pixel value 
        $prefs.browser.window_placement.bottom = 100 # pixel value 
        $prefs.browser.window_placement.right = 100 # pixel value 
        $prefs.browser.window_placement.maximized = $false # $true or $false

      $prefs | convertto-json -depth 100 | out-file $path -encoding utf8
    }
  }

}

脚本编写愉快!

答案 1 :(得分:0)

Dan的回答对于写首选项文件确实很有帮助。我确实注意到,如果不从get-content指定编码,则每次运行它都会增加首选项文件的大小。更改以下行:

$prefs = get-content $path -encoding utf8| convertfrom-json