Hyper Get-VMSwitch-V cmdlet 返回具有 NetAdapterInterfaceDescription 属性的 VMSwitch 对象,但这仅针对物理类型的交换机进行填充。
对于内部类型的开关,此属性为空。主机上的虚拟适配器和 VMSwitch 之间唯一明显的关系是名称 - 例如,对于交换机“Foo”,默认适配器名称是“vEthernet (Foo)”。
但是,网络适配器可以重命名。我已经在与开关相关的输出上寻找其他值Get-NetAdapter,但没有取得任何成功。
是否有其他 cmdlet 或 API 可以将内部 Hyper-V 虚拟交换机与主机网络适配器相匹配?
我们这里有一个程序,要求每个用户在桌面上有一个指向 ini 文件的快捷方式。每个文件对于用户来说都是唯一的。最近,我们在单独的服务器上重新安装了该应用程序。我希望能够在客户端计算机上运行一个脚本,该脚本将查看当前的快捷方式,更改服务器名称,然后将其保存到同一位置。
我认为 powershell 为此是必要的。一些效果:
$oldargs = # Pull out the args from the current shortcut using voodoo magic
$args = $oldargs -replace "server1", "server2"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:PUBLIC\Desktop\app.lnk")
$Shortcut.TargetPath = "%ProgramFiles%\appdir\app.exe"
$Shortcut.Arguments = "$args"
$Shortcut.WorkingDirectory = "%ProgramFiles%\appdir"
$Shortcut.IconLocation = "%ProgramFiles%\appdir\pic.ico"
$Shortcut.Save()
Run Code Online (Sandbox Code Playgroud)
真的,我只是不知道如何从当前的快捷方式参数中提取参数。
我正在尝试在某些 .cmd 文件中获取主机的 FQDN。我们有脱节的 AD 域,所以"@echo %COMPUTERNAME%.%USERDNSDOMAIN%"不起作用。我的意思是它有效,但返回错误的值。
我最终得到的解决方案是
powershell.exe -noninteractive -command[System.Net.Dns]::GetHostByName(($env:computerName)).HostName
它在命令行中工作正常。我试图将它放入我的 cmd 文件中的一个变量中:
FOR /F "tokens=* USEBACKQ" %%F IN (\`powershell.exe -noninteractive -command
[System.Net.Dns]::GetHostByName(($env:computerName)).HostName\`) DO (
SET var=%%F
)
ECHO %var%
Run Code Online (Sandbox Code Playgroud)
但是此时出现以下错误: ).HostName`) 是意外的。
我知道应该筛选某些内容,因为 cmd 和 powershell 都在解析这一行,但不知道筛选什么以及如何筛选。如何让这个开始工作?
在 Windows Server 2012 中,您是否可以检索上周访问、修改或删除共享文件夹的用户的日志(通过 Powershell)?
有没有办法将单个iis网站从一台服务器导出和导入到另一台服务器。
谢谢,桑德什
是否可以安装新的唯一 AD LDS 实例(使用 cmd 或 PowerShell)?我可以在网上找到的所有资源都只需使用 Active Directory 轻型目录服务安装向导。
PowerShell 具有用于处理现有LDS 实例的 Active Directory 模块,但我还没有找到可用于创建 AD LDS 新实例的方法。
scripting powershell active-directory windows-command-prompt ad-lds
我在 Azure 上有很多租户,我使用 Powershell 来管理它们。
我正在连接我的帐户:
Login-AzureRmConnect
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
XXX@XXXX.XXX Microsoft Partner Network XXXXX-XXXX-XXXX-XXXX-XXXX AzureCloud
Run Code Online (Sandbox Code Playgroud)
当我想用有效的 SubscriptionID 更改订阅时,我有以下答案:
Select-AzureRmSubscription -SubscriptionId "XXXX-XXXX-XXXX-XXXXX-XXXXXX"
Select-AzureRmSubscription : Please provide a valid tenant or a valid subscription.
Au caractère Ligne:1 : 1
+ Select-AzureRmSubscription -SubscriptionId "XXXX-XXXX-XXXX-XXXXX-X ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError : (:) [Set-AzureRmContext], ArgumentException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.SetAzureRMContextCommand
Run Code Online (Sandbox Code Playgroud)
当我这样做时Get-AzureRmSubscription:
Get-AzureRmSubscription
AVERTISSEMENT : Unable to acquire token for tenant 'XXXXX-XXXX-XXXX-XXXX-XXXX'
AVERTISSEMENT : Unable to acquire …Run Code Online (Sandbox Code Playgroud) 我找不到在服务器 2019 上安装和配置 IIS 的明确方法
Add-WindowsFeature
Enable-WindowsOptionalFeature
Install-WindowsFeature
is dism still a thing?
Run Code Online (Sandbox Code Playgroud)
我需要安装带有以下模块的 IIS:
我看到了上述所有工具的示例,但似乎有些是错误/过时的
从 2019 年开始,通过脚本安装和配置 IIS 的正确命令/工具是什么?
我正在编写一个 PowerShell 脚本来克隆现有的 hyper-v 虚拟机/基于模板创建新的虚拟机。我在哪里查看 cmdletExport-VM并Import-VM使用它。但是,cmdletNew-VM也可以选择使用现有的 VHD。只是复制 VHD 并创建一个New-VM更容易吗?它只是 1 个文件,而不是 VHD + 虚拟机文件夹 + 设置新的快照文件夹。(模板没有快照)
使用Import-VMover 有New-VM什么好处?是否有或基于此主要意见?
我想列出并终止属于使用端口的特定进程的会话的所有进程。这应该通过 Windows 批处理命令来实现,该命令接受端口号作为输入。
例如:假设进程 PA 当前正在侦听端口 8081。PA 运行在会话 S1 下。有进程 PB 和 PC 与 PA 属于同一会话。PB和PC将运行在不同的端口上(它们运行在哪个端口上并不重要)
Windows 命令/批处理文件应以 8081 作为输入并终止进程 PA、PB 和 PC。
这可能吗?感谢对此的一些帮助,因为我不太熟悉批处理命令/脚本。
我失败的尝试:
(for /F "tokens=2" %%i in (for /f "tokens=5" %a in ('netstat -aon ^| findstr 8081') do tasklist /NH /FI "PID eq %a") do taskkill /NH /FI "SESSIONNAME eq %%i")
Run Code Online (Sandbox Code Playgroud) powershell ×10
windows ×3
batch ×2
hyper-v ×2
iis ×2
scripting ×2
ad-lds ×1
application ×1
azure ×1
batch-file ×1
cloning ×1
shortcut ×1
variables ×1