Ceci est probablement un peu tendu et je ne suis pas sûr que ce soit possible du tout. Mais fondamentalement, j'essaye de créer une petite application qui contient beaucoup de code de PowerShell que je veux courir dans une affaire facile.VB.NET - utiliser le fichier texte comme source pour les menus et les zones de texte
J'ai réussi à tout créer moi-même et ça marche. Mais tout le code PowerShell est codé en dur, ce qui me désavantage énormément. Ce que je pensais était de créer une sorte de structure dynamique où je peux lire quelques fichiers texte (possible un grand nombre de fichiers texte) et les utiliser comme source à la fois pour les comboboxes et le richtextbox qui fournit le Chaîne utilisée pour s'exécuter dans PowerShell.
Je pensais quelque chose comme ceci:
Combobox - "Choisissez cmdlet" - Utilisez "menucode.txt" comme source RichTextbox - Utilisation "code.txt" comme source
Mais, la chose est Les extraits Powershell nécessitent quelques arguments pour qu'ils fonctionnent. J'ai donc quelques comboboxes et quelques textboxes qui fournissent en entrée pour ces arguments. Et ceci est fait manuellement comme c'est le cas maintenant. Donc, réécrire cette petite application devrait également rechercher dans le fichier texte pour certains mots-clés et avoir les comboboxes et les boîtes de texte pour remplacer ces mots-clés. Et je ne suis pas sûr de savoir comment faire ça.
Alors, cela nécessiterait-il beaucoup de fichiers texte? Ou pourrais-je utiliser un fichier texte et séparer chaque fragment de la cmdlet PowerShell avec quelque chose? Comme une sorte d'en-tête?
En ce moment, j'ai ce code au eventhandler (ComboBox_SelectedIndexChanged)
If ComboBoxFunksjon.Text = "Set attribute" Then
TxtBoxUsername.Visible = True
End If
If chkBoxTextfile.Checked = True Then
If txtboxBrowse.Text = "" Then
MsgBox("You haven't choses a textfile as input for usernames")
End If
LabelAttribute.Visible = True
LabelUsername.Visible = False
ComboBoxAttribute.Visible = True
TxtBoxUsername.Visible = False
txtBoxCode.Text = "$users = Get-Content " & txtboxBrowse.Text & vbCrLf & "foreach ($a in $users)" & vbCrLf & "{" & vbCrLf & "Set-QADUser -Identity $a -ObjectAttributes @{" & ComboBoxAttribute.SelectedItem & "='" & TxtBoxValue.Text & "'}" & vbCrLf & "}"
If ComboBoxAttribute.SelectedItem = "Outlook WebAccess" Then
TxtBoxValue.Visible = False
CheckBoxValue.Visible = True
CheckBoxValue.Text = "OWA Enabled?"
txtBoxCode.Text = "$users = Get-Content " & txtboxBrowse.Text & vbCrLf & "foreach ($a in $users)" & vbCrLf & "{" & vbCrLf & "Set-CASMailbox -Identity $a -OWAEnabled" & " " & "$" & CheckBoxValue.Checked & " '}" & vbCrLf & "}"
End If
If ComboBoxAttribute.SelectedItem = "MobileSync" Then
TxtBoxValue.Visible = False
CheckBoxValue.Visible = True
CheckBoxValue.Text = "MobileSync Enabled?"
Dim value
If CheckBoxValue.Checked = True Then
value = "0"
Else
value = "7"
End If
txtBoxCode.Text = "$users = Get-Content " & txtboxBrowse.Text & vbCrLf & "foreach ($a in $users)" & vbCrLf & "{" & vbCrLf & "Set-QADUser -Identity $a -ObjectAttributes @{msExchOmaAdminWirelessEnable='" & value & " '}" & vbCrLf & "}"
End If
Else
LabelAttribute.Visible = True
LabelUsername.Visible = True
ComboBoxAttribute.Visible = True
txtBoxCode.Text = "Set-QADUser -Identity " & TxtBoxUsername.Text & " -ObjectAttributes @{" & ComboBoxAttribute.SelectedItem & "='" & TxtBoxValue.Text & " '}"
If ComboBoxAttribute.SelectedItem = "Outlook WebAccess" Then
TxtBoxValue.Visible = False
CheckBoxValue.Visible = True
CheckBoxValue.Text = "OWA Enabled?"
txtBoxCode.Text = "Set-CASMailbox " & TxtBoxUsername.Text & " -OWAEnabled " & "$" & CheckBoxValue.Checked
End If
If ComboBoxAttribute.SelectedItem = "MobileSync" Then
TxtBoxValue.Visible = False
CheckBoxValue.Visible = True
CheckBoxValue.Text = "MobileSync Enabled?"
Dim value
If CheckBoxValue.Checked = True Then
value = "0"
Else
value = "7"
End If
txtBoxCode.Text = "Set-QADUser " & TxtBoxUsername.Text & " -ObjectAttributes @{msExchOmaAdminWirelessEnable='" & value & "'}"
End If
End If
Maintenant, cet extrait me permet ci-dessus soit utiliser un fichier texte comme une source pour chaque nom d'utilisateur utilisé dans la extrait de PowerShell. Juste pour que tu saches :) Et je sais, c'est probablement codé aussi bêtement que possible. Mais, il fonctionne! :)