我从另一个问题中解决了这个问题,但我似乎无法做到这一点。
我需要将此.bat文件作为本地管理员帐户运行。我希望用户能够在没有本地管理员权限的情况下运行和安装它。
我不确定会出现什么问题。
$username = 'localadmin'
$password = 'passwordforlocaladmin'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process -Filepath "p:\kaceInstaller\kaceinstall3.bat" -Credential $credential
我要回的错误是:
Start-Process : This command cannot be executed due to the error: The directory name is invalid. At P:\kaceInstaller\misc\kaceSetup.ps1:7 char:14 + Start-Process <<<< cmd -Credential $credential + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommandy
答案 0 :(得分:1)
如果您希望允许用户以本地管理员帐户身份运行某些内容,而无法有效地向他们提供本地管理员帐户的密码,我建议您创建一个以本地管理员身份运行的计划任务。用户可以手动触发该任务,然后在本地管理员帐户下执行该任务。使用保存凭据创建任务应该有效,但即使您必须保存凭据,用户也无法访问这些凭据。
要访问网络共享,您可能需要使用显示任务运行的脚本中的显式凭据来连接/断开共享,因为本地帐户通常无权访问您映射的网络驱动器域用户。
net use X: \\server\share\kaceInstaller password /user:DOMAIN\user
call X:\kaceinstall3.bat
net use X: /d
将DOMAIN\user
设为只能访问\\server\share
的专用帐户,而不是其他任何内容,以尽量减少风险。
请注意,必须确保常规用户无法写入任务运行的脚本,否则只需修改脚本就可以使用管理员权限运行任意命令。