小编Mar*_*ndl的帖子

Powershell错误:方法调用...不包含名为'replace'的方法

我想使用PowerShell搜索并替换xml文件中的字符串.我试过这个:

(gc d:\test.xml).replace('1234','xxxx')|sc d:\test.xml
Run Code Online (Sandbox Code Playgroud)

这适用于我的test.xml文件.我的test.xml文件的内容是:

uehjduehduhfeuf xxxxxxxx hallo"1234"

但该文件仅用于测试.我想以这种方式编辑我的tomcat服务器的server.xml,如果我使用完全相同的命令提到obove,我收到此错误消息:

方法调用失败,因为[System.Object []]不包含名为'replace'的方法.

有人知道这是什么问题吗?

xml powershell search replace

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

PowerShell 中的命名参数显示为“位置”

我有一个简单的函数,有两个参数。我没有提到它们是位置性的,但当我检查该函数的帮助时,它会自动为它们分配一个位置。如何强制它们仅被命名为参数(不接受按位置的值)?

Function Test-Params
{
    Param
    (
        [Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)]
        $Param1,

        [Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)]
        $Param2
    )

    Write-Host "$Param1 $Param2"
}
Run Code Online (Sandbox Code Playgroud)

当我检查此函数的帮助或尝试通过提供参数位置值来运行该函数时,它可以工作(但它不应该工作):

Test-Params test1 test2
test1 test2
Run Code Online (Sandbox Code Playgroud)

帮助输出:

help Test-Params -Full

NAME
    Test-Params

SYNTAX
    Test-Params [-Param1] <Object> [[-Param2] <Object>]  [<CommonParameters>]


PARAMETERS
    -Param1 <Object>

        Required?                    true
        Position?                    0
        Accept pipeline input?       true (ByValue, ByPropertyName)
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false

    -Param2 <Object>

        Required?                    false
        Position?                    1
        Accept pipeline input?       true (ByValue, ByPropertyName)
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false
Run Code Online (Sandbox Code Playgroud)

powershell parameter-passing

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

Get-Help about_Automatic_Variables不起作用

我正在研究PowerShell以及建议调用的网站和书籍Get-Help about_Automatic_Variables,例如,获取返回的自动变量列表.我尝试Get-Help使用以下参数调用,但我总是得到一个返回的cmdlet列表:

  • about_Variables
  • 参阅about_Automatic_Variables
  • about_Environment_Variables
  • 参阅about_Preference_Variables
  • 参阅about_Scopes

我错了什么?

powershell

5
推荐指数
2
解决办法
250
查看次数

具有超时的do-while循环

我有以下循环:

$output = (command)
do {
something
} while ($output -match "some string")
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.我想在循环中添加超时,我该怎么做?期望是在某些时候输出将不匹配字符串,但如果输出永远匹配字符串,我不希望它永远运行.

powershell

5
推荐指数
2
解决办法
6851
查看次数

Azure Active Directory应用程序和服务主体

Azure Active Directory具有很好的应用程序服务主体概念,可以作为应用程序进行身份验证,例如用于CI平台或SaaS应用程序。

现在有多种创建方式,例如将MSOL与cmdlet结合使用:

New-MsolServicePrincipal -DisplayName "My new API app" -Type password -Value $myClientSecret
Run Code Online (Sandbox Code Playgroud)

这可以很好地工作(在我使用分配了一些角色给服务主体后Add-MsolRoleMember,我可以访问Graph API)。但是我仍然有一些问题:

  1. 为什么此cmdlet不需要首先创建应用程序?
  2. 此cmdlet是否同时创建-应用程序和服务主体?
  3. 为什么在经典和新的Azure门户中都看不到该应用程序?

也许有人可以回答我第四个问题:上述MSOL cmdlet和New-AzureRmADApplication+ New-AzureRmADServicePrincipalcmdlet有什么区别?我什么时候应该使用它们中的哪一个?

powershell active-directory azure azure-active-directory

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

在AAD安全Azure Web App中检索访问令牌

我有Azure Web应用程序中托管的Angular4应用程序和Azure API应用程序中托管的.NET核心Web API.

该API使用Azure Active Directory进行保护.目前,我使用ng2-adal获取访问令牌,我将其注入标头以执行我的API调用.

现在,我尝试使用相同的 ClientId(如API)删除ng2-adal模块并使用身份验证/授权功能保护我的Web App .当我浏览我的网站时,我被重定向到AAD登录,在我成功登录后,我被重定向到我的网站.现在,我不想在我的Web App中调用API(使用相同的ClientId进行保护),但无法找到检索令牌的方法.

在这种情况下,有没有办法在Angular App检索访问令牌?看起来令牌在AppServiceAuthSession Cookie中加密存储:

在此输入图像描述

azure angularjs azure-active-directory

5
推荐指数
2
解决办法
3817
查看次数

缺少 Microsoft Graph ServicePrincipal

TL;TR 我们正在使用 Microsoft Graph API 创建 AAD 应用程序。该应用程序有一些requiredResourceAccess条目,其中需要访问 microsoft graph。创建应用程序后,我们希望使用appRoleAssignments对象将角色分配给服务主体。该对象需要resourceId,它是我尝试确定的 objectId(例如 Microsoft 图形的)。

我们正在使用 Graph API 本身来获取服务主体:https://graph.windows.net/<tenant>/servicePrincipals?api-version=1.6但不知何故缺少Microsoft Graph

Windows Azure Active Directory      
Microsoft App Access Panel          
Azure Classic Portal                
Microsoft.SMIT                      
Office 365 Configure                
Windows Azure Service Management API
Microsoft.SupportTicketSubmission   
Azure ESTS Service                  
Signup                              
Microsoft password reset service  
Run Code Online (Sandbox Code Playgroud)

我需要确定的ObjectId中的微软图形服务主体。从新的 AAD 开始,似乎没有 Microsoft Graph Principal:

Get-MsolServicePrincipal -AppPrincipalId 00000003-0000-0000-c000-000000000000
Run Code Online (Sandbox Code Playgroud)

输出

Get-MsolServicePrincipal : Service principal was not found.
Run Code Online (Sandbox Code Playgroud)

如何确定 …

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

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

在文本文件的两列中的一列中查找重复值

我有一个文本文件,每行有两个值,用空格分隔.现在我想知道其中一列中的重复值.是否可以使用Windows PowerShell实现此目的.

给定一个文本文件:

Apple Fruit
Banana Fruit
Carrot Vegetable
Run Code Online (Sandbox Code Playgroud)

期望的输出是:(我想在第二列中找到重复项)

Fruit
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0 powershell-3.0 powershell-4.0

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

变量中的PowerShell变量

我正在尝试添加一个$numberOfNics基于数字添加nics 的变量.现在这是我的代码,我对如何将它放入循环感到困惑.我知道一个数组可能是要走的路,但不太确定如何在这个意义上创建一个只调用变量而不是设置它们的数组.

旧代码:

$numberOfNics=1

$networkname1 = "ondemandport1"
$networkname2 = "ondemandport2"
$networkname3 = "ondemandport3"
$networkname4 = "ondemandport4"
$networkname5 = "ondemandport5"
$networkname6 = "ondemandport6"
$networkname7 = "ondemandport7"
$networkname8 = "ondemandport8"
$networkname9 = "ondemandport9"

$networkInterface1 = New-AzureRmNetworkInterface -Name $networkname1

$networkInterface2 = New-AzureRmNetworkInterface -Name $networkname2 

$networkInterface3 = New-AzureRmNetworkInterface -Name $networkname3 

$networkInterface4 = New-AzureRmNetworkInterface -Name $networkname4 

$networkInterface5 = New-AzureRmNetworkInterface -Name $networkname5
Run Code Online (Sandbox Code Playgroud)

为了整理这个,我想做一个像这样的循环

for ($i = 0; $i -lt $numberOfNics; $i++)
{
    $networkInterface$i = New-AzureRmNetworkInterface -Name $networkname$i
}
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢马丁,但现在我无法调用变量.

$networkInterfaces = 1 .. $numberOfNics …
Run Code Online (Sandbox Code Playgroud)

powershell azure

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

如何从 .Net/C# 或 PowerShell 以编程方式调用或执行 azure cli 命令?

我正在尝试从 .NET/C# 或 PowerShell 以编程方式执行 azure CLI 命令。但我找不到任何方法来运行这个。有人可以阐明这一点吗?

.net powershell azure azure-cli

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