我的PowerShell腳本運行.bat文件來安裝.msu文件。但我需要用管理員權限運行這個.bat文件。運行帶有管理權限的.bat文件
.bat文件是:
WUSA C:\temp\Win8.1AndW2K12R2-KB3191564-x64.msu /quiet /norestart
我有域控制器和很多客戶。通過PowerShell PS會話,我可以交互式連接到每個客戶端。我需要使用域管理員憑證使用此bat文件,我該怎麼做?
我的PowerShell腳本運行.bat文件來安裝.msu文件。但我需要用管理員權限運行這個.bat文件。運行帶有管理權限的.bat文件
.bat文件是:
WUSA C:\temp\Win8.1AndW2K12R2-KB3191564-x64.msu /quiet /norestart
我有域控制器和很多客戶。通過PowerShell PS會話,我可以交互式連接到每個客戶端。我需要使用域管理員憑證使用此bat文件,我該怎麼做?
你可以使用Invoke-Command
你可以在列表中的服務器保存在一個文本文件,然後使用Get-Content
命令保存在一個變量數組:
$clients = Get-Content C:\ExampleClientList.txt
然後使用變量爲ComputerName
參數Invoke-Command
。然後在scriptblock
參數中運行命令,因爲您可以在PowerShell中運行可執行文件,因此不需要bat文件。最後的Credential
參數將允許您以本地管理員身份運行。
Invoke-Command -Computername $clients -ScriptBlock {WUSA C:\temp\Win8.1AndW2K12R2-KB3191564-x64.msu /quiet /norestart} -Credential (Get-Credential)
我不知道我理解你的問題。
從PowerShell的啓動批處理文件,您可以使用啓動proccess命令:
powershell start-process <path to your file> -verb RunAs
如果你不明白一個問題,那麼最好的做法是在評論中要求澄清。 Luca9698使用'Enter-PSSession'交互地連接到每臺計算機,然後運行.bat文件。這是不必要的,因爲該命令可以直接在PowerShell中運行。如果任務需要並行運行,可以通過'Invoke-Command'完成 – BenH
作爲一個側面說明,最好的做法是在域管理員帳戶不被用來在客戶端上運行,並使用另一個帳戶本地管理員任務。 – BenH