标签: powershell

如何将 .NET 程序集正确添加到 Powershell 会话?

我有一个 .NET 程序集(一个 dll),它是我们在这里使用的备份软件的 API。它包含一些我想在我的 Powershell 脚本中利用的属性和方法。但是,我遇到了很多问题,首先加载程序集,然后在加载程序集后使用任何类型。

完整的文件路径是:

C:\rnd\CloudBerry.Backup.API.dll
Run Code Online (Sandbox Code Playgroud)

在 Powershell 中,我使用:

$dllpath = "C:\rnd\CloudBerry.Backup.API.dll"
Add-Type -Path $dllpath
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Add-Type : Unable to load one or more of the requested types. Retrieve the
LoaderExceptions property for more information.
At line:1 char:9
+ Add-Type <<<<  -Path $dllpath
+ CategoryInfo          : NotSpecified: (:) [Add-Type], ReflectionTypeLoadException
+ FullyQualifiedErrorId : System.Reflection.ReflectionTypeLoadException,Microsoft.PowerShell.Commands.AddTypeComma
ndAdd-Type : Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Run Code Online (Sandbox Code Playgroud)

在另一个 .NET 程序集DotNetZip …

powershell .net

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

无需映射驱动器号即可访问网络共享 (PowerShell)

我想在\\SHARE-HOST\不映射驱动器号的情况下访问远程 SMB 网络共享。我可以通过\\SHARE-HOST\Share_folder\在资源管理器中键入在Windows 中手动执行此操作。如果我想以编程方式执行此操作,则必须使用该net use命令。这需要我指定一个字母。

windows powershell network-share drive

30
推荐指数
2
解决办法
21万
查看次数

如何将 Windows GUI 添加到 Windows 2016 Server Core?

我们刚刚从 Rackspace 获得了我们的专用服务器。它上面装有W2008。我决定将最新的操作系统放在上面,这样我以后就不必升级了。显然在安装过程中,我选择了 no gui 选项。

我试图从我在其他网站上看到的参考的 powershell 安装 gui。

例如:

Install-WindowsFeature Server-GUI-Shell -Restart
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

PS C:\> Install-WindowsFeature Server-GUI-Shell -Restart
Install-WindowsFeature : ArgumentNotValid: The role, role service, or feature name is not valid: 'Server-GUI-Shell'.
The name was not found.
At line:1 char:1
+ Install-WindowsFeature Server-GUI-Shell -Restart
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Server-GUI-Shell:String) [Install-WindowsFeature], Exception
    + FullyQualifiedErrorId : NameDoesNotExist,Microsoft.Windows.ServerManager.Commands.AddWindowsFeatureCommand

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
False   No             InvalidArgs    {}
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何在此服务器上安装 gui。

我见过的所有安装 gui 的参考都说要使用 Server-GUI-Shell。 …

powershell windows-server-core windows-server-2016

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

从命令行回收远程 IIS 应用程序池?

是否可以在另一台机器上从命令行回收 IIS7 应用程序池?

我找到了 APPCMD ( appcmd recycle apppool my-app-pool),但它只能在运行它的主机上运行,​​AFAICT。

我听说有一种方法可以用 Powershell 做到这一点,但我对此一无所知,而且我显然不擅长谷歌搜索。

如果重要的话,我使用的是 Vista / Server 2008。

编辑:我发现了一个叫做WinRM 的东西,有人声称它可以自己运行 APPCMD,但我还不确定具体是如何运行的。

iis powershell iis-7 command-line-interface winrm

27
推荐指数
2
解决办法
6万
查看次数

PowerShell - Windows 10 上缺少安装 WindowsFeature(和系列)?

我们有一些 Powershell 脚本用于设置各种开发/测试/生产环境,其中之一用于安装和配置 IIS。不幸的是,这些脚本目前似乎无法在 Windows 10 下运行,因为缺少 Install-WindowsFeature cmdlet。

这些是故意删除的,还是我需要跳过一些箍来安装以前不需要的?

powershell windows-10

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

检索当前域用户的全名

使用 PowerShell,如何在不需要 ActiveDirectory 模块的情况下获取当前登录的域用户的全名(不仅是其用户名)?

windows powershell

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

Windows 命令提示符:如何获取当前目录中所有文件的数量?

您将使用什么命令cmd.exe来查找当前目录中的文件数?

这里有powershell选项吗?

更新:我希望避免dir,因为我知道当前目录中有 10,000 多个文件。想要避免枚举输出到 cmd 窗口。谢谢!

powershell command-line-interface directory windows-command-prompt

25
推荐指数
5
解决办法
19万
查看次数

如何在 PowerShell 脚本中使用配置文件(ini、conf、...)?

是否可以将配置文件与 PowerShell 脚本一起使用?

例如配置文件:

#links
link1=http://www.google.com
link2=http://www.apple.com
link3=http://www.microsoft.com
Run Code Online (Sandbox Code Playgroud)

然后在 PS1 脚本中调用此信息:

start-process iexplore.exe $Link1
Run Code Online (Sandbox Code Playgroud)

scripting powershell

25
推荐指数
4
解决办法
8万
查看次数

有没有办法遍历 Windows 8 应用程序并将它们全部删除?

Windows 应用程序很烦人,我想删除它们。一直在玩 Powershell 和脚本,我想知道是否有办法让 Powershell 遍历所有应用程序并删除它们。

# List of Applications that will be removed
$AppsList = "Microsoft.BingTravel","Microsoft.WindowsAlarms","Microsoft.Reader",`
"Microsoft.WindowsScan","Microsoft.WindowsSoundRecorder","Microsoft.SkypeApp","Microsoft.BingFoodAndDrink","Microsoft.BingMaps",`
"Microsoft.HelpAndTips","Microsoft.BingFinance","Microsoft.ZuneMusic","Microsoft.Reader","Microsoft.BingNews","Microsoft.AkypeApp",`
"Microsoft.ZuneVideo","Microsoft.BingTravel","Microsoft.BingSports","Microsoft.BingWeather","Microsoft.BingHealthAndFitness",`
"Microsoft.Media.PlayReadyClient.2","Microsoft.XboxLIVEGames","Microsoft.WindowsReadingList","Microsoft.WindowsAlarms"
ForEach ($App in $AppsList)
{
    $Packages = Get-AppxPackage | Where-Object {$_.Name -eq $App}
    if ($Packages -ne $null)
    {
          foreach ($Package in $Packages)
          {
          Remove-AppxPackage -package $Package.PackageFullName
          }
    }
    $ProvisionedPackage = Get-AppxProvisionedPackage -online | Where-Object {$_.displayName -eq $App}
    if ($ProvisionedPackage -ne $null)
    {
          remove-AppxProvisionedPackage -online -packagename $ProvisionedPackage.PackageName
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我也从 MDT 运行它以进行映像部署。

windows powershell windows-8 mdt

25
推荐指数
2
解决办法
4117
查看次数

如何以编程方式创建新的 Windows 用户配置文件?

我正在为 Windows 服务创建一个(本地)用户来运行。我有充分的理由不想使用 NETWORK SERVICE、LOCAL SERVICE 或 LOCAL SYSTEM。

我通过创建用户net user foobar "Abcd123!" /add- 这工作正常。

此时,c:\users\foobar不存在。

如果创建用户的主目录,在用户登录(或更相关地)或用户所使用的服务启动之前,Windows 会创建一个名为的隔壁用户配置文件c:\users\foobar-{gibberish/SID/whatever}- 这不是一个可预测的名称。

我需要用户的主目录来包含诸如.ssh目录之类的东西,像这样的.gitconfig工具(不限于那些工具)假设它将是一个人使用它们,因此用户配置进入~/.... 通常,来自 Unix 遗产的工具。

实际问题

那么 - 是否有一种编程方式(最好是 PowerShell 或开箱即用的命令行)来告诉 Windows 为本地用户创建用户配置文件?

或者,任何其他解决方法?

我还没有尝试的事情:

  • 一个 NSSM start/pre 钩子,将文件从其他地方复制到用户配置文件目录中,希望此时存在的Windows启动服务,创建用户配置文件,然后在启动之前将控制权交给运行钩子的 NSSM 包装器。
  • 将服务的 USERPROFILE 环境变量设置为实际用户配置文件目录以外的其他位置。这让我觉得很危险,但也可能工作正常。

其他上下文:

  • Windows Server 2016,桌面体验。
    • 无法使用 Core/Nano。
  • 没有活动目录在运行。不会有。
  • 这些是本地用户。
  • 我是通过 Ansible 完成的,Ansible 在幕后使用 PowerShell 来处理 Windows 的事情。特别是带有 Ansible 2.7.5的win_user模块。 …

windows powershell windows-service

25
推荐指数
2
解决办法
7049
查看次数