I am working on writing a script to install windows features on both server 2008 and server 2008 R2 seeing as all of our server 2008 boxes should be 32 bit i am attempting to control the way the script runs via the return of $osarchitecture though I seem to be having some troubles. Forgive me as I am relatively new to powershell. Here is what I have so far?
$erroractionpreference = “SilentlyContinue”
$servers = Get-Content -path c:\SCCMMangerScript\CSV\SCCMServers.csv
foreach ($server in $servers){
} $OS = (Get-WmiObject -computername $server -class Win32_OperatingSystem -Property Version,osarchitecture ).caption
if ($os = “64-bit”) {
$session = New-PSSEssion -Computername $server
Enter-PSSession -ComputerName $server
Invoke-Command -session $session {Import-Module Servermanager}
Invoke-Command -session $session {Add-Windowsfeature Web-Mgmt-Compat | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-Metabase | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-ISAPI-Filter | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-ISAPI-Ext | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-WMI | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-Windows-Auth | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature BITS | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature RDC | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Exit-PSSession}
} #end if
elseif ($os = "32-Bit") {
Server 2008 32Bit (this is the one I have been having trouble with as you can see a lot has to happen for it to become a DP correctly.)
#Set-ExecutionPolicy Unrestricted
#list of 32bit servers
$servername = ‘xyz still need to change to pull name automatically’
C:\pstools\psexec \$servername -s -d powershell “Enable-PSRemoting -Force”
$cmd = “robocopy”
$arg = “C:\Users\clevengerl\Desktop\SCCM Project\ADK \$servername\C$\Windows\Temp\ADK /MIR /XA:SH/ipg:25000 /w:0 /log:c:\robocopy_log.txt /tee”
start-process -wait $cmd $arg
$session=New-PSSEssion -Computername $servername
Enter-PSSession -ComputerName $servername
#install ADK (reboot?)
adksetup.exe /promptrestart /ceip on /quiet “c:\program files (x86)\Windows Kits\8.0” /features +
#copy DISM to root directory/system32?
• #run dism to setup the import-module servermanager Dism /online /enable-feature /featurename:ServerCore-FullServer /featurename:Server-Gui-Shell /featurename:Server-Gui-Mgmt
Invoke-Command -session $session {Import-Module Servermanager}
Invoke-Command -session $session {Add-Windowsfeature Web-Mgmt-Compat | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-Metabase | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-ISAPI-Filter | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-ISAPI-Ext | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-WMI | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature Web-Windows-Auth | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature BITS | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Add-Windowsfeature RDC | out-file C:\sccm_Addfeature.log -append}
Invoke-Command -session $session {Exit-PSSession}
}