SHARE
TWEET

Updated version :)

1RedOne Jun 15th, 2018 668 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     #ERASE ALL THIS AND PUT XAML BELOW between the @" "@
  2. $inputXML = @"
  3. <Window x:Class="WpfApplication2.MainWindow"
  4. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  5. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8. xmlns:local="clr-namespace:WpfApplication2"
  9. mc:Ignorable="d"
  10. Title="HG Folder Permission Deployment" Height="350" Width="525">
  11.    <Grid>
  12.        <Image HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" Name="Image" VerticalAlignment="Top" Width="70" Source="C:\Users\jfitzgerald\Pictures\img1.jpg"/>
  13.        <TextBlock HorizontalAlignment="Left" Margin="115,10,0,0" Name="TextBlock" TextWrapping="Wrap" Text="This useful tool is a front end for a powerful PowerShell script that will allow you to deploy a propertie's folder and subfolders, with the proper permissions, in the Review drive." VerticalAlignment="Top" Height="97" Width="392"/>
  14.        <Button Content="OK" HorizontalAlignment="Left" Name="Button" Margin="432,289,0,0" VerticalAlignment="Top" Width="75"/>
  15.        <Label Content="Username&#xD;&#xA;" Name="Label" HorizontalAlignment="Left" Margin="81,172,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Width="63" Height="26"/>
  16.        <TextBox HorizontalAlignment="Left" Name="TextBox" Height="23" Margin="158,175,0,0" TextWrapping="Wrap" Text="Enter Your Username" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.499,0.456"/>
  17.  
  18.    </Grid>
  19. </Window>
  20.  
  21. "@
  22.  
  23. $inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^<Win.*', '<Window'
  24. [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
  25. [xml]$XAML = $inputXML
  26. #Read XAML
  27.  
  28.    $reader=(New-Object System.Xml.XmlNodeReader $xaml)
  29. try{$Form=[Windows.Markup.XamlReader]::Load( $reader )}
  30. catch{Write-Warning "Unable to parse XML, with error: $($Error[0])`n Ensure that there are NO SelectionChanged properties (PowerShell cannot process them)"
  31.    throw}
  32.  
  33. #===========================================================================
  34. # Load XAML Objects In PowerShell
  35. #===========================================================================
  36.  
  37. $xaml.SelectNodes("//*[@Name]") | %{"trying item $($_.Name)";
  38.    try {Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) -ErrorAction Stop}
  39.    catch{throw}
  40.    }
  41.  
  42. Function Get-FormVariables{
  43. if ($global:ReadmeDisplay -ne $true){Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true}
  44. write-host "Found the following interactable elements from our form" -ForegroundColor Cyan
  45. get-variable WPF*
  46. }
  47.  
  48. Get-FormVariables
  49.  
  50. #===========================================================================
  51.    # Use this space to add code to the various form elements in your GUI
  52.    #===========================================================================
  53.                                                                    
  54.    
  55.    #Reference
  56.  
  57.    #Adding items to a dropdown/combo box
  58.      #$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"})
  59.    
  60.    #Setting the text of a text box to the current PC name    
  61.      #$WPFtextBox.Text = $env:COMPUTERNAME
  62.    
  63.    #Adding code to a button, so that when clicked, it pings a system
  64.    # $WPFbutton.Add_Click({ Test-connection -count 1 -ComputerName $WPFtextBox.Text
  65.    # })
  66.    #===========================================================================
  67.    # Shows the form
  68.    #===========================================================================
  69. write-host "To show the form, run the following" -ForegroundColor Cyan
  70. $Form.ShowDialog() | out-null
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top