【发布时间】:2021-03-21 00:49:04
【问题描述】:
我有一个通过 Intune 推送并安装在用户计算机上的 MSI。这个 MSI 基本上是特定 web 应用程序所需的 flash 浏览器。我需要做的是创建一个自定义快捷方式并在快捷方式的目标中输入一个 url,强制浏览器访问该网站(因为浏览器没有输入 URL 的地方)。
我在创建快捷方式时没有问题,但是我想确保用户无法通过右键单击快捷方式并更改 URL 参数来进入并修改目标,从而允许他们浏览 google 或 facebook 或其他任何东西这个浏览器。
这是我目前拥有的快捷方式:
$Shell = New-Object -ComObject ("WScript.Shell")
$ShortCut = $Shell.CreateShortcut("C:\Users\Public\Desktop\Browser - PROD.lnk")
$ShortCut.TargetPath="C:\Program Files (x86)\Company\CompanyBrowser.exe"
$ShortCut.Arguments='-URL "https://company.url"'
$ShortCut.Save()
我将快捷方式弹出到公共桌面上,以便标准用户无法修改它,但是其中一些用户是他们机器上的本地管理员。我希望的是更改快捷方式属性中的安全选项卡,以允许本地管理员帐户只能访问读取/执行,但不能修改此快捷方式。
我正在玩弄 ACL 函数,但它似乎全有或全无,当我运行以下脚本时,它甚至完全阻止了快捷方式的执行
$ProdACL = Get-Acl -Path "C:\Users\Public\Desktop\Browser - PROD.lnk"
$identity = "BUILTIN\Administrators"
$fileSystemRights = "Modify"
$type = "Deny"
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
$ProdACL.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Users\Public\Desktop\Browser - PROD.lnk" -AclObject $ProdACL
我不是 powershell 专家,但我相信我很接近并且可能没有使用正确的 ACL 参数。
任何帮助将不胜感激。
【问题讨论】:
-
您的方法的问题是修改包括读取/执行和拒绝优先于允许。
标签: powershell permissions acl shortcut