1RedOne

Updated version :)

Jun 15th, 2018
763
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×