小编Sim*_*onS的帖子

Blazor WebAssembly 应用程序由于完整性错误而无法加载

我们开发了 Blazor WebAssembly 应用程序,该应用程序已为特定客户群投入生产使用。

该应用程序在所有具有标准安全设置的浏览器中运行良好。然而,今天早上我接到一位客户的电话,他们的 Chrome 浏览器中根本没有加载该应用程序。

我在控制台中看到以下错误:

  • Unknown error occurred while trying to verify integrity.
  • Failed to load resource: the server responded with a status of 403 (forbidden)
  • Failed to find a valid digest in the 'integrity' attribute for ressource '<somepath.dll>' with SHA-256 integrity <sha56>. the resource has been blocked

现在我的问题是,什么可能导致这种情况?这是浏览器安全设置,还是其他安全设置,例如服务器上、代码中的设置等?我怎样才能解决这个问题?

这是上面提到的错误的图片

Blazor Chrome 控制台错误

browser security blazor

9
推荐指数
2
解决办法
9119
查看次数

我可以查看我的PS脚本需要哪个版本吗?

有时当我在Windows 10 Machine(PowerShell 5.0)上编写脚本时,我会使用早期版本的PowerShell上没有的命令,参数或别名,例如PowerShell 2.0上没有可用的-persist参数new-psdrive,我们所有的Win7机器都是如此使用.

#requires -version x正确设置我的语句,我需要知道我的脚本中是否存在早期PowerShell版本无法使用的命令.当您编写1000行代码时,在脚本中找到不可用的命令可能有点困难.

有没有办法以编程方式检查这个,除了在不同的PowerShell环境中运行脚本,看看发生了什么?

powershell

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

Sync-WDSite Web应用程序物理路径参数

我编写了一个脚本,用于在IIS服务器之间同步站点.我的所有网站都没有错误同步,但一个网站(当然是最重要的网站)得到一个奇怪的错误.

以下代码部分同步站点:

$spp = $path.Get_Item($Name)
$publishsettings = Get-WDPublishSettings -FileName $_.FullName
$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
                                        -SourcePublishSettings $publishsettings `
                                        -IncludeApppool `
                                        -WarningAction Continue `
                                        -sourcesettings $settings `
                                        -ErrorAction Continue `
                                        -destinationsettings $settings `
                                        -debug
Run Code Online (Sandbox Code Playgroud)

我得到的错误是以下(错误是德语,但我试图将其翻译成英语):

Sync-WDSite : The parameter 'Web Application Physical Path Parameter' was already defined.
In C:\Users\Administrator\desktop\wdeploy.ps1:236 Zeichen:17
+         $sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Sync-WDSite], DeploymentException
    + FullyQualifiedErrorId : Microsoft.Web.Deployment.PowerShell.SyncSite
Run Code Online (Sandbox Code Playgroud)

我完全不知道它来自哪里.

请注意,我使用-debug参数来查看cmdlet执行的每个步骤.错误发生在其他站点收集有关站点的信息的阶段(哪个站点是它,它使用哪个apppool等)

谢谢!

编辑: …

iis powershell

5
推荐指数
0
解决办法
629
查看次数

为什么powershell会重新排列我的输出?

CustomObject在我的函数中构建了以下内容

    New-Object -Type PSCustomObject -Property @{
        Computername      = $_
        PowerShellVersion = $result[0]
        dotNetVersion     = $result[1]
        sqlnacli          = $result[2]
        redistributable   = $result[3]
    }
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:

PowerShellVersion Computername redistributable sqlnacli dotNetVersion
----------------- ------------ --------------- -------- -------------
3+ OK             SERVERNAME     NOT OK          NOT OK   NOT OK    
Run Code Online (Sandbox Code Playgroud)

为什么PowerShell重新排列我的对象的顺序,我怎么能强迫它采取我想要的顺序?

powershell

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

如何设置 Edge 浏览器的分配访问权限

我想将 Edge 设置为用户的分配访问权限。

我正在使用以下 PowerShell 命令:

Set-AssignedAccess -AppUserModelId Microsoft.MicrosoftEdge -UserName xy
Run Code Online (Sandbox Code Playgroud)

但我总是收到以下错误(翻译自德语):

发生系统错误 1376。

指定的本地组不存在。

New-CimInstance :发生一般错误,没有可用的特定错误代码。C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\AssignedAccess\AssignedAccess.psm1:300 Zeichen:13 + New-CimInstance -ClassName WEDL_AssignedAccess -Property ... + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息:未指定: (WEDL_AssignedAccess:CimInstance)[新 CimInstance],CimException + ExcellentQualifiedErrorId:MI 结果 1,Microsoft.Management.Infrastruct.CimCmdlets.NewCimInstanceCommand

本地用户存在,应用程序也存在。我还使用我想要设置分配访问权限的用户登录,以确保配置文件设置正确 u0p

这发生在两台不同的 Windows 10(内部版本 14393)计算机上

我使用的是 PS 版本:

PS C:\WINDOWS\system32> $psversiontable.psversion.toString()
5.1.14393.1944
Run Code Online (Sandbox Code Playgroud)

有人知道如何解决这个问题吗?

powershell

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

为什么我的 WindowsForm 在执行循环时没有响应

这可能是一个很难回答的问题。我写了一个脚本来检查进程的响应属性。为了可视化脚本正在运行,我创建了一个 Windows 窗体,您可以在其中查看正在监视的进程。该脚本运行良好,但我无法对我的 winform 执行任何操作。无法最小化或关闭它,一旦我将光标移动到 windowsform,我的鼠标光标就会切换到沙漏符号。任何想法为什么?

当我注释掉 while 循环时,winform 也没有响应

这是我的代码:

if ($ShowWindowsForm){
    $window = New-Object System.Windows.Forms.Form
    $window.text = "Process Watcher"
    $window.size = New-Object System.Drawing.Size(350,100) 
    $window.location = New-Object System.Drawing.Size(100,100) 
    $icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell.exe")
    $window.Icon = $Icon
    $text = New-Object System.Windows.Forms.Label
    $text.Text = "Folgender Prozess wird überwacht:`n$target.exe"
    $text.location = New-Object System.Drawing.Size(10,10) 
    $text.AutoSize = $true
    $window.Controls.Add($text)
    $window.Show()
}
while (1) {
    sleep -Milliseconds 100
    if(!((get-process $target).Responding -eq $true)) {
    #do stuff
}
Run Code Online (Sandbox Code Playgroud)

powershell winforms

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

为什么“真”等于 $true

我不太确定这个确切的问题是否重复,但我在 stackoverflow 上找不到我的具体问题,所以我想不是。

$true 是一个布尔类型:

($true).getType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Boolean                                  System.ValueType
Run Code Online (Sandbox Code Playgroud)

'true' 是一个字符串:

('true').gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
Run Code Online (Sandbox Code Playgroud)

为什么这个条件是真的?

PS C:\WINDOWS\system32> if ('True' -eq $true) {'yes'} else {'no'}
yes
Run Code Online (Sandbox Code Playgroud)

仅仅因为字符串被称为 True 就像布尔值 true 一样?如果我将它与任何其他字符串进行比较,则会出现不同的结果:

PS C:\WINDOWS\system32> 'hello' -eq $true
False
PS C:\WINDOWS\system32> 'true' -eq $true
True
Run Code Online (Sandbox Code Playgroud)

如果您'true' == true在 C# 中执行它会打印cannot convert string to bool错误,并且 C# 和 PS 都基于 .net 并且具有完全相同的语法。为什么会有不同的结果?这对我来说似乎很奇怪。 …

powershell

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

如何从PowerShell中的Connectionstring获取数据库名称

我正在尝试从PowerShell中的连接字符串中获取数据库名称.

"Server=server\instance;uid=User;pwd=Hello;Database=SomeName;"
Run Code Online (Sandbox Code Playgroud)

我可以想到两种方法来做到这一点,要么搜索字符串Database,直到第一次;分割字符串=并选择数据库名称 - 但我真的不知道该怎么做.

第二种方式可能是DBConnectionStringBuilder这样的:

$sb = New-Object System.Data.Common.DbConnectionStringBuilder
$sb.set_ConnectionString($cstring)
[string]$Database = ($sb | ? {$_.Keys -eq 'Database'}).value
Run Code Online (Sandbox Code Playgroud)

但是通过这种方式,无论我如何努力过滤Databasename,它都不会给我返回的databasename.

问题:从连接字符串中获取Databasename的最佳方法是什么?

powershell

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

Set-ExecutionPolicy 哪一个是正确的?

我有一个 Powershell 脚本,它存储在我的域中计算机上的共享文件夹中。现在我想在 DMZ 中的服务器上运行此脚本。域服务器和 dmz 服务器必须执行什么执行策略才能运行此脚本?“每个人”都有“完全的权利”来运行脚本,但它不起作用。

我可以这样做吗set-executionpolicy

谢谢!

powershell

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

使用HashTables的Foreach-Object?

我正在尝试检查一些网络驱动器是通过登录脚本映射的.如果它们未映射,则脚本应该能够映射它们,但下面的代码中的My Foreach-Object不起作用.为什么?我不能在哈希表上使用它吗?

$Hash = @{
    "h:" = "\\server\share";
    "i:" = "\\server\share";
    "j:" = "\\server\share";
    "k:" = "\\server\share";
    "p:" = "\\server\share";
    "z:" = "\\server\share";
    }
        $Hash | ForEach-Object
        {
            If (!(Test-Path $_.Name))
            {
                $map = new-object -ComObject WScript.Network
                $map.MapNetworkDrive($_.Name, $_.Value, $true)
                Write-Host "Mapped That Stuff"
            }
            else
            {Write-Host ($Hash.Name) + ($Hash.Value)}
        }
Run Code Online (Sandbox Code Playgroud)

foreach在这种情况下我该如何使用?或者有更好的方法来解决这个问题,而不是哈希表或foreach循环?

powershell

3
推荐指数
2
解决办法
717
查看次数

标签 统计

powershell ×9

blazor ×1

browser ×1

iis ×1

security ×1

winforms ×1