2013-08-19 111 views
2

我想從IP地址爲sj1slm612的遠程機器上刪除配置文件。現在問題是我沒有完全修改該遠程機器的權利,所以我使用模擬技術來做到這一點。通常當我通過膩子連接到這個遠程機器時,我使用'sudo'。所以我的問題是下面的代碼能夠解決我的問題嗎?謝謝。C#模擬技術

我的代碼:

AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal); 
      using (WindowsIdentity Authorized_user = new WindowsIdentity("sj1slm612\\wtsnqa", "password")) 
      { 
       using (WindowsImpersonationContext context = Authorized_user.Impersonate()) 
       { 
        File.Delete(@"/apps/instances/express_13000/configuration/standalone-full.xml"); 
        File.Delete(@"/apps/instances/query_13100/configuration/standalone-full.xml"); 
        File.Delete(@"/apps/instances/wppapi_13200/configuration/standalone-full.xml"); 
        File.Delete(@"/apps/instances/wppgui_13300/configuration/standalone-full.xml"); 

        Console.WriteLine("All config files removed from sj1slm612"); 
        Console.ReadLine(); 
+2

你試過了嗎? –

+0

不,目前我想嘗試的遠程機器當前已關閉,但我需要它在此遠程機器上執行一些必要的操作。 –

回答

2

有2個問題,你的方法:

  1. 您試圖冒充本地機器上的遠程計算機帳戶;這是行不通的。機器帳戶的憑證只能由該機器驗證。另外,該帳戶對本地計算機沒有任何權限,因此假冒它沒有任何意義。您需要模擬一個域帳戶。當您使用像putty這樣的工具時,證書將被髮送到遠程機器,並且不會被本地機器驗證。這就是您可以使用遠程計算機的計算機帳戶的原因。

  2. 您需要爲文件提供正確的路徑。你沒有指出這些文件在遠程機器上。使用類似"\\machine\c$\path\to\file"的東西。

什麼工作的細節取決於你的網絡和操作系統,你沒有指定,雖然它聽起來像Linux-ish。引用您需要使用的遠程文件可能有不同的語法。

+0

您的意思是...使用「\\ machine \ c $ \ path \ to \ file」之類的東西?機器前有兩個反斜槓? –

+0

是的,那實際上就是我輸入的內容。 SO打破了它。 – bmm6o

+0

我想這是一個錯字或類似的東西。 :) –