小编use*_*867的帖子

如何通过一组键值枚举哈希表作为键值对/过滤哈希表

编者注: 这个问题有一个复杂的历史,但归结为:
*要了解如何通过其键值对枚举哈希表的条目,请参阅接受的答案.
*要了解如何通过一组键值过滤哈希表,请参阅另一个答案.


我想我再次遇到了XY问题,我最初的问题是关于过滤哈希表.我发现在创建哈希表之前过滤更容易.问题回答了,对吗?

不,Y问题是循环每个Key并使用@briantist帮助我的值.

我的目标是循环使用键名称(时间戳),并使用键名作为任务名称和触发器来安排任务.

我正在使用Group-Object -AsHashTable -AsString -editPipeline从CSV文件创建哈希表,这里值得一提的是,在创建HashTable之前过滤CSV只会使脚本更容易.

举个例子:

Import-CSV (ls -path D:\ -Filter source*.csv | sort LastWriteTime | Select -Last 1).FullName |
 where {$_.TimeCorrected -ne 'ManualRebootServer'} |
 group TimeCorrected -AsHashTable -AsString
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历键名并能够使用以下方法显示键名:

$var = Import-Csv csv123.csv | Group-Object Value1 -AsHashTable -AsString

foreach ($key in $var.Keys){"The key name is $key"}

#Create a scheduled task named and …
Run Code Online (Sandbox Code Playgroud)

powershell hashtable

22
推荐指数
2
解决办法
4万
查看次数

Powershell无法找到类型[System.Windows.Forms.KeyEventHandler]

这可能是一个非常简单的问题,但我完全迷失了,寻找答案并没有帮助.

我有一些powershell代码来显示带有TextBoxes的简单GUI.某些文本框允许用户按Enter键以运行Button_Click代码.当我尝试运行PS1脚本时,出现以下错误:

Unable to find type [System.Windows.Forms.KeyEventHandler].
Make sure that the assembly that contains this type is loaded.At C:\Scripts\GUI-Testing.ps1:161 char:1

$TestVar=[System.Windows.Forms.KeyEventHandler]
CategoryInfo          : InvalidOperation: (System.Windows.Forms.KeyEventHandler:TypeName)
FullyQualifiedErrorId : TypeNotFound
Run Code Online (Sandbox Code Playgroud)

奇怪的一部分,如果我关闭GUI,然后重新运行该脚本,我没有得到的Unable to find type错误,并根据需要按下Enter键的作品.

以为我有一个答案,我尝试使用[void][reflection.assembly]::Load('System.Windows.Forms.KeyEventHandler')哪个给出了这个错误Exception calling "Load" with "1" argument(s): "Could not load file or assembly 'System.Windows.Forms.KeyEventHandler' or one of its dependencies. [FileNotFoundException]

powershell user-interface .net-assembly

14
推荐指数
1
解决办法
2万
查看次数

带有空格和制表符补全的 PowerShell Param ValidateSet 值

首先,我为发布另一个有关 PowerShell 和选项卡完成的问题表示歉意。StackOverflow 系统识别了几个很好的问题并提供了与这个主题相关的答案,但它们似乎都太麻烦了,无法在这个简单的New-ADComputer脚本中实现。

参数将进入 aSplat以保持脚本可读。以下代码在 ISE 中正确制表符补全,但必须用双引号引起来。

PowerShell 中是否有任何本机方法允许对包含空格的参数集进行制表符补全?

Param(
  [Parameter(Mandatory=$true)]
  [string]$Server,
  [Parameter(Mandatory=$true)]
  [ValidateSet('Env1','Env 2','Env 3')]
  [string]$Environment,
  [Parameter(Mandatory=$true)]
  [ValidateSet('Application','Database','File and Print','Web Server')]
  [string]$Type
)
$NewADitems = @{
  Name        = $server
  Path        = "OU=$Type,OU=$Environment,OU=Smaller DN string"
  Location    ='MySite'
  Description = "Test Description"
  ManagedBy   = "Huge Distingushed Name string"
  WhatIf      = $true
}
Write-Host @NewADitems
Run Code Online (Sandbox Code Playgroud)

使用的命令和收到的错误:

PS C:\Scripts> .\ADComputer-ParamTest.ps1 -Server ThisTest -Environment Env 3 -Type File and Print
C:\Scripts\ADComputer-ParamTest.ps1 : Cannot validate argument on parameter
'Environment'. The …
Run Code Online (Sandbox Code Playgroud)

powershell active-directory

5
推荐指数
1
解决办法
1691
查看次数

PowerShell功能多个SQL查询以CSV格式输出

我在让PowerShell运行多个SQL查询并将结果导出为CSV时遇到问题.

我正在尝试使用a来完成此操作,Function但是Process当我希望运行两个查询并输出两个CSV文件时,块中会出现问题.

我尝试创建一个函数来运行查询,第二个函数创建CSV文件但是甚至没有运行SQL查询.我这样做没有安装SQL执行此PowerShell脚本的地方.-谢谢!

Function Run-Query {
 param([string[]]$queries,[string[]]$sheetnames)
Begin{
 $SQLServer = 'ServerName'
 $Database = 'DataBase'
 $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
 $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $Database; Integrated Security = True"
}#End Begin
Process{
 $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
 $SqlCmd.CommandText = $queries
 $SqlCmd.Connection = $SqlConnection
 $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
 $SqlAdapter.SelectCommand = $SqlCmd
 $DataSet = New-Object System.Data.DataSet
 $SqlAdapter.Fill($DataSet)
 $DataSet.Tables[0] | Export-Csv -NoTypeInformation -Path "C:\Scripts\$sheetnames.csv"
}#End Process
End{
 $SqlConnection.Close()
}
}#End function run-query.
$queries = @()
 $queries += @'
Select …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server csv powershell

4
推荐指数
1
解决办法
3316
查看次数