我想使用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'的方法.
有人知道这是什么问题吗?
我有一个简单的函数,有两个参数。我没有提到它们是位置性的,但当我检查该函数的帮助时,它会自动为它们分配一个位置。如何强制它们仅被命名为参数(不接受按位置的值)?
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以及建议调用的网站和书籍Get-Help about_Automatic_Variables,例如,获取返回的自动变量列表.我尝试Get-Help使用以下参数调用,但我总是得到一个返回的cmdlet列表:
我错了什么?
我有以下循环:
$output = (command)
do {
something
} while ($output -match "some string")
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.我想在循环中添加超时,我该怎么做?期望是在某些时候输出将不匹配字符串,但如果输出永远匹配字符串,我不希望它永远运行.
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)。但是我仍然有一些问题:
也许有人可以回答我第四个问题:上述MSOL cmdlet和New-AzureRmADApplication+ New-AzureRmADServicePrincipalcmdlet有什么区别?我什么时候应该使用它们中的哪一个?
我有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中加密存储:
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)
如何确定 …
我有一个文本文件,每行有两个值,用空格分隔.现在我想知道其中一列中的重复值.是否可以使用Windows PowerShell实现此目的.
给定一个文本文件:
Apple Fruit
Banana Fruit
Carrot Vegetable
Run Code Online (Sandbox Code Playgroud)
期望的输出是:(我想在第二列中找到重复项)
Fruit
Run Code Online (Sandbox Code Playgroud) 我正在尝试添加一个$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) 我正在尝试从 .NET/C# 或 PowerShell 以编程方式执行 azure CLI 命令。但我找不到任何方法来运行这个。有人可以阐明这一点吗?