我有一个使用powershell构建的GUI工具,可以帮助设置新的PC。我正在尝试通过将安装文件的路径放入文本框来为用户添加从域网络共享安装软件的功能。当他们点击“运行”时,它会转到该路径并运行设置。
只要我有权访问该共享,我就可以使用它,但是我想在Start-Process
命令中包含凭据。截至目前,每当我尝试时,它都会显示错误的用户名或密码。
域,用户和传递变量来自将PC连接到域的工具的另一部分。这将在网络安装开始之前首先发生。前两行适用于域加入,但不适用于网络安装。
$pass = ConvertTo-SecureString "$pass" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential $domain\$user,$pass
Start-Process -FilePath "$netinstall1" -Credential $creds -wait
更新
感谢@ user2460798,这似乎解决了凭据问题。这就是我现在遇到的......
New-PSDrive -Name K -PSProvider FileSystem -Root \\servername\folder -Credential $creds
Start-Process -FilePath "$netinstall1" -Wait
$netinstall1
是用户将放在文本框中的完整UNC路径,在这种情况下为\\servername\folder\setup.exe
。
如何删除\setup.exe
或路径的最后部分,以便我可以预先将驱动器映射到\\servername\folder
。这有意义吗?
答案 0 :(得分:0)
让它发挥作用:
$path = Split-Path -Path $netinstall1 -Parent
new-psdrive -name K -psprovider FileSystem -root "$path" -credential $creds
Start-Process -FilePath "$netinstall1" -wait
谢谢!