小编Nic*_*ick的帖子

Windows 2012 R2 中的 Powershell 5.1

我想在我的 Windows 2012 R2 服务器中安装/升级 powershell。默认 w2k12 具有 4.0 powershell,因此我已将 Windows Management Framework 5.1 下载为文件:W2K12-KB3191565-x64.msu研究谷歌发现...

我必须安装完整版的 .NET Framework 4.5.2 - 好吧.. 下载 dotNetFx45_Full_setup.exe 并运行。

错误:“”Microsoft .NET Framework 4.5 已经是此操作系统的一部分。您不需要安装 .NET Framework 4.5 可再发行组件。此计算机上已安装相同或更高版本的 .NET Framework 4.5。:"

OK 尝试安装开发者版本 NDP452-KB2901951-x86-x64-DevPack.exe

尝试检查是否已安装 FULL - (Get-ItemProperty -Path 'HKLM:\Software\Microsoft\NET Framework Setup\NDP\v4\Full' -ErrorAction SilentlyContinue).Version -like '4.5*' 仍然是错误的

到底是怎么回事 ?为什么在 Windows 2012 中硬安装最新的 powerhsell 5.1?:/

.net windows powershell frameworks server

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

Powershell 在匹配数组时使用通配符

我已经用头撞墙好几个小时了,正在寻求帮助。为了简化我的问题,我有两个数组,一个包含通配符,另一个使用这些通配符:

$WildCardArray = @("RED-*.htm", "*.yellow", "BLUE!.txt", "*.green", "*.purple")
$SpelledOutArray = @("RED-123.htm", "456.yellow", "BLUE!.txt",  "789.green", "purple.102", "orange.abc")
Run Code Online (Sandbox Code Playgroud)

我无法让 PowerShell 识别出这些匹配。

我的最终目标是让输出告诉我 Purple.102 和 orange.abc 不在 $WildCardArray 中。

看起来超级简单!我尝试过的一些事情:

$WildCardArray = @("RED-*.htm", "*.yellow", "BLUE!.txt", "*.green", "*.purple")
$SpelledOutArray = @("RED-123.htm", "456.yellow", "BLUE!.txt",  "789.green", "purple.102", "orange.abc")
foreach($Item in $SpelledOutArray)
{
$item | where {$wildcardarray -contains $item}
}
Run Code Online (Sandbox Code Playgroud)

结果我得到 BLUE!.txt 因为它是我的控件,没有通配符。如果我将其更改为 -notcontains,则会返回除 BLUE 之外的所有结果。我试过包含、匹配、等于、喜欢和它们所有的对立面、比较对象,但没有任何效果。我没有错误,只是没有得到预期的结果

我尝试用 [a-zA-Z] 和其他组合替换“*”,但它从字面上替换它,而不是作为通配符。我不确定我做错了什么...... PSVersion 5.1 Win 10

有谁知道为什么喜欢/匹配/包含不起作用背后的逻辑,我能做些什么使它起作用?它不必很漂亮,它只需要工作

regex arrays powershell wildcard

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

Powershell小于“ -lt”的结果为false,即使仅在某些数字上为true

我发生了一个奇怪的问题。我正在从名称中解析一个数字,看起来像这样:($env:COMPUTERNAME).Substring(11, 2)。该名称通常类似于abcxyzhij099w。我99在那个例子中。然后,我使用一系列-gt -lt调用来评估它,例如elseif ($time -ge 60 -and $time -lt 120)

我的问题是我目前正在评估数字62。它成功地计算它的不足7099以及620,但之间的任何东西100619失败。我包含了一张图片,但我不知道为什么会发生这种情况。手动设置$time62可以通过所有检查,但是从名称进行解析会导致检查失败。

我已验证其长度为2,并将其gm显示为system.string。我想我只是想念一些难以置信的小东西,但我以前从未遇到过。任何援助将不胜感激!

在此处输入图片说明

powershell

0
推荐指数
1
解决办法
29
查看次数

标签 统计

powershell ×3

.net ×1

arrays ×1

frameworks ×1

regex ×1

server ×1

wildcard ×1

windows ×1