将BAT文件作为本地用户帐户运行

时间:2016-03-15 21:04:42

标签: powershell

我从另一个问题中解决了这个问题,但我似乎无法做到这一点。

我需要将此.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

1 个答案:

答案 0 :(得分:1)

如果您希望允许用户以本地管理员帐户身份运行某些内容,而无法有效地向他们提供本地管理员帐户的密码,我建议您创建一个以本地管理员身份运行的计划任务。用户可以手动触发该任务,然后在本地管理员帐户下执行该任务。使用保存凭据创建任务应该有效,但即使您必须保存凭据,用户也无法访问这些凭据。

要访问网络共享,您可能需要使用显示任务运行的脚本中的显式凭据来连接/断开共享,因为本地帐户通常无权访问您映射的网络驱动器域用户。

net use X: \\server\share\kaceInstaller password /user:DOMAIN\user
call X:\kaceinstall3.bat
net use X: /d

DOMAIN\user设为只能访问\\server\share的专用帐户,而不是其他任何内容,以尽量减少风险。

请注意,必须确保常规用户无法写入任务运行的脚本,否则只需修改脚本就可以使用管理员权限运行任意命令。