我们的开发人员使用 VisualStudio 2017
他们使用我编写的 Post-Build PowerShell 函数将应用程序发布到正确的目的地。
有时(100 次中有 1 次)他们会收到以下错误:
Copy-Item : The process cannot access the file 'X:\xy\application.exe' because it is
9> being used by another process.
Run Code Online (Sandbox Code Playgroud)
问题是 - 它没有被另一个进程使用。任何其他用户(例如我)可以重命名目标中的文件,删除它或其他任何。
当开发人员重新启动他的计算机时,他可以毫无问题地发布应用程序。
所以在我看来,他的文件系统搞砸了一些事情。我们尝试了
taskkill /im explorer.exe /f && start "" explorer.exe 但这没有帮助。
如果开发人员使用他的资源管理器查看目标,即使我删除了目标文件,开发人员也会看到目标文件。
怎么会这样?我们如何解决这个问题?
PowerShell 函数本身非常轻量级。它基本上是为了部署:
Write-Host "Starting Copying files to $d"
$Copy = Copy-Item $FilesToPublish $d -Force -Recurse
Write-Host "Finished Copying files to $d"
Run Code Online (Sandbox Code Playgroud)
如果指定(并且已指定),该函数还将删除目标的所有锁
Get-SmbOpenFile -CimSession $Session | ? { $_.Path -like "$EndPath*" } | Close-SmbOpenFile -Force …Run Code Online (Sandbox Code Playgroud) 我们正在为所有网站设置 HTTPS。不幸的是,我在 IIS 方面并没有真正的经验。
我有两个证书,一个是包含 10 个子域的 EV-UCC-Certificate。子域来自两个不同的域,如下所示:
shop.abcdomain.com
www.xzydomain.com
Run Code Online (Sandbox Code Playgroud)
我也有这些域之一的通配符证书 *.abcdomain.com
两个域都在同一 IP 地址下的同一 IIS 服务器上运行。
当我将通配符证书分配给我的某些网站时,一切正常,但是当我想将 EV-UCC 证书分配给 IIS 中同一“站点”集合中的另一个站点时,我收到以下错误
至少有一个其他站点正在使用相同的 HTTPS 绑定,并且该绑定配置了不同的证书
我对此有点困惑。为什么我不能在同一个 IIS 上分配两个不同的证书?一个 IIS 上只能有一个 SSL 证书吗?如果是这样,是否有解决方法让 IIS 认为他可以携带两个 SSL 证书?
我在 Windows Server 2008 R2 上运行 IIS 7.5
我们有一个 RDS Serverfarm,其中包含一台 AD 服务器和两台 RDS 服务器。AD是Server 2012 R2,RDS服务器是Server 2016。
当我通过 Teamviewer 在服务器重启后登录到 RDS 服务器并打开 servermanager 来管理连接时,我总是必须将服务器添加到服务器池中,以查看连接。这有点烦人
是否有可用于设置服务器池的 PowerShell cmdlet?
谢谢!
powershell remote-desktop remote-desktop-services windows-server-2016
我在 PowerShell 中编写了一个登录脚本。该脚本嵌入在 GPO 中,并在用户登录域时运行。
我的问题是,我在脚本中部署的驱动器没有被部署。我确信登录脚本会运行,因为在脚本结束时我会向自己发送一封电子邮件,但我总是会收到它。所以运行脚本应该不是问题。$Error每次脚本运行时,我都会记录整个变量,但没有说明为什么会发生此错误。
我几乎可以肯定错误不在脚本本身中 - 我认为它必须是权限错误。
我认为当我-NoProfile在运行脚本时指定参数时可以解决这个问题,但我不知道将它放在 GPO 的哪个位置。由于美观原因,我不希望批处理文件调用脚本:-)。
编辑:指定-noprofile没有解决问题
编辑:由于有评论说没有足够的关于驱动器如何映射的信息,我将整个映射部分粘贴在下面:
# UserOU as a parameter, value set in GPO
Param([string]$UserOU)
# preparing some stuff...
Import-Module .\SecureStringFunctions.psm1
[Byte[]]$key = (1..16)
$pw = Get-Content .\LocalAdminCred.txt | ConvertTo-SecureString -key $key
# Tried this to elevate the Script IF it's needed. Didn't solve my problem. works only on PS 4.0 but didn't solve the issue on my 5.0 machine
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{ Start-Process …Run Code Online (Sandbox Code Playgroud) 我通过从MSDN下载的 ISO 在 Windows Server 2019 Core 上安装了 SQL Server 2019 Standard 。当我下载它时,它特别指出“不需要产品密钥”。
由于我将其安装在 Server Core 上,因此我遵循了这些说明。
如果您查看说明,会发现/PID需要一个参数来告诉安装程序要安装的 SQL Server 版本(例如 Express、Developer、Standard 等)
但是,我没有找到 SQL Server 2019 标准版的产品 ID。MSDN 中没有,VLSC 中没有,互联网上的其他地方也没有。
该指令指出:
SQL Server 设置控制/PID
指定 SQL Server 版本的产品密钥。如果未指定此参数,则使用评估。
这让我相信我的 SQL Server 现在处于评估模式。我现在想检查我的 SQL Server 是否已获得许可,以及它是如何获得许可的(我应该拥有 4 核的许可证)。
事情有点复杂,因为另一个具有 4 个核心的 SQL Server 的虚拟机(在另一个许可协议中获得许可)正在同一台物理机上运行,我读到必须获得物理核心的许可,而不是虚拟机核心。我的新虚拟机上的新 SQL Server 现在是否也使用与其他虚拟机相同的许可证?
然而,我的问题是我不知道我的 SQL Server 现在是否已获得许可。我运行了以下查询:
PS C:\Users\Administrator\Documents> Invoke-SqlCmd -Query "SELECT @@Version" | fl *
Column1 : Microsoft SQL Server …Run Code Online (Sandbox Code Playgroud) windows ×4
powershell ×3
deployment ×1
filesystems ×1
group-policy ×1
iis ×1
iis-7.5 ×1
sql-server ×1