我们开发了 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现在我的问题是,什么可能导致这种情况?这是浏览器安全设置,还是其他安全设置,例如服务器上、代码中的设置等?我怎样才能解决这个问题?
这是上面提到的错误的图片
有时当我在Windows 10 Machine(PowerShell 5.0)上编写脚本时,我会使用早期版本的PowerShell上没有的命令,参数或别名,例如PowerShell 2.0上没有可用的-persist参数new-psdrive,我们所有的Win7机器都是如此使用.
要#requires -version x正确设置我的语句,我需要知道我的脚本中是否存在早期PowerShell版本无法使用的命令.当您编写1000行代码时,在脚本中找到不可用的命令可能有点困难.
有没有办法以编程方式检查这个,除了在不同的PowerShell环境中运行脚本,看看发生了什么?
我编写了一个脚本,用于在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等)
谢谢!
编辑: …
我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重新排列我的对象的顺序,我怎么能强迫它采取我想要的顺序?
我想将 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)
有人知道如何解决这个问题吗?
这可能是一个很难回答的问题。我写了一个脚本来检查进程的响应属性。为了可视化脚本正在运行,我创建了一个 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) 我不太确定这个确切的问题是否重复,但我在 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中的连接字符串中获取数据库名称.
"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 脚本,它存储在我的域中计算机上的共享文件夹中。现在我想在 DMZ 中的服务器上运行此脚本。域服务器和 dmz 服务器必须执行什么执行策略才能运行此脚本?“每个人”都有“完全的权利”来运行脚本,但它不起作用。
我可以这样做吗set-executionpolicy?
谢谢!
我正在尝试检查一些网络驱动器是通过登录脚本映射的.如果它们未映射,则脚本应该能够映射它们,但下面的代码中的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循环?