2012-04-17 190 views
0

我無法使用.net訪問UserAssignment容器。我能夠到達應用程序容器,但沒有更多。任何想法將不勝感激。我使用的代碼是:遠程桌面PowerShell腳本

Private Function runScript2(userName As String, applicationName As String) As String 
    Dim rs As Runspace = RunspaceFactory.CreateRunspace 
    rs.Open() 

    Dim ps As PowerShell = PowerShell.Create 
    ps.Runspace = rs 
    Dim sb2 As New StringBuilder 
    sb2.AppendLine("Import-Module -Name C:\RemoteDesktopServices\RemoteDesktopServices.psd1") 
    sb2.AppendLine("Get-ChildItem -Path RDS:\") 'this works 
    sb2.AppendLine("Get-ChildItem -Path RDS:\RemoteApp\RemoteAppPrograms\WordPad\") 'this works 
    sb2.AppendLine("Get-ChildItem -Path RDS:\RemoteApp\RemoteAppPrograms\WordPad\UserAssignment") 'this does not work, no error 
    sb2.AppendLine("Get-ChildItem -Path C:\MyScripts") 
    ps.AddScript(sb2.ToString) 

    Dim output As Collection(Of PSObject) = ps.Invoke 
    Dim sb As New StringBuilder 
    For Each obj As PSObject In output 
     If TypeOf (obj.BaseObject) Is DirectoryInfo Then 
      Dim fle As DirectoryInfo = CType(obj.BaseObject, DirectoryInfo) 
      sb.AppendLine(fle.FullName) 
     ElseIf TypeOf (obj.BaseObject) Is FileInfo Then 
      Dim fle As FileInfo = CType(obj.BaseObject, FileInfo) 
      sb.AppendLine(fle.FullName) 
     Else 
      sb.AppendLine(obj.BaseObject.ToString) 
     End If 
    Next 
    Return sb.ToString 

End Function 
+0

您是否使用Windows Server 2008 R2? – 2012-04-18 06:19:09

+0

是服務器正在運行2008 R2 – DaddioNTS 2012-04-18 12:45:51

回答

0

它不會失敗,你根本沒有任何UserAssignment s ^呢,所以這回你什麼。只要你添加一些用戶 - 它會返回它。您可以通過手動添加用戶來檢查它是否通過Computer Management控制檯

+0

分配了三個用戶。如果手動輸入到PowerShell中,這些命令將起作用。 – DaddioNTS 2012-04-18 11:37:10

+0

@JimEggert你確定沒有其他的寫字板應用程序?否則它可能會選錯了 – 2012-04-18 11:41:01

+0

我也嘗試了其他幾個應用程序。我可以看到容器的內容,但不能看到 \ UserAssignment容器。但是如果直接輸入到PowerShell中,這些命令可以正常工作。我不確定是否有UserAssignment容器需要額外的權限。 – DaddioNTS 2012-04-18 12:47:52