我一直在修改PowerShell脚本并造成混乱的问题。是否有一个衬垫,我可以插入到当前脚本中以要求我设置的密码以修改脚本?我仍然需要每个人都能够运行它。
答案 0 :(得分:2)
最简单,最直接的方法是将脚本放在问题用户没有写访问权限的地方。您无法在语言本身中做任何事情来阻止用户修改他们具有写入权限的文件。
如果由于某种原因你不能这样做(他们是管理员并且访问权限太多),那么你可以做其他一些事情。
Apply a digital signature to your scripts
要使其正常工作,您需要能够强制执行{ selectUser }
(或AllSigned
执行策略(如果这些脚本直接从共享中执行)。您可以使用组策略执行此操作。
您还需要控制对签名证书的访问权限,并确保它是唯一受信任的证书。
请注意,这些用户仍然可以在本地复制脚本,进行修改,运行RemoteSigned
并仍然运行修改后的脚本。
不同之处在于,这是他们的副本,并没有为其他任何人打破它。如果他们覆盖中央脚本而不签名或使用不受信任的证书签名,那么每个人都会注意到。
如果用户具有足够的特权,他们可以覆盖更多这些。
将脚本放在自定义本地存储库中,并使用包管理功能powershell.exe -ExecutionPolicy Bypass
/ Find-Script
,这样每个人都指的是相同的,并且经过深思熟虑的部署过程。这可以与签名结合使用。
最终,如果这些用户享有特权并且他们的行为是恶意的,那么这就是人事问题,无法用技术有效解决。在这种情况下,The Workplace可能会有所帮助。