2015-12-02 74 views
1

我有一個用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 

UPDATE:

感謝@ user2460798,這似乎解決的憑據問題。下面是我運行到現在...

New-PSDrive -Name K -PSProvider FileSystem -Root \\servername\folder -Credential $creds 
Start-Process -FilePath "$netinstall1" -Wait 

$netinstall1是用戶將在文本框中在這種情況下推杆,\\servername\folder\setup.exe完整的UNC路徑。

如何去掉\setup.exe或路徑的最後部分,我可以事先將驅動器映射到\\servername\folder。那有意義嗎?

+1

我認爲問題在於'$ creds'既用於登錄文件共享,也用於啓動進程。就我而言,無論如何,文件共享與本地Windows機器沒有相同的憑據。即使我使用驅動器盤符,我仍然有問題。由於使用驅動器盤符從文件共享中運行對您來說確實有效,因此您應該將其分成兩步:1)映射驅動器2)運行安裝程序。您可以使用'new-psdrive'來映射驅動器。您可以使用'get-psdrive'的輸出來查找可用的驅動器號。 –

回答

0

得到它的工作:

$path = Split-Path -Path $netinstall1 -Parent 
new-psdrive -name K -psprovider FileSystem -root "$path" -credential $creds 
Start-Process -FilePath "$netinstall1" -wait 

謝謝!