我想在我的 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?:/
我已经用头撞墙好几个小时了,正在寻求帮助。为了简化我的问题,我有两个数组,一个包含通配符,另一个使用这些通配符:
$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
有谁知道为什么喜欢/匹配/包含不起作用背后的逻辑,我能做些什么使它起作用?它不必很漂亮,它只需要工作
我发生了一个奇怪的问题。我正在从名称中解析一个数字,看起来像这样:($env:COMPUTERNAME).Substring(11, 2)。该名称通常类似于abcxyzhij099w。我99在那个例子中。然后,我使用一系列-gt -lt调用来评估它,例如elseif ($time -ge 60 -and $time -lt 120)。
我的问题是我目前正在评估数字62。它成功地计算它的不足70,99以及620,但之间的任何东西100和619失败。我包含了一张图片,但我不知道为什么会发生这种情况。手动设置$time为62可以通过所有检查,但是从名称进行解析会导致检查失败。
我已验证其长度为2,并将其gm显示为system.string。我想我只是想念一些难以置信的小东西,但我以前从未遇到过。任何援助将不胜感激!