小编Mar*_*ndl的帖子

如何在powershell中将字符串转换为表格或对象

如何将以下导出的文本转换为 csv,以便我可以将其用作 powershell 中的对象。例如:

where{$_.qlimit -eq 27}
Run Code Online (Sandbox Code Playgroud)

文本:

  samid            qlimit    qused  
  Administrator    -1        0      
  Guest            -1        0      
  admin            27        8      
  krbtgt           -1        0      
  r                -1        0      
  admin2           44        0  
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0 powershell-4.0

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

Cmdlet在输出中舍入数字

是否有一个cmdlet可以对输出中的数字(所有浮点值)进行舍入?

当我运行以下命令时:

get-vm |select ProvisionedSpaceGB,UsedSpaceGB
Run Code Online (Sandbox Code Playgroud)

我把这个输出作为一个表:

            ProvisionedSpaceGB                    UsedSpaceGB
            ------------------                    -----------
1224,0003194380551576614379883 349,88938544876873493194580078
1224,0003062393516302108764648 321,74483488313853740692138672
502,80292716529220342636108399 74,052481059916317462921142578
700,00035238638520240783691406 484,56624550372362136840820312
 800,0003144945949316024780273 322,26342210918664932250976562
Run Code Online (Sandbox Code Playgroud)

我知道我可以在selectcmdlet中定义它,如下所示:

 get-vm | select @{ n="ProvisionedSpaceGB"; e={[math]::round( $_.ProvisionedSpaceGB, 2 )}},
    @{ n="UsedSpaceGB"; e={[math]::round( $_.UsedSpaceGB, 2 )}}
Run Code Online (Sandbox Code Playgroud)

然后得到这个输出:

ProvisionedSpaceGB UsedSpaceGB
------------------ -----------
           1224,00      349,58
           1224,00      320,32
            502,80       74,05
            700,00      484,57
            800,00      322,26
Run Code Online (Sandbox Code Playgroud)

但必须有一个更简单的方法,比如将它管道到另一个cmdlet:

get-vm |select ProvisionedSpaceGB,UsedSpaceGB |RoundNumbers -Precision 2
Run Code Online (Sandbox Code Playgroud)

获得第二个输出.

powershell

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

如何从文本文件中提取子字符串?

我有以下文本文件

testA=foo
testB=foobar
testC=Whatever
Run Code Online (Sandbox Code Playgroud)

现在我想提取的值testBfoobar.使用我当前的PowerShell命令,我只能收到整行:

testB=foobar
Run Code Online (Sandbox Code Playgroud)

我的命令是:

Select-String -Path .\test.txt -Pattern "testB=" -List
Run Code Online (Sandbox Code Playgroud)

我可以看到字符串有替换函数,所以你可以testB=用空字符串替换,但我不知道如何实现这一点.

powershell

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

将字符串附加到数组的每个项目

我有一个数组,当我尝试向其添加字符串时,该数组将转换为单个字符串。

我在数组中有以下数据:

$Str  
451 CAR,-3 ,7 ,10 ,0 ,3 , 20 ,Over: 41  
452 DEN «,40.5,0,7,0,14, 21 ,  Cover: 4  
Run Code Online (Sandbox Code Playgroud)

我想在这种情况下像这样添加游戏的一周:

$Str = "Week"+$Week+$Str 
Run Code Online (Sandbox Code Playgroud)

我得到一个字符串:

Week16101,NYG,42.5 ,3 ,10 ,3 ,3 , 19 ,Over 43 102,PHI,-  1,14,7,0,3, 24 ,  Cover 4 103,
Run Code Online (Sandbox Code Playgroud)

当然,我希望追加发生在每一行上。

arrays powershell append

4
推荐指数
3
解决办法
9755
查看次数

在 PowerShell 中获取特定网络信息

我不确定这是我的错误,还是我的 PowerShell 运行不正常。

get-netipconfiguration | where {$_.subnetmask} 
Run Code Online (Sandbox Code Playgroud)

我也无法在网上找到任何有效的示例。我什至尝试使用WMI命令,但仍然无法正常工作。我有最新版本的 PowerShell 并且以前做过这个,但我以前的方法不起作用。目前我正在使用它来IPaddress获取效果很好的

$ipaddress = (Get-NetIPConfiguration).IPv4Address.IPAddres
Run Code Online (Sandbox Code Playgroud)

这很好用,但我似乎无法弄清楚如何使用它来显示DNSSubnet mask。我知道这可能是一个菜鸟问题,但他们已经改变了一些东西,我正试图找到一种没有太多代码的简单方法。任何帮助表示赞赏!

powershell networking

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

连接路径和文件

我是PowerShell的新手,我很高兴我在编写新功能等方面有多远,但是这个让我难过,这么简单......

以下是功能:

Function fnConcatenatePathFile ([String]$Path, [String]$File)
{
   $FullPath = "$($Path)\$($File)"
   Return $FullPath
}
Run Code Online (Sandbox Code Playgroud)

然后我调用这个函数:

fnConcatenatePathFile ("C:\_Store", "run.sql")
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

"C:\_Store\run.sql"
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

"C:\_Store run.sql\"
Run Code Online (Sandbox Code Playgroud)

让我疯狂......任何线索?

variables powershell function

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

显示文件名

我必须使用获取并显示特定的文件名.

假设在特定位置有5个文件,我需要显示每个文件名.

powershell

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

使用PowerShell在同一命令中创建目录和文件

我尝试在一个PowerShell命令中创建一个文件夹和一个文件:我试过:

New-Item hello\test\ (New-Item hello\test\file.txt -type file) -type directory -Force
Run Code Online (Sandbox Code Playgroud)

New-Item file.txt (New-Item hello\test\ -type direcotry) -type file -Force
Run Code Online (Sandbox Code Playgroud)

但两者似乎都没有按预期工作.我想要实现的是创建一个命令hello\test\file.txt

powershell new-item

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

服务主体创建另一个服务主体的最低权限

我试图找到一些信息,服务主体创建另一个 AAD 应用程序/服务主体需要哪些应用程序权限,但没有找到最小权限设置。

目前,我为 SP 分配了一些目录角色,例如 Directory Writers,这可能太多了?

有人知道SP 创建另一个 SP 需要哪个应用程序权限吗?还是 SP 需要目录角色?

azure azure-active-directory azure-ad-graph-api

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

使用PowerShell进行激活并忘记Web请求

对于PowerShell中的webrequest我使用

Invoke-WebRequest -Uri 'https://www.it-takes-long.de' -UseBasicParsing
Run Code Online (Sandbox Code Playgroud)

有没有办法在火灾中忘记网络请求?

我调用网址从我的构建服务器上预热网页,我宁愿继续下一步而不是等待网络启动.

powershell

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