相关疑难解决方法(0)

使用Regex从.log文件中提取数据

我正在尝试使用正则表达式正向后提取数据。我创建了一个具有以下内容的.ps1文件:

$input_path = ‘input.log’

$output_file = ‘Output.txt’

$regex = ‘(?<=    "name": ")(.*)(?=",)|(?<=    "fullname": ")(.*)(?=",)|(?<=Start identity token validation\r\n)(.*)(?=ids: Token validation success)|(?<=  "ClientName": ")(.*)(?=",\r\n  "ValidateLifetime": false,)’

select-string -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } >$output_file
Run Code Online (Sandbox Code Playgroud)

输入文件如下所示:

08:15.27.47-922: T= 11 ids: Start end session request
08:15.27.47-922: T= 11 ids: Start end session request validation
08:15.27.47-922: T= 11 ids: Start identity token validation
08:15.27.47-922: T= 11 ids: Token validation success
{
  "ClientId": "te_triouser",
  "ClientName": "TE Trio …
Run Code Online (Sandbox Code Playgroud)

regex powershell

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

在 PowerShell 中将控制台设置为最顶层

因此,虽然有很多关于如何将表单设置为最顶层的建议,但我找不到任何使我的控制台在最顶层运行的东西。

所以我的问题是:如何让我的控制台在脚本期间运行在最上面?

console powershell topmost

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

新对象PSCredential无法正常工作 - 在语法上使用Unicode标点符号

我试图接受用户名和密码作为Powershell脚本的参数,但是新的对象

$UserID="Name"
$SecurePassword=convertto-securestring -AsPlainText -Force -String $Password
New-object –TypeName System.Management.Automation.PSCredential –ArgumentList ($UserID,$SecurePassword)
Run Code Online (Sandbox Code Playgroud)

给出错误

新对象:找不到类型[ - TypeName System.Management.Automation.PSCredential - ArgumentList]:验证是否加载了包含此类型的as sembly.在C:\ ps\login.ps1:14 char:17 + ... rCredential = New-object - TypeName System.Management.Automation.PSCre ... + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidType: (:) [New-Object],PSArgumentException + FullyQualifiedErrorId:TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

任何人都有一些线索如何解决这个问题?

unicode powershell utf-8 punctuation

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

源代码中字符串文字的字符编码问题(utf8 无 bom)

$logstring = Invoke-Command -ComputerName $filesServer   -ScriptBlock {\n        param(\n            $logstring,\n            $grp\n        )\n\n    $Klassenbuchordner = "KB " + $grp.Gruppe\n    $Gruppenordner = $grp.Gruppe\n    $share = $grp.Gruppe\n    $path = "D:\\Gruppen\\$Gruppenordner"\n\n    if ((Test-Path D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner) -eq $true)\n    {$logstring += "Verzeichnis f\xc3\xbcr Klassenb\xc3\xbccher existiert bereits"}\n    else {\n        mkdir D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner\n        $logstring += "Klassenbuchordner wurde erstellt!"\n    }} -ArgumentList $logstring, $grp\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的目标是测试目录是否存在并根据需要创建它。

\n\n

问题是路径包含德文字母(元音变音),目标服务器无法正确识别这些字母。

\n\n

例如,服务器收到路径"D:\\Dozent\\01_Klassenb\xc3\x83\xc2\xbccher"而不是预期的"D:\\Dozent\\01_Klassenb\xc3\xbccher".

\n\n

如何强制使用正确的 UTF-8 编码?

\n

powershell utf-8 character-encoding codepages invoke-command

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