У меня проблема с уменьшением / изменением размера winform при запуске в out-gridview, не знаю, почему это так.
Может кто-нибудь помочь, я прикрепил код.это немного отличается от прошлого раза, я думаю, я просто не могу понять, почему это так.
это может быть только моя среда, которая вызывает проблему, но это больше не происходит на моем другом инструменте, который заставляет меня предположить, что это код.
Я пытался решить эту проблему последние несколько дней, но просто не могу ее взломать.
у кого-нибудь есть какие-либо предложения .... действительно застрял.
#This function creates a list of all of the SCCM delivered and installed MSI's
$ComputerName = $env:COMPUTERNAME
#reg path for 32 bit installs
$uninstallkey32 = "software\\microsoft\\windows\\currentversion\\uninstall"
#reg path for 64 bit installs
$uninstallkey64 = "software\\wow6432Node\\microsoft\\windows\\currentversion\\uninstall"
#registry hive to open
$reg = [microsoft.win32.registrykey]::OpenRemoteBaseKey('LocalMachine',$ComputerName)
$regkey = $reg.OpenSubKey($uninstallkey32)
$regkey64 = $reg.OpenSubKey($uninstallkey64)
#get all subkeys
$subkeys = $regkey.GetSubKeyNames()
$subkeys64 = $regkey64.GetSubKeyNames()
#clear displayname array
$DisplayName = @()
#loop through 32 bit installs
foreach ($key in $subkeys)
{
$thiskey = $uninstallkey32+"\\"+$key
$thissubkey = $reg.OpenSubKey($thiskey)
if ($thissubkey.GetValue("InstallSource") -like "C:\Windows\ccmcache*")
{
#add msi data to array
$DisplayName += ,@($thissubkey.GetValue("DisplayName"),$thissubkey.GetValue("DisplayVersion"),$key)
}
}
#loop through 64 bit installs
foreach ($key in $subkeys64)
{
$thiskey = $uninstallkey64+"\\"+$key
$thissubkey = $reg.OpenSubKey($thiskey)
if ($thissubkey.GetValue("InstallSource") -like "C:\Windows\ccmcache*")
{
#add msi data to array
$DisplayName += ,@($thissubkey.GetValue("DisplayName"),$thissubkey.GetValue("DisplayVersion"),$key)
}
}
#remove duplicates from arry and sort
$sorted_name = $DisplayName |Sort |Get-Unique
$sorted_name = $sorted_name| ? {$_}
$Application = Foreach ($Name in $sorted_Name)
{
$Name | Select @{Name = 'Name';Expression = {$Name[0]}}, @{Name = 'GUID';Expression = {$Name[2]}} | Select #-Unique
}
$SelectedApplication = $Application | Out-GridView -PassThru -Title "Please select MSI to Uninstall" | Select-Object -ExpandProperty "GUID" | Out-String
$SelectMSIName = $Application | Select-Object "Name"
try {
#Invoke-Expression "PsExec.exe \\" + $ComputerName + " cmd /c msiexec /uninstall '" + $SelectedApplication + "' /qn /norestart"
.\PsExec.exe \\$ComputerName cmd /c msiexec /uninstall $SelectedApplication /qn /norestart
LogWrite "Application removed succesfully. Reboot may be required"
} catch {
LogWrite "Failed to uninstall application."
}
Сокращение
Сценарий
$AdminTool = New-Object system.Windows.Forms.Form
$AdminTool.MinimumSize = New-Object System.Drawing.Size(770, 380)
$AdminTool.Width = 770
$AdminTool.Height = 380
$AdminTool.AutoSize = $false
$AdminTool.AutoScaleMode = "None"
$AdminTool.text = "MOD"
$AdminTool.BackColor = $Form_BG
$AdminTool.TopMost = $false
$AdminTool.StartPosition = "CenterScreen"
$AdminTool.FormBorderStyle = "FixedDialog"
$AdminTool.MaximizeBox = $false
$AdminTool.ControlBox = $falses
$AdminTool.MinimizeBox = $false
$AdminTool.MainMenuStrip = $MainMenu
$AdminTool.KeyPreview = $True
$AdminTool.Add_KeyDown({if ($_.KeyCode -eq "Return"){ConnectPC}})
Вот код формы
Версия небольшого изменения версии Powershell Major
5 1 15063 1446